Flagship features · control plane MCP A2A
Agent orchestration
The AI you're talking to spins up other AIs (claude·codex·agy·grok·opencode·hermes) as workers and has them collaborate over multiple turns while keeping context. A commander–worker model lets you run a whole team from one place.
What it does
The commander AI launches workers inside orchterm in interactive TUI tabs and exchanges messages with them. It's a bidirectional 1:1 channel where a worker can also speak to the commander first, and no one can touch a worker that isn't their own session — so you can't hijack someone else's work.
commander
open sessioninstruct · respond:9611
worker tabreturn replygrok · opencode · hermes
interactive tab
Getting started — put the commander to work
-
Turn on orchestration
Turn on orchestration in settings (off by default) and restart the app. After that, an external Claude Code can put workers to work right away with no extra setup.
-
Delegate from the commander tab
Delegate in plain language from the commander (claude) tab — a worker tab opens and the reply comes back.
commander · claudeorchestrating❯ ask backend(codex) to review the SSH tunnel module ▸ open_session codex from=ep_claude_8f3a… → { session_id: s_4c1e } ▸ send "check whether channel_open_direct_tcpip is concurrency-safe" ⟳ codex working… (waiting for output to idle) ◂ reply codex: "&self borrow ⇒ concurrency-safe. Verified -L/-D listeners bind to 127.0.0.1." ❯▲ One cycle: the commander opens a worker, instructs it, and gets a reply.
Supervisor dashboard (one per Space)
Run "Orchestration worker commander" from the command palette to open the supervisor dashboard tab. It gathers the current Space's live sessions in one place, where you can jump to each worker, stop an in-progress turn, and close a session.
What gets exchanged
These are the tools the commander AI calls behind the natural-language layer — you never type them yourself; they're here to help you understand the flow.
| Tool | What it does |
|---|---|
list_agents | Only the workers actually installed (of claude · codex · agy · grok · opencode · hermes) |
open_session | Opens a worker in an interactive tab |
send | Instructs and waits for the reply (for short work) |
send_async | Instructs and returns a receipt (turn_id) without waiting — for long work |
wait_turn | Checks on a turn_id (the reply if it finished, running if not) |
list_sessions | Workers you already opened — reuse them instead of spawning new ones |
orch_report | How a worker hands its final reply back to the commander (called worker-side) |
close_session | Closes a worker tab |
Use send_async for long work — so it doesn't get cut off
Why it exists — the commander AI's CLI has a tool-call time limit (measured: claude 60s ·
opencode 62s · agy 180s · codex and hermes 300s). If the work you hand a worker takes longer than that,
send gets cut off while waiting. Worse, the worker keeps going after the cut, so a retry
injects the same instruction a second time.
send_async delivers the instruction and immediately returns a receipt (turn_id).
The commander then checks in with wait_turn in short polls and collects the reply when it lands.
Each individual call is short, so nothing hits the time limit, and asking about the same turn_id
again is safe (no duplicate injection).
That means you can hand a worker jobs that take minutes — refactors, reviews, builds.
The commander AI picks between send and send_async on its own; there is nothing
for you to configure.
HTTP 404: The model … does not exist. Pick a working model with hermes model, and register a spare with hermes fallback add — it will switch over automatically when that model is retired later.Safe defaults
- Local (127.0.0.1) only + connections are made with one-time tokens.
- Off by default — you must turn it on in settings and restart for it to work.
- Worker safe mode on by default — workers don't use dangerous permission-bypass flags.