cao-agent-plugin-audit
Audit an existing Agent Plugins 1.0.0 package - check its plugin.json manifest and mcp.json against CAO's vendored schemas, andโฆ
Coordinate, delegate, and split work across CAO worker agents as a supervisor. Use when choosing between assign (async fire-and-forget) and handoff (sync wait-for-result), fanning tasks out to parallel specialists, managing idle-based inbox delivery, or debugging why worker
Claude Code
$ npx -y skills add awslabs/cli-agent-orchestrator --skill cao-supervisor-protocols --agent claude-code
Codex
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-supervisor-protocols -a codex -y
Cursor
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-supervisor-protocols -a cursor -y
Gemini CLI
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-supervisor-protocols -a gemini-cli -y
GitHub Copilot
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-supervisor-protocols -a github-copilot -y
OpenCode
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-supervisor-protocols -a opencode -y
Windsurf
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-supervisor-protocols -a windsurf -y
name: cao-supervisor-protocols description: Coordinate, delegate, and split work across CAO worker agents as a supervisor. Use when choosing between assign (async fire-and-forget) and handoff (sync wait-for-result), fanning tasks out to parallel specialists, managing idle-based inbox delivery, or debugging why worker callbacks aren't arriving. Covers dispatch patterns, result collection, and multi-agent orchestration planning. Not for worker-side task execution, creating skills, managing plugins, or session lifecycle (cao launch/shutdown). compatibility: Requires cao-server running at localhost:9889 and cao-mcp-server configured on the agent.
Use this skill when supervising worker agents through CLI Agent Orchestrator.
This skill covers how supervisors should dispatch work, decide between `assign` and `handoff`, and receive worker results without blocking inbox delivery.
From `cao-mcp-server`, supervisors orchestrate work with:
Your own terminal ID is available in the `CAO_TERMINAL_ID` environment variable. CAO appends it to assigned task messages and records it on worker terminals automatically, so you rarely need to handle it yourself.
Delegating has a fixed cost: routing the message, starting a worker, and the worker's own verification. Choose by the shape of the task:
Your agent profile's rules take priority over this heuristic: `code_supervisor`, for instance, always delegates coding and never writes code itself.
Measured on [#1119](https://github.com/awslabs/cli-agent-orchestrator/pull/1119): the same dependency-floor change took 1m 18s done directly and about 2m 57s routed through a conductor to a developer seat. Both produced byte-identical lockfiles. The delegated result had the better code comment, which is the value an independent pass adds.
| Mistake | Fix | |---------|-----| | Keeping the terminal busy after `assign` โ polling in a loop, or running `sleep`/`echo` to wait. | Inbox messages are delivered when your terminal goes **idle**. Dispatch everything first, then end the turn. | | Answering a Hermes worker that reports `waiting_user_answer` with `assign`, `handoff` or `send_message`. | Use `answer_user_prompt(terminal_id, answer)` with the exact selection to submit, such as `1` or `o`. | | Doing a small coding task yourself because the do-or-delegate heuristic allows it, on a profile that forbids it. | Your agent profile's rules win. `code_supervisor`, for instance, always delegates coding. | | Treating a `send_message` callback as proof the work landed, when the worker wrote files. | Ask workers for the deliverable up front, and for **absolute paths** in the callback message. | | Assuming you must hand-write callback instructions into every assigned message. | CAO appends your terminal ID and records you as the worker's caller automatically. An explicit callback ID is optional emphasis; it is required only when `CAO_ENABLE_SENDER_ID_INJECTION=false`. |
Use `assign` when the worker should continue independently and report back later. This is the normal pattern for fan-out work or parallel execution.
Use `handoff` when the next step is blocked on the worker result. The orchestrator waits for completion, captures the worker output, and returns it directly to the supervisor.
Typical pattern:
Assigned workers usually return results through `send_message`. Those inbox messages are delivered to the supervisor automatically when the supervisor terminal becomes idle.
This means supervisors should:
Do not keep the terminal busy with `sleep`, `echo`, or similar commands while waiting. A busy terminal delays inbox delivery.
If you need multiple worker results, dispatch them all first, then end the turn. Do not poll manually in a loop.
By default, CAO appends your terminal ID and callback instructions to every assigned message automatically, and records your terminal as the worker's caller โ workers can reply with `send_message` without a `receiver_id`. You do not need to hand-write callback instructions.
You may still include an explicit callback ID in the task message for emphasis:
Analyze dataset A. Send results back to terminal abc123 using send_message.
If your deployment disables the automatic suffix (`CAO_ENABLE_SENDER_ID_INJECTION=false`), the explicit pattern above is required: the structural caller record still works, but the worker gets no in-message reminder.
Use `send_message` when you need to contact an existing terminal directly rather than spawning a new worker.
Examples:
When sending direct messages
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.
Audit an existing Agent Plugins 1.0.0 package - check its plugin.json manifest and mcp.json against CAO's vendored schemas, andโฆ
Author a new Agent Plugins 1.0.0 package from an empty directory - write the plugin.json manifest, lay out skills/, optionallyโฆ
Contribute changes to the CAO (CLI Agent Orchestrator) codebase โ the local
Create a new CAO (CLI Agent Orchestrator) plugin. Use this skill whenever the user wants to add a plugin that reacts to CAOโฆ
Create a new CLI agent provider for CAO (CLI Agent Orchestrator). Use this skill whenever the user wants to add support for a newโฆ
Find and select the best installed CAO agent profile for a task before
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also coversโฆ
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, fillingโฆ