If you're running multiple claude code sessions across different terminal tabs or windows, you've probably felt the pain: Which session is burning through tokens? Which one needs my input? How much have I spent today? Claudectl solves this with a fast, lightweight terminal UI that gives you kubectl-style control over your Claude Code instances.
What It Does — Your Claude Code Command Center
Claudectl is a ~1MB Rust binary that starts in under 50ms and provides a live dashboard showing:
- Session status (Processing / Needs Input / Waiting / Idle / Finished) inferred from JSONL events, CPU usage, and message timestamps
- Resource usage (PID, project path, CPU%, memory)
- Token economics (context window %, token counts, cost estimates, $/hour burn rate)
- Activity visualization (sparkline showing recent activity)
But it's more than just monitoring. The real power is in the management features.
Why You Need This — Beyond Simple Monitoring
When you're working with Claude Code, you often have multiple sessions running: one for refactoring, another for debugging, a third for writing tests. Claudectl gives you three critical capabilities:
- Budget enforcement: Set per-session dollar limits with alerts at 80% and optional auto-kill at 100%
- Session navigation: Press
Tabto jump directly to a session's terminal tab (supports up to 7 terminals) - Batch operations: Approve permission prompts (
y), type input (i), or enable auto-approve (atwice) across all sessions
How To Use It — Installation and Commands
Install via Homebrew:
brew tap mercurialsolo/tap
brew install claudectl
Or use the install script:
curl -fsSL https://raw.githubusercontent.com/mercurialsolo/claudectl/main/install.sh | sh
Key commands:
# Launch the TUI dashboard
claudectl
# Print session list and exit (for scripting)
claudectl --list
# Stream status changes without TUI
claudectl --watch
# Launch a new Claude session from within claudectl
claudectl --new --cwd ~/projects/my-app --prompt "Fix the auth bug"
# Budget enforcement with auto-kill
claudectl --budget 5 --kill-on-budget
# Get cost analytics
claudectl --stats --since 7d
Advanced Features — When You Need More Power
Webhooks and Notifications
# Desktop notifications when sessions need input
claudectl --notify
# POST JSON to Slack/Discord on status changes
claudectl --webhook https://hooks.slack.com/... --webhook-on NeedsInput,Finished
Task Orchestration
Create a tasks.json file:
[
{
"name": "refactor-auth",
"cwd": "./src/auth",
"prompt": "Refactor the authentication module to use JWT"
},
{
"name": "write-tests",
"cwd": "./tests",
"prompt": "Write unit tests for the new auth module",
"depends_on": ["refactor-auth"]
}
]
Then run:
claudectl --run tasks.json --parallel
Configuration
Claudectl loads settings from ~/.config/claudectl/config.toml (global) and .claudectl.toml (per-project). Example:
[defaults]
interval = 1000
notify = true
grouped = true
sort = "cost"
budget = 5.00
kill_on_budget = true
The Developer Experience Difference
Without Claudectl, you're constantly switching tabs, checking token usage manually, and risking budget overruns. With it, you get:
- Immediate visibility: See all sessions at a glance with color-coded status
- Proactive cost control: Set budgets before you forget
- Workflow acceleration: Jump to the right terminal instantly
- Scriptable automation: Export JSON data for custom dashboards or alerts
This isn't just another monitoring tool—it's a workflow optimizer built specifically for how developers actually use Claude Code in practice.





