HARNESS EVERYTHING ROUTING ORCHESTRATOR
Product
HERO is three pieces: the node that runs on each machine, the control plane that gathers them, and the desktop and Android clients.
Node — the single-machine dashboard
A single static Go binary, listening on 127.0.0.1:7777 by default. It watches both CLIs' session directories, renders sessions as conversations, and drives the official CLIs for send, resume, interrupt, and approval. The frontend is plain JS — no build step, no npm.
- Read-only discovery: sessions you started in a terminal show up anyway
- Markdown or raw rendering, so output is easy to copy
- Approve or deny permission prompts in the UI; blanket auto-approve per session
- One tmux terminal per session, opened in its working directory
- Installs as a PWA on a phone
Control plane — many machines as one fleet
Nodes dial out from their own machines to the control plane, carrying RPCs and event streams multiplexed over a single connection. The control plane adds a fleet-wide session view, users and permissions, an audit log, and centrally distributed harness config.
- Node inventory and liveness; session search across nodes
- Users, node ownership and share grants; admins separated from users
- Audit log: who did what, to which node, when
- Harness config distributed centrally; each node pulls on its own schedule and verifies the signature
- Documented backup, restore, and rekey procedures
Clients — desktop and Android
A native Compose Multiplatform client, written as a pure consumer of the v1 control-plane API. Sign in, list your nodes, open a session, watch it stream, send messages.
- One chrome adapted to both desktop and phone form factors
- Ctrl/Cmd+K quick switcher across the whole fleet
- Token-usage heatmap
- In-app updates
Deliberately out of scope
These are product boundaries, not a backlog:
- It does not browse your machine. HERO renders the conversations the CLIs already wrote; there is no file-read, directory-listing, diff, or arbitrary send-keys API. The one narrow exception is a tmux shell per session.
- It is not a generic multi-harness platform. HERO wraps exactly two CLIs — Claude Code and Codex — each integrated deliberately. There is no plan for a third.
- It does not own your sessions. Discovery stays read-only and observational; HERO drives the official CLIs rather than replacing them with its own agent loop.
- It does not manage the harness CLIs. HERO detects the installed claude/codex version and warns on drift, but never installs, upgrades, or pins them for you.