Orch term
Search features…Ctrl K

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
External Claude Code
commander
open session
instruct · respond
orchterm
MCP server
:9611
worker tab
return reply
worker
codex · agy · claude
grok · opencode · hermes
interactive tab

Getting started — put the commander to work

  1. 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.

  2. 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
    commander · claude
    backend · codex
    ❯ 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.

Orchestration — supervisor dashboard
Orchestration · Space 1● 2 sessions
codex s_4c1e · ssh-core⟳ turn in progress
agy s_91b7 · docsidle
① Status dot — amber in progress · green idle. ② Jump · stop · close from the row.

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.

ToolWhat it does
list_agentsOnly the workers actually installed (of claude · codex · agy · grok · opencode · hermes)
open_sessionOpens a worker in an interactive tab
sendInstructs and waits for the reply (for short work)
send_asyncInstructs and returns a receipt (turn_id) without waiting — for long work
wait_turnChecks on a turn_id (the reply if it finished, running if not)
list_sessionsWorkers you already opened — reuse them instead of spawning new ones
orch_reportHow a worker hands its final reply back to the commander (called worker-side)
close_sessionCloses 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.

If a worker returns an empty reply — run that CLI once in a terminal by itself. Workers use each CLI's own settings (model, auth), so if the CLI can't run, orchestration can't either. In particular, hermes cannot complete a single turn once its configured model becomes unavailable (subscription change, model retirement): 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

Caution — orchestration is a channel through which external programs drive AI locally. Don't carelessly disable the token, local binding, or safe-mode defaults.