Tiny zsh wrappers for AI coding CLIs that update your Ghostty tab/header title with project + status.
Title format:
<project> - <agent> - <status>
Supported agents:
codexclaude/claude-code(shown asclaude-codein title)opencode
Status states:
🟢 done(agent is waiting for your input)🟡 working(agent is actively running)🔴 approval(agent appears to be asking for confirmation)
When you have many Ghostty tabs, seeing only the command name is low-context. This keeps the tab title meaningful by showing current project and state.
- macOS/Linux
zsh- Ghostty
- at least one of:
codex,claude,opencodeinPATH python3
git clone https://github.com/djinn/ghostty-agent-status.git
cd ghostty-agent-status
./scripts/install.sh
source ~/.zshrcOpen a new Ghostty tab/window (or run source ~/.zshrc) and run any supported agent command.
If you want to publish this repo to an org/user (default: djinn):
./scripts/publish.sh djinn ghostty-agent-status publicPrereqs:
gh auth login -h github.comalready done- permission to create repos in the target org
cd ghostty-agent-status
./scripts/uninstall.sh- Installs a proxy script at
~/.local/bin/agent-ghostty-title-proxy - Injects wrappers for
codex,claude,claude-code, andopencodeinto~/.zshrc - Runs the selected agent inside a PTY and emits OSC title updates (
OSC 2) for Ghostty
🔴 approvalis heuristic-based (best effort from terminal output patterns).- If
python3is not available, wrappers fall back to normal command execution. - Existing snippet is updated in place if you run install multiple times.
After this repo is public, you can also do:
curl -fsSL https://raw.githubusercontent.com/djinn/ghostty-agent-status/main/scripts/install.sh | bashMIT