aitop is a btop-inspired terminal dashboard for local AI agent activity. It reads native Claude and Codex state directly, so you can see what is active, what recently ran, and what happened in the focused session without wrapping your agent commands.
- Discovers Claude CLI sessions from
~/.claude/sessions/*.json. - Reads Claude project journals from
~/.claude/projects. - Discovers Codex work from
~/.codex/process_manager/chat_processes.json. - Reads recent Codex threads from
~/.codex/state_5.sqlite. - Shows live sessions only when the native process is actually alive.
- Groups recent historical rows by project, while keeping genuinely live sessions distinct.
- Hides stale missing-path sessions from the default overview.
- Shows repo, branch, dirty files, PID, CPU, memory, model, token totals, and recent activity where available.
- Provides a focused tail view with normalized user, assistant, thinking, tool, result, and usage events.
Requirements:
- Rust and Cargo
- macOS or another Unix-like system with
kill,lsof, andgit
From this repo:
./scripts/install.shBy default, this builds a release binary and installs it to:
~/.local/bin/aitopIf ~/.local/bin is not on your PATH, add this to your shell profile:
export PATH="$HOME/.local/bin:$PATH"Choose another install directory:
AITOP_INSTALL_DIR=/some/bin ./scripts/install.shOpen the dashboard:
aitopPrint one text snapshot:
aitop --onceRun with simulated demo data:
aitop --demo
aitop --once --demoMonitor view:
up/downorj/k: select a sessionenter: open the focused tail viewa: cycle overview, active, and all viewsr: refreshq: quit
Tail view:
j/k: scroll the focused log feedup/down: select another sessionpage up/page down: scroll by larger jumpsg/G: jump toward top or bottomesc: return to monitora: return to monitor and cycle viewsq: quit
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo run -- --once
cargo runaitop is released under the MIT License. See LICENSE.