Codeman logocodeman Star on GitHub
self-hosted·MIT·no telemetry

Mission control for your AI coding agents.

Run Claude Code, OpenCode, Codex and Gemini CLI 24/7 on your own box, in persistent tmux sessions. Watch every agent, from every device, phone included.

codeman @ your-box
$ curl -fsSL getcodeman.com/install | bash

Mac · Linux · Windows (WSL) · needs Node 22 + tmux · prefer npm? npm i -g aicodeman

▶ live a real recording: three Explore subagents fan out into floating windows, tethered to their parent session tab
## the zerolag trick

Zero input lag. Even over a tunnel.

Typing into a remote terminal normally means a 200-300ms round trip per keystroke, and seconds on a bad link. Codeman paints your keystrokes instantly in a Mosh-inspired local echo overlay, then hands off invisibly the moment the real echo arrives.

▶ side-by-side same phone, same tunnel: 0ms local echo with Zerolag, 600ms to 2.7s without

Extracted as a standalone library for any xterm.js app: npm i xterm-zerolag-input

## every agent, one screen

Built for the Poweruser workflow.

You never run just one coding agent. Codeman puts all of them, across every project, in a single row of tabs with live status.

1:session-tabs working Every agent is a tab, every project a case. Real streamed terminals with full scrollback, not summaries. And because every session is plain tmux, ssh still works like it always has.
2:needs-you idle A tab blinks yellow when its session goes idle, red when it waits on an answer. One glance replaces cycling through six terminal windows.
3:phone connected Better than any mobile SSH client: QR login, push notifications, and zero input lag via a Mosh-inspired local echo overlay (xterm-zerolag-input on npm).
4:auto-resume armed "5-hour limit reached ∙ resets 8pm" at 1am? Codeman parses the reset time, waits it out, and continues the run. Live 5h/7d plan-usage chips show the limits coming.
5:subagents fanning-out Subagents pop up as floating windows with live token counts, tethered to their parent tab by connector lines. Peek into any worker mid-flight.
6:multi-cli 5 modes Claude Code, OpenCode, Codex CLI, Gemini CLI, plus a plain shell. One dashboard for whatever you run today, and whatever you switch to next month.
7:isolation hardened Run a case in its own Docker container (cap-drop ALL, non-root, credentials never written back) or on another machine over SSH. Same tabs, different blast radius.
8:file-viewer previewing See what an agent just created without an SSH round trip: code, images, videos, PDFs, Office docs, previewed in the browser and downloadable straight to the device in your hand.
The Codeman dashboard annotated: session tabs are tmux sessions, live 5-hour and weekly plan-usage chips, one click starts N agents and tabs
the dashboard, annotated: tabs are tmux sessions, live 5h/7d plan usage, one click starts N agents & tabs
## while you sleep

It keeps working when you leave.

Multi-layer idle detection (completion messages, output silence, token stability, an optional AI check) re-prompts a session that has genuinely stopped. Around 110k tokens Codeman triggers /compact, around 140k a full /clear plus re-init, and a circuit breaker trips on no-progress loops instead of burning tokens all night.

w1-myproject · overnight run
01:125-hour limit reached ∙ resets 3am
01:12[codeman] limit pause armed · resume 03:02 (+2min safety)
03:02[codeman] dialog dismissed · "continue" sent
03:02▶ agent working · branch ready before breakfast

Opt-in per session, because auto-consuming your quota the moment it resets should be a deliberate choice. A built-in overnight-autonomous preset tunes all of it for unattended runs.

## built for speed

Glance. Unblock. Queue. Done.

A tool you live in all day has to be keyboard-first. The speed that matters isn't benchmark speed; it's "check five agents, unblock two, queue one more, done in ninety seconds" speed.

Ctrl/Cmd+K

A session palette: fuzzy-type any session or case name and jump. Behind it, a manager of every session you've ever run: searchable by prompt, pinnable, resumable.

Alt+1-9 · Ctrl+Tab

Straight to any tab, cycle through them, and every shortcut is rebindable (Ctrl+? shows the map).

Run ×N

Pick a case, hit Run, the tab appears named and numbered. Need five agents on one repo? The tabs number themselves.

search

Cross-session search digs through session names, run events, and files the agents touched.

cron

Recurring work doesn't need you: scheduled jobs launch an agent with a prompt, in any of the supported CLIs.

away digest

One click answers "what happened while I was gone": which sessions need attention, finished, or are still running.

## any screen

Your desk. Your couch. Same sessions.

One dense dashboard at the desk, and the exact same live sessions from the phone in your hand: QR login, push notifications when an agent needs you, and typing that feels local even over a tunnel.

The Codeman desktop dashboard: session tabs across projects, a live terminal, plan-usage chips in the header
the desktop dashboard: tabs, live plan-usage chips, one-click parallel launches
Codeman on a phone: session tabs, a live Claude Code terminal, and the keyboard accessory bar
~1,500commits in half a year
465+GitHub stars
13contributors
5CLI modes
0telemetry, accounts, cloud
## get codeman

Your box. Your agents. One screen.

One command on any machine that stays on: a Mac mini in a closet, a Linux box, a VPS. The installer prompts before every system change and binds to loopback by default.

A dashboard that drives coding agents deserves paranoia about who can reach it. Defense in depth, always on:

loopback-only bind by default Host-header allowlist vs DNS rebinding Origin/CSRF guard rate-limited auth single-use QR login · 60s TTL agent permission modes: your call
codeman @ your-box
$ curl -fsSL getcodeman.com/install | bash

MIT licensed · built by Ark0N · runs entirely on your own hardware