{
  "markdown": "# claude-tmux-status\n<img width=\"620\" height=\"57\" alt=\"image\" src=\"https://github.com/user-attachments/assets/883a7881-60a4-41f9-96b5-1ac4e185dffe\" />\n\nA [Claude Code](https://docs.anthropic.com/en/docs/claude-code) plugin that shows session state as emoji icons in your tmux window name.\n\n```\n zsh              — no session\n zsh [🧑‍🍳]          — thinking / tool use\n zsh [👀]          — needs attention (permission request / notification)\n zsh [😴]          — idle\n```\n\nName your session with `/rename` and the window follows along:\n\n```\n Fix auth bug [🧑‍🍳]    — window named after the Claude session\n```\n\n## Requirements\n\n- [tmux](https://github.com/tmux/tmux)\n- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI\n\n## Install\n\n### Via Claude Code Plugin Marketplace (recommended)\n\nFrom inside Claude Code, run:\n\n```\n/plugin marketplace add https://github.com/haxybaxy/claude-tmux-status.git\n```\n\nThen install the plugin:\n\n```\n/plugin install tmux-status\n```\n\nFinally, activate it:\n\n```\n/reload-plugins\n```\n\n### Manual\n\nClone into your Claude Code plugins directory:\n\n```bash\ngit clone https://github.com/haxybaxy/claude-tmux-status \\\n  ~/.claude/plugins/claude-tmux-status\n```\n\nClaude Code picks up the plugin automatically on next launch.\n\n## How it works\n\nThe 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.\n\nThere is no background process — the script runs only when a hook fires, and exits.\n\n| Event               | Icon        | State                                       |\n| ------------------- | ----------- | ------------------------------------------- |\n| `SessionStart`      | `😴`        | Idle                                        |\n| `UserPromptSubmit`  | `🧑‍🍳`        | Processing                                  |\n| `PreToolUse`        | `🧑‍🍳`        | Processing                                  |\n| `PostToolUse`       | `🧑‍🍳`        | Processing                                  |\n| `Stop`              | `😴`        | Idle                                        |\n| `PermissionRequest` | `👀`        | Needs attention                             |\n| `Notification`      | `👀`        | Needs attention                             |\n| `SessionEnd`        | _(removed)_ | Restores the pre-session window name        |\n\n### Window names\n\nThe 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.\n\nWhen the session ends, the window name it had beforehand is put back.\n\nYour `automatic-rename` setting is never modified, in either direction.\n\n## Customization\n\n### Switch icon themes\n\nUse the built-in skill from inside Claude Code:\n\n```\n/tmux-icons              # list available themes\n/tmux-icons emoji        # switch to emoji (default)\n/tmux-icons nerd-font    # switch to Nerd Font icons\n/tmux-icons minimal      # switch to plain text indicators\n```\n\nChanges take effect immediately on the next lifecycle event — no restart needed.\n\n### Override a single icon\n\n```\n/tmux-icons set attention !!\n```\n\n### Create a custom theme\n\n```\n/tmux-icons create my-theme\n```\n\n### Bundled themes\n\n| Theme       | Idle | Processing | Attention | Notes                      |\n| ----------- | ---- | ---------- | --------- | -------------------------- |\n| `emoji`     | 😴   | 🧑‍🍳         | 👀        | Default, works everywhere  |\n| `nerd-font` | 󰒲    | 󰑮          | 󰂞         | Requires a patched font    |\n| `minimal`   | zzz  | ...        | (!)       | Plain text, no font needed |\n\n### Manual config\n\nThe active icon set is stored in `config/active.conf` as simple key=value pairs:\n\n```\nidle=😴\nprocessing=🧑‍🍳\nattention=👀\n```\n\nTheme presets live in `config/themes/*.json`.\n\n### Keep your own window names\n\nTo ignore the Claude session title and always use the window's own name, add to `.tmux.conf`:\n\n```tmux\nset -g @claude_tmux_status_title off\n```\n\nSet it per-window with `set -w` instead.\n\n## License\n\n[MIT](LICENSE) © Zaid Alsaheb\n",
  "bytes": 4157,
  "sha": "abbf9a0d5e9281bc6c37d5d83c291d715e4cff18849a5bc3b1c5803e4df9a7e0",
  "repo_slug": "haxybaxy/claude-tmux-status",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_haxybaxy_claude_tmux_status_tmux_status_1cb8cd57/readme"
}