htop-style monitor for Claude Code and Codex CLI agent sessions
Project description
adash
AI agent monitor for Claude Code and Codex CLI — a local-first triage dashboard for session health, cost, and utility.
Inspired by and data format compatible with graykode/abtop (MIT). adash is a cleaner Python rewrite using Textual rather than a btop pastiche.
A sibling to mnemos, pulldown, cartograph, and synthesis.
What it shows
- Summary strip: active sessions, attention count, live burn/hour, today estimate, hottest context/quota, orphan count
- Ranked attention queue: title, project, model, ctx %, token total, estimated cost, burn/hour, age
- Inspector: overview, token/cost breakdown, recent trend, alerts, ports/subagents, and safe actions
- JSON snapshot output with raw sessions plus derived summary, alerts, and insights
Install
pipx install adash-cli
# or
pip install adash-cli
For local development and test runs:
pip install -e ".[dev]"
python -m pytest -q
If you want the latest repo state before a PyPI release lands:
pipx install git+https://github.com/anthony-maio/adash.git
Usage
adash # TUI (default)
adash --once # Snapshot table to stdout, exit
adash --json # JSON snapshot to stdout, exit
adash --setup # Print Claude StatusLine hook setup instructions
adash --version # Print version
Keybindings
| Key | Action |
|---|---|
↑ / ↓ or j / k |
Select session |
enter |
Copy session ID to clipboard |
o |
Open selected session cwd |
t |
Open selected transcript |
x |
Kill selected session (SIGTERM) |
X |
Kill all orphan port processes |
f |
Toggle all vs risky sessions |
s |
Cycle sort mode (severity, cost, recency) |
r |
Force refresh |
q |
Quit |
Claude rate limit hook setup
adash reads ~/.claude/adash-rate-limits.json (also reads legacy ~/.claude/abtop-rate-limits.json for back-compat) for Claude quota data. This file is written by a shell hook you add to your Claude Code setup.
Run adash --setup to print the hook snippet. Add the function to your shell and configure it via Claude Code's hooks setting in ~/.claude/settings.json.
Codex rate limit data
Codex rate limit data is extracted directly from the session JSONL files that Codex writes during its token_count events. No hook needed — just run Codex normally and adash picks it up.
Rate limit cache is stored at ~/.cache/adash/codex-rate-limits.json.
Pricing overrides
adash includes built-in approximate pricing rules for common Claude and GPT-5 model families. To override them locally, create:
$ADASH_PRICING_FILE, or~/.config/adash/pricing.json
File shape:
{
"models": [
{
"pattern": "claude-sonnet-4*",
"agent_cli": "claude",
"input_per_million": 3.0,
"output_per_million": 15.0,
"cache_read_per_million": 0.3,
"cache_write_per_million": 3.75
}
]
}
Estimated USD values are intentionally approximate and secondary to token/quota signals.
Data compatibility
adash reads the same session files as abtop:
- Claude sessions:
~/.claude/sessions/*.json+ transcripts in~/.claude/projects/ - Codex sessions:
~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl
The transcript encoding rule (Claude): /, _, . → -.
Attribution
Inspired by graykode/abtop (MIT License). Data format, JSONL parsing logic, and session discovery strategy are derived from abtop.
License
MIT — see LICENSE.
Development
- CI runs the test suite on Linux and Windows to keep the collector and path-handling logic portable.
adash --jsonnow returns structured JSON errors with a non-zero exit code when collection fails, which makes automation safer than relying on a traceback.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file adash_cli-0.1.0.tar.gz.
File metadata
- Download URL: adash_cli-0.1.0.tar.gz
- Upload date:
- Size: 44.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fbcf33087353d2557cc720886da40d04526894a29e20c301f5de06c0bdaf928
|
|
| MD5 |
ada1ffba64bdca58520826a50549ac79
|
|
| BLAKE2b-256 |
de0f00d3bf7775f5190c7592fadc76ea4bf98331215f3f4f3c587ae8607a496f
|
File details
Details for the file adash_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: adash_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 41.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d86d92620bb36eacbdc6265a2a920f304c997296b152f0b4665e73951e67e41
|
|
| MD5 |
b14a082beaf894259a72e08905ebfa5b
|
|
| BLAKE2b-256 |
35bb10a6a2bd5e3e2e08616d2b84e00401837f54c11a23a52927ea2d64c1cba3
|