01

What CAO Does

From one agent doing everything serially to a team of agents working in parallel — orchestrated by infrastructure, not magic.

The Problem

You have 3 features to build, one AI agent, and a deadline breathing down your neck. The agent works on Feature A... finishes... moves to Feature B... finishes... then Feature C. Each feature takes 10 minutes. That is 30 minutes of serial execution.

Now imagine: what if you could spin up 3 agents simultaneously, each working on a different feature in its own isolated terminal? All three finish in 10 minutes. Same work, one-third the wall-clock time.

That is exactly what CAO does.

Key Insight

CAO is not another AI model — it is infrastructure that lets any CLI-based AI agent work as part of a team. It handles process management, message routing, and lifecycle — so the agents can focus on code.

The Supervisor-Worker Pattern

Think of an air traffic control tower. The controller does not fly the planes — it assigns runways, sequences takeoffs, and resolves conflicts. The pilots (agents) do the actual flying. CAO's supervisor works the same way: it reads your task, breaks it into sub-tasks, and delegates each one to a worker agent.

The supervisor never writes code directly. It thinks in terms of delegation — "worker-1 handles the API route, worker-2 writes the tests, worker-3 updates the docs" — then monitors their progress through an MCP-based message system. When all workers report done, the supervisor synthesizes results and reports back to you.

Y
You
S
cao-server
V
Supervisor
W
Workers
Click "Next Step" to begin
Step 0 / 6

What Happens When You Type cao launch

Five concrete steps, from your terminal to a running agent:

1
CLI sends HTTP POST to cao-server on port 9889

The cao CLI is a thin client. It sends your launch request to the locally running cao-server.

2
Server creates a tmux session prefixed cao-

Each orchestration run gets its own isolated session (e.g., cao-a1b2c3d4) so multiple runs never collide.

3
Server launches your AI provider in a tmux window

The provider (e.g., Claude Code, Kiro CLI, Codex) starts in its own window — just like you would run it manually, but automated.

4
The agent's system prompt is injected from the profile

Profiles define the agent's role ("you are a code reviewer"), available tools, and constraints. This is how the supervisor knows it should delegate, not code.

5
You are attached to the tmux session — you see the agent working

You can watch the supervisor think, see workers appear in new windows, and even interact with any agent mid-task via tmux.

Quick Start

Install CAO and launch your first orchestrated agent in under a minute:

terminal
# Install CAO
uv tool install cli-agent-orchestrator

# Start the server (leave running)
cao-server

# Launch a supervisor agent
cao launch --agents code_supervisor \
  --provider claude_code
What each line does
Install the CLI tool via uv (or pip install cli-agent-orchestrator)
Start the background HTTP server on port 9889
Launch a supervisor that will orchestrate workers using Claude Code as the provider
🔌
Provider Agnostic

Multiple providers supported — swap --provider claude_code for kiro_cli, codex, copilot_cli, cursor_cli, and more. The orchestration layer does not care which AI model runs inside the terminal. If it has a CLI, CAO can manage it.

Key Terms

tmux

A terminal multiplexer that lets multiple terminal sessions run independently inside a single window. CAO uses it to isolate each agent.

Session

A named tmux session (prefixed cao-) that groups all agent windows for a single orchestration run.

Terminal

A tmux window within a session where a single agent process runs. Each agent gets its own terminal.

Provider

A supported AI CLI tool (Claude Code, Kiro CLI, Codex, Copilot CLI, Cursor CLI, etc.) that CAO can launch and manage as an agent process.

Profile

A configuration file that defines an agent's role, system prompt, available MCP tools, and behavioral constraints.

MCP

Model Context Protocol — the standard interface agents use to call tools (like assign() and send_message()) exposed by the CAO server.