By TreeTreeDi
Traffic-light status indicators (🔴🟡🟢) for Claude Code agent tabs in Ghostty terminal
Traffic-light status indicators for Claude Code agent tabs in Ghostty terminal.

When you run multiple Claude Code agents in different Ghostty tabs, this plugin adds a colored emoji to each tab title so you can tell at a glance which agent is busy:
| Emoji | State | Trigger |
|---|---|---|
| 🔴 | Starting | Agent session just started |
| 🟡 | Processing | You sent a prompt, agent is working |
| 🟢 | Idle | Agent finished, waiting for your next input |
jq (optional, for robust JSON parsing; script falls back to sed)git (optional, for repo-name detection)在 Claude Code 交互式会话中输入:
/plugin add https://github.com/TreeTreeDi/ghostty-agent-status
选择 ghostty-agent-status 插件安装,然后运行 /reload-plugins 生效。
如果 marketplace 方式不可用,直接 clone 到 plugins 目录:
git clone https://github.com/TreeTreeDi/ghostty-agent-status.git \
~/.claude/plugins/ghostty-agent-status
然后在 Claude Code 中运行 /reload-plugins。
Add to ~/.config/ghostty/config:
# Allow hook scripts to control tab titles
shell-integration-features = no-title
Note: This disables Ghostty's automatic directory-based title updates. The hook script will use the project/directory name instead.
Restart Ghostty for the change to take effect.
claude) in each tab (ideally in different project directories)Edit hooks/ghostty-tab-status.sh and modify the case statement:
case "$event" in
SessionStart) emoji="🔴" ;;
UserPromptSubmit) emoji="🟡" ;;
Stop) emoji="🟢" ;;
*) emoji="⚪" ;;
esac
The SessionStart hook input includes a model field. To display it:
model=$(echo "$input" | jq -r '.model // ""')
[[ -n "$model" ]] && name="${name} (${model})"
The plugin registers three Claude Code hooks:
SessionStart — fired when a Claude Code session beginsUserPromptSubmit — fired when you submit a promptStop — fired when the assistant finishes its responseEach hook executes ghostty-tab-status.sh, which:
Because hooks are executed directly by the Claude Code main process, their stdout reaches the TTY unfiltered — unlike subprocess output, which is captured by Claude Code.
MIT
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub treetreedi/ghostty-agent-status --plugin ghostty-agent-statusUltra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.