Orchestrate a swarm of Claude Code agents

# With a local-LLM brain that learns from you.

Know which agent is blocked, burning budget, waiting for approval, or stalled, and intervene without tab hunting.

Install with Homebrew Watch the demo

- ~1 MB binary
- Sub-50ms startup
- Zero config
- macOS and Linux

29-second demo Local-only Zero config

Why it exists

## Claude Code is good at execution. It is not built to supervise five terminals at once.

### Blocked session

A permission prompt sits idle in some hidden tab and you miss it for ten minutes.

### Budget burn

One agent keeps spending while doing low-value work and you only notice after the fact.

### False activity

A session looks alive but is actually stalled, idle, or missing transcript telemetry.

### Tab hunting

You waste time switching tabs just to understand state before you can intervene.

What claudectl does

## The operator layer for Claude Code.

### See every session

Status, burn rate, context usage, activity, CPU, memory, and subagent rows in one place.

### Intervene fast

Approve prompts, send input, jump to the right tab, or kill a runaway session from one pane.

### Control spend

Set budgets, alert at thresholds, and auto-kill over-budget runs before they drift.

### Coordinate work

Run dependency-ordered task graphs, keep logs per attempt, and resume where it matters.

### Alert and hook

Trigger desktop notifications, shell hooks, and webhooks when sessions need attention.

### Record results

Turn sessions and dashboards into GIFs and casts you can use in docs, posts, and demos.

Core workflows

## Built for the moments that actually break multi-session work.

### Catch blockers

Find every session waiting for approval and clear it immediately.

    claudectl --watch --focus attention

### Control spend

Track live burn rate, set budgets, and auto-kill over-budget runs.

    claudectl --budget 5 --kill-on-budget

### Supervise agent teams

Run multiple Claude Code sessions without losing operational control.

    claudectl --run tasks.json --parallel

Install

## Start with demo mode if you just want to see it work.

### 1. Install

    brew install mercurialsolo/tap/claudectl
    cargo install claudectl

Single binary, no dependencies. Under 1 MB.

### 2. Wire up hooks

    claudectl --init

One command adds hooks to `~/.claude/settings.json` so Claude Code notifies claudectl on every tool use. Run once.

### 3. Start the dashboard

    claudectl

See every session at a glance. Or try `claudectl --demo` first to explore with fake sessions.

### Uninstall

    claudectl --uninstall

Removes only claudectl hooks. All other settings preserved. Then `brew uninstall claudectl`.

Terminal coverage

## Built for the terminals people actually use with Claude Code.

- Ghostty
- tmux
- Kitty
- Warp
- iTerm2
- Terminal.app
- WezTerm
- GNOME Terminal

Run `claudectl --doctor` to verify launch, switch, input, and approve support in your current terminal.

Launch

## Use the repo for code. Use the page for conversion.

This site is designed to answer the top-of-funnel question fast: why someone running multiple Claude Code sessions should care.

View on GitHub Get install commands