Skip to main content

CLI Commands

Complete reference for all CAO CLI commands.

Global Options

cao [command] --help # Show help for any command
cao --version # Show version

Entry Points

BinaryDescription
caoMain CLI
cao-serverAPI server (default port 9889)
cao-mcp-serverMCP server
cao-ops-mcp-serverOps MCP server

Command Overview

CommandDescription
cao launchLaunch a session with an agent profile
cao sessionManage CAO sessions (list, status, send)
cao shutdownShutdown sessions
cao profileManage agent profiles (list, show, find, validate, remove, templates, create)
cao scheduleManage scheduled flows (add, list, remove, disable, enable, run)
cao configConfiguration management
cao initInitialize CAO
cao installInstall agent profiles
cao envEnvironment management
cao mcp-serverStart MCP server inline
cao infoShow system info
cao memoryMemory management
cao skillsSkills management
cao terminalTerminal management
cao workflowWorkflow management
cao updateUpdate CAO to the latest version
cao flow[Deprecated] Alias for schedule

cao launch

Launch a session with an agent profile. This is the primary command for starting agent work.

cao launch [MESSAGE] --agents PROFILE [OPTIONS]

Options

OptionDescription
--agents TEXTAgent profile to launch (required)
--session-name TEXTName of the session (default: auto-generated)
--headlessLaunch in detached mode (no interactive terminal)
--provider TEXTProvider to use (default: profile provider or kiro_cli)
--allowed-tools TEXTOverride allowedTools (repeatable)
--asyncSend message and return immediately
--auto-approveSkip confirmation prompt
--yolo[DANGEROUS] Unrestricted tool access
--working-directory TEXTWorking directory (default: current directory)
--memoryAlso launch a memory_manager terminal
--env KEY=VALUEForward environment variable to session (repeatable)

Examples

# Launch with a profile and an initial message
cao launch "Fix the failing tests in src/" --agents code-reviewer

# Launch in headless (detached) mode
cao launch "Run the full test suite" --agents test-runner --headless

# Launch with a custom session name
cao launch "Deploy to staging" --agents deployer --session-name staging-deploy

# Launch with a specific provider
cao launch "Refactor the auth module" --agents refactorer --provider claude_code

# Launch with environment variables forwarded
cao launch "Build the project" --agents builder --env AWS_REGION=us-west-2 --env STAGE=beta

# Launch asynchronously (fire and forget)
cao launch "Generate weekly report" --agents reporter --async

# Launch with memory manager
cao launch "Research this codebase" --agents explorer --memory

cao session

Manage active CAO sessions.

:::note Session names include the cao- prefix cao launch --session-name my-session creates a session named cao-my-session. The subcommands below take the full prefixed name; cao session list shows the exact values. :::

cao session list

List all active sessions.

cao session list [--json]
OptionDescription
--jsonOutput in JSON format

cao session status

Show status of a specific session.

cao session status SESSION_NAME [--terminal ID] [--workers] [--json]
OptionDescription
--terminal IDShow status of a specific terminal within the session
--workersInclude worker status
--jsonOutput in JSON format

cao session send

Send a message to a running session.

cao session send SESSION_NAME MESSAGE [--terminal ID] [--async] [--timeout N]
OptionDescription
--terminal IDTarget a specific terminal within the session
--asyncSend and return immediately without waiting for response
--timeout NTimeout in seconds to wait for response

Examples

# List all sessions
cao session list

# List sessions in JSON format
cao session list --json

# Check status of a session
cao session status cao-my-session

# Check status including workers
cao session status cao-my-session --workers

# Send a follow-up message to a session
cao session send cao-my-session "Now run the integration tests"

# Send a message to a specific terminal
cao session send cao-my-session "Check the logs" --terminal a1b2c3d4

# Send asynchronously
cao session send cao-my-session "Generate the report" --async

# Send with a timeout
cao session send cao-my-session "Run benchmarks" --timeout 300

cao shutdown

Shutdown one or all sessions.

cao shutdown --all
cao shutdown --session NAME
OptionDescription
--allShutdown all active sessions
--session NAMEShutdown a specific session by name

Examples

# Shutdown all sessions
cao shutdown --all

# Shutdown a specific session
cao shutdown --session cao-staging-deploy

cao profile

Manage agent profiles. Profiles define agent behavior, tools, and configuration.

cao profile list

List all installed profiles.

cao profile list

cao profile show

Display the full contents of a profile.

cao profile show NAME_OR_PATH

cao profile validate

Validate a profile for correctness.

cao profile validate NAME_OR_PATH

cao profile remove

Remove an installed profile.

cao profile remove NAME [-y]
OptionDescription
-ySkip confirmation prompt

cao profile find

Search profiles by keyword.

cao profile find QUERY [--limit N] [--json]
OptionDescription
--limit NMaximum results to return (default: 10)
--jsonOutput in JSON format

cao profile templates

List available profile templates.

cao profile templates

cao profile create

Create a new profile from a template.

cao profile create --template NAME --config FILE [--output-dir DIR]
OptionDescription
--template NAMETemplate to base the profile on, namespaced e.g. aws/sqs-monitor (required). Run cao profile templates to list.
--config FILEConfiguration file for profile creation (required)
--output-dir DIRDirectory to write the profile to

Examples

# List all installed profiles
cao profile list

# Show a profile's configuration
cao profile show code-reviewer

# Validate a profile file
cao profile validate ./my-profile.md

# List available templates
cao profile templates

# Create a new profile from a template
cao profile create --template aws/sqs-monitor --config ./my-config.json

# Create a profile with a custom output directory
cao profile create --template aws/stepfunction --config ./config.json --output-dir ./agents

# Remove a profile (with confirmation)
cao profile remove old-profile

# Remove a profile without confirmation
cao profile remove old-profile -y

cao schedule

Manage scheduled flows. Flows are automated sequences of agent operations that can run on a schedule.

cao schedule add

Add a new scheduled flow from a file.

cao schedule add FILE_PATH

cao schedule list

List all scheduled flows.

cao schedule list

cao schedule remove

Remove a scheduled flow.

cao schedule remove NAME

cao schedule disable

Disable a scheduled flow (keeps configuration but stops execution).

cao schedule disable NAME

cao schedule enable

Re-enable a disabled scheduled flow.

cao schedule enable NAME

cao schedule run

Manually trigger a scheduled flow.

cao schedule run NAME

Examples

# Add a new scheduled flow
cao schedule add ./flows/nightly-tests.md

# List all scheduled flows
cao schedule list

# Manually run a flow
cao schedule run nightly-tests

# Disable a flow temporarily
cao schedule disable nightly-tests

# Re-enable it
cao schedule enable nightly-tests

# Remove a flow entirely
cao schedule remove nightly-tests

cao config

Configuration management for CAO settings.

cao config

cao init

Initialize CAO in the current directory or environment.

cao init

cao install

Install an agent profile. AGENT_SOURCE is required and may be a built-in profile name, a local .md path, or a URL on an allowlisted host (github.com, raw.githubusercontent.com by default).

cao install AGENT_SOURCE [--provider PROVIDER] [--env KEY=VALUE]
OptionDescription
--provider PROVIDERProvider to install for. Precedence: this flag, then the profile's provider: frontmatter, then kiro_cli
--env KEY=VALUESubstitute a value into ${VAR} placeholders in the profile (repeatable)
# Install a built-in profile
cao install code_supervisor

# Install from a local file
cao install ./my-agent.md

# Install for a specific provider
cao install developer --provider claude_code

cao update

Update CAO to the latest version. Automatically detects how CAO was installed (git, PyPI registry, or local) and runs the appropriate upgrade command.

cao update

Behavior by install method

Install sourceWhat cao update does
PyPI (uv tool install cli-agent-orchestrator)Runs uv tool upgrade cli-agent-orchestrator
PyPI with version pin (==2.3.0, <3.0)Runs uv tool install cli-agent-orchestrator@latest --upgrade (unpins)
Git (uv tool install git+...)Runs uv tool install <git-source> --upgrade --reinstall
Local directory / editablePrints guidance (cannot auto-update a local install)

After updating, restart any running cao-server to pick up the new version.

Examples

# Update CAO
cao update

# If installed from git, it will fetch the latest commits:
# $ uv tool install git+https://github.com/awslabs/cli-agent-orchestrator.git@main --upgrade --reinstall

cao env

Manage environment settings for CAO sessions.

cao env

cao mcp-server

Start an MCP server inline (within the current process).

cao mcp-server

cao info

Display information about the current CAO session (database path, active session context). For version info, use cao --version.

cao info

cao memory

Memory management for agent sessions.

cao memory

cao skills

Skills management for agent capabilities.

cao skills

cao terminal

Terminal management for multi-terminal sessions.

cao terminal

cao workflow

Workflow management for complex multi-step operations.

cao workflow

Providers

CAO supports multiple agent providers. Specify a provider with the --provider flag on cao launch.

ProviderDescription
kiro_cliKiro CLI (default)
claude_codeClaude Code
codexOpenAI Codex
kimi_cliKimi CLI
copilot_cliGitHub Copilot CLI
opencode_cliOpenCode CLI
hermesHermes
cursor_cliCursor CLI
antigravity_cliAntigravity CLI

Example

# Launch with Claude Code as the provider
cao launch "Analyze this codebase" --agents analyst --provider claude_code

# Launch with Codex
cao launch "Write unit tests" --agents test-writer --provider codex

Deprecated Commands

CommandReplacement
cao flowUse cao schedule instead