The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
Multi-agent orchestration for coding CLIs
CAO runs a local server, launches supported coding CLIs in isolated tmux sessions, and lets a supervisor coordinate them. It works with provider-specific agents such as Claude Code, Codex, Cursor, Kiro, and others, while keeping their native authentication and capabilities. The repo also includes workflows, memory, skills, plugins, a web UI, and MCP apps so builders can shape how the agents work and observe what they are doing.

Builders who want one supervisor to coordinate several coding CLIs across isolated sessions.
You can delegate work to multiple agents without managing each terminal by hand.
What it does
Supervisor and worker coordination
Runs a local `cao-server` and launches a supervisor that can delegate to specialist agents in parallel or sequence.
Isolated tmux sessions
Starts provider CLIs in separate terminal sessions so each agent stays isolated while still being coordinated.
Provider support guides
Includes focused docs for Claude Code, Codex CLI, Cursor CLI, Copilot CLI, Kiro CLI, Grok Build CLI, and others.
Agent profiles
Defines profile schema, provider selection, discovery, and overrides for different agent setups.
Workflows and flows
Provides scheduled runs and multi-step pipelines for repeatable agent work.
Memory and self-learning
Adds persistent cross-session memory and an opt-in loop that turns outcomes into lessons and promoted instructions.
Web UI and MCP apps
Offers a browser UI and host-rendered fleet interfaces for watching and operating runs.
Skills and plugins
Supports reusable agent guidance plus outbound events and plugin authoring.
How to get it
- 1Install the current main branch as a uv tool
uv tool install git+https://github.com/awslabs/cli-agent-orchestrator.git@main --upgrade cao --help
- 2To update an existing CAO installation
cao update
README
CLI Agent Orchestrator (CAO)
CLI Agent Orchestrator (CAO) coordinates multiple AI coding CLIs so a supervisor can delegate work to specialist agents in parallel or sequence.
📚 Documentation — guides, reference, and two interactive courses.
What CAO does
CAO runs a local cao-server, starts provider CLIs in isolated terminal
sessions, and gives a supervisor tools for coordinating workers. The agents
remain full CLI processes with their native authentication and capabilities.
See CODEBASE.md for the runtime architecture and package layout.
Prerequisites
Install:
- Python 3.10 or later
- tmux 3.3 or later
- uv
- At least one supported provider CLI, authenticated before you launch CAO: Kiro CLI, Claude Code, Codex CLI, Antigravity CLI, Hermes, Kimi CLI, MiniMax Code, GitHub Copilot CLI, OpenCode CLI, Oh My Pi(OMP) CLI, Cursor CLI, or Grok Build CLI
The focused provider guides contain installation, authentication, and provider-specific behavior.
Install CAO
Install the current main branch as a uv tool:
uv tool install git+https://github.com/awslabs/cli-agent-orchestrator.git@main --upgrade
cao --help
For a tagged release, install
cli-agent-orchestrator from PyPI.
See DEVELOPMENT.md for a source checkout.
For container-based installation, see the
devcontainer feature.
To update an existing CAO installation:
cao update
See Updating CAO for source-aware behavior and edge cases.
First supervisor launch
The unqualified commands below use CAO's default Kiro CLI provider. If you installed a different provider, follow its focused guide above for the provider override while keeping the same sequence.
-
Install the built-in supervisor profile:
cao install code_supervisor -
In terminal A, start the local server and leave it running:
cao-server -
In terminal B, change to the project directory the agents should work in, then launch the supervisor:
cd /path/to/your/project cao launch --agents code_supervisor -
Observe the supervisor in the attached launch terminal, open the Web UI at
http://localhost:9889, or follow the tmux guide to attach to its session. -
Stop the named session when finished:
cao shutdown --session {session-name}To stop every CAO session instead, run
cao shutdown --all.
Where to go next
Operate CAO
- Control-plane selection: choose the Web UI, shell CLI, operations MCP server, or plugins.
- Web UI and MCP Apps: browser and host-rendered fleet interfaces.
- Flows and workflows: scheduled runs and multi-step pipelines.
- Skills: install, scope, and author reusable agent guidance.
- Memory and self-learning: persistent cross-session memory, and the opt-in loop that turns workflow outcomes into lessons and promoted instructions.
- AI-DLC portfolio example: coordinate parallel AI-DLC intents across repositories and isolated worktrees.
- Tool restrictions: roles, allowlists, and provider enforcement.
- Kubernetes deployment: run a supervisor and worker fleet on Amazon EKS, with shared workspace, per-pod state, and credential delivery.
- Updating CAO: update an installed uv tool.
Configure and integrate
- Agent profiles: profile schema, discovery, provider selection, and overrides.
- HTTP API and PTY WebSocket: route-family overview and terminal streaming contract.
- Plugins: outbound events, installation, and authoring.
- Provider behavior: Kiro CLI, Claude Code, Codex CLI, Antigravity CLI, Hermes, Kimi CLI, MiniMax Code, GitHub Copilot CLI, OpenCode CLI, Oh My Pi(OMP) CLI, Cursor CLI, and Grok Build CLI.
- Security policy: vulnerability reporting and deployment guidance.
Contribute
- Codebase guide: runtime surfaces, package ownership, and data flow.
- Development guide: local setup, testing, and verification.
- Release guide: maintainer release process.
Contributing
See CONTRIBUTING.md and DEVELOPMENT.md before submitting changes. Documentation changes must also follow the documentation maintenance rule.
License
This project is licensed under the Apache License 2.0. See LICENSE.
Files in the repo
- .devcontainer
- .github
- cao_mcp_apps
- design-tokens
- docs
- docusaurus
- examples
- scripts
- skills
- src
- test
- tui
- web
- .coverage-baseline.json
- .dockerignore
- .gitignore
- .gitleaks.toml
- .pre-commit-config.yaml
- .tmux.conf
- CHANGELOG.md
- cliff.toml
- CODE_OF_CONDUCT.md
- CODEBASE.md
- CONTRIBUTING.md
- DEVELOPMENT.md
- LICENSE
- Makefile
- mypy.ini
- NOTICE
- pyproject.toml
- README.md
- README.zh-CN.md
- SECURITY.md
- tmux-install.sh
- uv.lock
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More harnesses
from vibe coding to agentic engineering - practice makes claude perfect
🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
Practical patterns, starters & CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.
Git. Ship. Done - Core

The most RAM efficient harness