Back to the catalog

tmux-status

This plugin appends an icon to your tmux window name so you can know what Claude Code is doing without having to open up the window. No tmux

Open source Open in the app JSON README (API)

About

This plugin appends an icon to your tmux window name so you can know what Claude Code is doing without having to open up the window. No tmux config changes needed :D

Details

Kind
Plugins
Topic
No topic detected
Publisher
haxybaxy
Origin
marketplace
Category
ferramentas
Stars
6
Forks
2
Last push
2026-08-10T10:15:32Z
Repository state
ativo
Language
Shell
License
MIT
Added
2026-08-30 01:48:58
Updated
2026-08-30 01:48:58
Origin id
haxybaxy/claude-tmux-status/tmux-status

README

# claude-tmux-status
<img width="620" height="57" alt="image" src="https://github.com/user-attachments/assets/883a7881-60a4-41f9-96b5-1ac4e185dffe" />

A [Claude Code](https://docs.anthropic.com/en/docs/claude-code) plugin that shows session state as emoji icons in your tmux window name.

```
 zsh              — no session
 zsh [🧑‍🍳]          — thinking / tool use
 zsh [👀]          — needs attention (permission request / notification)
 zsh [😴]          — idle
```

Name your session with `/rename` and the window follows along:

```
 Fix auth bug [🧑‍🍳]    — window named after the Claude session
```

## Requirements

- [tmux](https://github.com/tmux/tmux)
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI

## Install

### Via Claude Code Plugin Marketplace (recommended)

From inside Claude Code, run:

```
/plugin marketplace add https://github.com/haxybaxy/claude-tmux-status.git
```

Then install the plugin:

```
/plugin install tmux-status
```

Finally, activate it:

```
/reload-plugins
```

### Manual

Clone into your Claude Code plugins directory:

```bash
git clone https://github.com/haxybaxy/claude-tmux-status \
  ~/.claude/plugins/claude-tmux-status
```

Claude Code picks up the plugin automatically on next launch.

## How it works

The plugin registers [hooks](https://docs.anthropic.com/en/docs/claude-code/hooks) for Claude Code lifecycle events. Each event runs a small bash script that appends or removes an icon suffix on the current tmux window name.

There is no background process — the script runs only when a hook fires, and exits.

| Event               | Icon        | State                                       |
| ------------------- | ----------- | ------------------------------------------- |
| `SessionStart`      | `😴`        | Idle                                        |
| `UserPromptSubmit`  | `🧑‍🍳`        | Processing                                  |
| `PreToolUse`        | `🧑‍🍳`        | Processing                                  |
| `PostToolUse`       | `🧑‍🍳`        | Processing                                  |
| `Stop`              | `😴`        | Idle                                        |
| `PermissionRequest` | `👀`        | Needs attention                             |
| `Notification`      | `👀`        | Needs attention                             |
| `SessionEnd`        | _(removed)_ | Restores the pre-session window name        |

### Window names

The text before the icon is the **Claude session title** — whatever you set with `/rename` — whenever tmux can see it. Otherwise the window keeps its own name.

When the session ends, the window name it had beforehand is put back.

Your `automatic-rename` setting is never modified, in either direction.

## Customization

### Switch icon themes

Use the built-in skill from inside Claude Code:

```
/tmux-icons              # list available themes
/tmux-icons emoji        # switch to emoji (default)
/tmux-icons nerd-font    # switch to Nerd Font icons
/tmux-icons minimal      # switch to plain text indicators
```

Changes take effect immediately on the next lifecycle event — no restart needed.

### Override a single icon

```
/tmux-icons set attention !!
```

### Create a custom theme

```
/tmux-icons create my-theme
```

### Bundled themes

| Theme       | Idle | Processing | Attention | Notes                      |
| ----------- | ---- | ---------- | --------- | -------------------------- |
| `emoji`     | 😴   | 🧑‍🍳         | 👀        | Default, works everywhere  |
| `nerd-font` | 󰒲    | 󰑮          | 󰂞         | Requires a patched font    |
| `minimal`   | zzz  | ...        | (!)       | Plain text, no font needed |

### Manual config

The active icon set is stored in `config/active.conf` as simple key=value pairs:

```
idle=😴
processing=🧑‍🍳
attention=👀
```

Theme presets live in `config/themes/*.json`.

### Keep your own window names

To ignore the Claude session title and always use the window's own name, add to `.tmux.conf`:

```tmux
set -g @claude_tmux_status_title off
```

Set it per-window with `set -w` instead.

## License

[MIT](LICENSE) © Zaid Alsaheb

More