Command Center
The live local console at 127.0.0.1:7878: what each panel shows, the Fleet live-context view, the consent handshake for on-demand compaction, and how to opt out.
The Command Center is a local web console at http://127.0.0.1:7878 that shows the entire mesh at a glance. The first claudelink-server to boot launches it; every later agent shares the same window. The page refreshes every two seconds.
The panels
| Panel | What it shows |
|---|---|
| Running servers | Every server process with PID, TTY, uptime, and role, with a per-row Kill button. |
| Registered agents | Role, status, sent and received counts, last-seen, and a per-agent auto-reply toggle. |
| Health | Total agents, unread and total messages, bulletin entries, and a one-click Heal orphans for dead-agent rows. |
| Auto-nudge | Global on/off and the tick interval. It only fires for terminals that actually have unread mail. |
| Recent messages | A live feed of the last several messages across all agents, with priority and unread badges. |
| Fleet live context (v1.5.0) | Per-agent context occupancy as a bar and percentage, $/turn at the agent's model price, handoff freshness, and last-signal age, sorted most-urgent-first. Per-row Copy prompt, Compact, and Clear. |
Kill all servers in the header drops the whole mesh in one click.
Fleet live context
A long-running agent fills its context window, and every turn then pays to re-read all of it. The Fleet live-context panel reads each agent's own session transcript and shows the cost in the open: how full the context is, what re-sending it costs per turn at that agent's model price, whether the agent has a recent verified handoff, and how long since it last checked in. The numbers are per-agent and never cross-attributed, even when several agents share one repository, and a 1M-context window is detected from observed usage and scaled correctly.
Acting on a heavy terminal is a consent handshake, not a kill switch. Both the automatic threshold and the per-row Compact and Clear buttons run the same two steps. First ClaudeLink asks the agent to flush its handover and call signal_checkpoint. Only once the agent genuinely consents, with a fresh checkpoint that postdates the request, and is re-confirmed idle does ClaudeLink type /compact. Clear additionally refuses to fire without a verified handoff, since it is a full wipe. Nothing fires mid-work and nothing fires without a yes. Copy prompt instead copies a ready-to-paste message with that agent's live numbers filled in, for you to send by hand. Keystroke dispatch works for tmux and iTerm2.
Lifecycle
A lock file at ~/.claudelink/ui.lock prevents duplicate windows. The launcher spawns the console as a detached process so it outlives the agent that started it and survives MCP restarts. If a stale lock is found, with a dead PID and no heartbeat, a fresh console takes over automatically. It exits only when you click Quit UI.
claudelink ui # start it manually
claudelink ui --stop # graceful shutdownOpting out
Set CLAUDELINK_UI=off in your environment before starting any agent CLI and the console will not launch. Messaging and the auto-nudge scheduler continue to work without it. The console binds to loopback only, so it is never reachable from outside your machine; see Security and privacy for the full posture.