Warning
This project is a work in progress. APIs, configuration formats, and behavior may change without notice.
Aggregates real-time status from AI coding agents (Claude Code, Cursor CLI, Codex CLI) into a single server, then surfaces that status through tmux window colors, desktop notifications, and statusbar integrations.
| Package | Description |
|---|---|
core/ |
Status aggregation server (Unix datagram socket), shared helpers, notification dispatch |
hooks/ |
Per-tool hook scripts that report lifecycle events to the server |
simple-wrappers/ |
Shell wrappers that add IDLE-on-launch and clear-on-exit for tools missing those hooks |
advanced-wrappers/cursor-agent/ |
Rust PTY wrapper that detects Cursor's AskQuestion interactive prompts |
tmux/ |
TPM-compatible tmux plugin for status-colored window names |
statusbar/ |
Desktop statusbar integration (Hyprland, sketchybar) |
| Tool | Hooks | Simple Wrapper | Advanced Wrapper |
|---|---|---|---|
| Claude Code | Session start/stop, prompt, finish, permission, tool-done | -- | -- |
| Cursor CLI | Session start/end, prompt, finish, permission, shell exec, file read/edit, subagents | IDLE on launch, clear on exit | PTY wrapper detecting AskQuestion prompts |
| Codex CLI | Prompt start, finish, permission, tool-done | IDLE on launch, clear on exit | -- |
Clone the repo (convention: ~/agents-status):
git clone git@github.com:KoalaVim/agents-status.git ~/agents-statusThe server is a Python package. Install with uv (recommended) or fallback to install.sh:
# Preferred: installs `agents-status-server` command + tomli dependency
uv tool install ~/agents-status/core
# Alternative: just creates config dir (requires tomli installed manually for Python <3.11)
./install.sh coreThe installer patches your tool configs in place (with backups):
./install.sh hooks claude
./install.sh hooks cursor
./install.sh hooks codex
./install.sh hooks all # all of the aboveAdd ~/agents-status/simple-wrappers to your PATH (before ~/.local/bin):
export PATH=~/agents-status/simple-wrappers:$PATHThis provides cursor-agent and codex wrappers that ensure the server is running and clear status on exit.
./install.sh cursor-cli-wrapper~/.config/agents-status/config.toml (or $AGENTS_STATUS_CONFIG):
[notification]
# Default: "notify-send". Set to your preferred notification command.
# macOS: "terminal-notifier" or a wrapper around osascript
command = "notify-send"
[post-event]
# Commands to run after every state change (async, non-blocking).
commands = [
"$AGENTS_STATUS_DIR/../tmux/scripts/refresh_dim_colors.sh",
"hyprctl dispatch exec $AGENTS_STATUS_DIR/../statusbar/hyprland/RenameWorkspaces.py",
]~/.config/cursor-cli-wrapper/config.toml -- see advanced-wrappers/cursor-agent/config.toml.example.
Install as a TPM plugin or source directly:
# TPM
set -g @plugin 'user/agents-status'
# Manual
run-shell ~/agents-status/tmux/agents-status.tmuxSee tmux/README.md for configuration options.
Add the statusbar integration as a post-event hook. Supports Hyprland (Linux) and AeroSpace + sketchybar (macOS). See statusbar/README.md for configuration.
See SYSTEM_DESIGN.md for architecture diagrams, event flow, and server internals.