agui-author
Author live dashboard UI from an agent via the `emit_ui` MCP tool. Emit
Interact with CAO (CLI Agent Orchestrator) — launch multi-agent sessions,
$ npx -y skills add awslabs/cli-agent-orchestrator --skill cao-session-management --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/cao-session-managementContext preview
The summary Claude sees to decide when to auto-load this skill.
Interact with CAO (CLI Agent Orchestrator) — launch multi-agent sessions,
name: cao-session-management description: Interact with CAO (CLI Agent Orchestrator) — launch multi-agent sessions, check status, send follow-up instructions, unblock stuck terminals, or shut down sessions. Use when working with CAO sessions in any capacity.
CAO runs multi-agent workflows in named sessions. A conductor agent inside each session orchestrates the work.
Before launching a session, verify:
curl -sf http://localhost:9889/sessions >/dev/null && echo OK || echo "start cao-server"
If not running, start it in a separate terminal: `cao-server`.
Profiles are CAO-level entities, installed with `cao install` regardless of which CLI provider runs them. To find available profiles:
| Source | Command | |--------|---------| | All available profiles across built-in store + local store + provider directories | `curl -sf http://localhost:9889/agents/profiles` — canonical, provider-agnostic | | Custom/local profile files only | `ls ~/.aws/cli-agent-orchestrator/agent-store/` | | Built-in profiles installed via `cao install <name>` | `ls ~/.aws/cli-agent-orchestrator/agent-context/` | | Profile installation and keyword discovery | see [Agent profile installation](../../docs/agent-profile.md#installation) and [profile discovery](../../docs/agent-profile.md#profile-discovery) | | Provider-native list (`kiro_cli` only) | `kiro-cli agent list` — useful because CAO mirrors profiles into `~/.kiro/agents/` |
The HTTP endpoint is the recommended check: it scans the built-in packaged store, the local store (`agent-store/`), and provider-specific directories (including `agent-context/`), then returns a deduplicated list (by profile name, built-in wins) with a `source` label on each entry.
If unsure which profile to use, ask the user rather than guessing.
A complete, copy-pasteable supervisor launch. The default provider is `kiro_cli`; pass `--provider <name>` to use another (`claude_code`, `codex`, `antigravity_cli`, `kimi_cli`, `copilot_cli`, `opencode_cli`, `cursor_cli`).
This example assumes a configured CAO setup (server running, profiles installed). On an already-configured host you can skip straight to `cao launch`. The `cao install` lines below are only for first-time setup; remove them if your CAO is already configured.
# Optional — skip if your CAO is already configured with these profiles. # Provider-agnostic: `cao install` works for any provider. cao install code_supervisor cao install developer cao install reviewer # Launch headlessly (assumes cao-server is already running) cao launch --agents code_supervisor --headless --yolo \ --session-name my-task --working-directory '/path/to/project' \ "Build a hello-world Python script. Delegate to developer, then reviewer." # Same launch on a different provider # cao launch --agents code_supervisor --provider claude_code --headless --yolo \ # --session-name my-task --working-directory '/path/to/project' "..." # Check progress / final output cao session status cao-my-task cao session status cao-my-task --workers # Clean up cao shutdown --session cao-my-task
Every `cao launch` MUST include:
recovery short of shutdown and relaunch. Ask the user if unclear. Always wrap in single quotes to pass the literal path to the server (prevents local shell expansion of `~` or variables before the value reaches cao).
cao launch --agents <profile> --headless --yolo \ --session-name <name> --working-directory '<path>' "<task>"
`--yolo` skips confirmation prompts. Required when launching from an agent — interactive prompts will stall the session.
For SOP-driven workflows (Kiro provider): launch with `/prompts` to discover available SOPs, then send the matched SOP name prefixed with `@` (e.g., `@my-sop-name`), then send the task — each as separate messages after polling for `completed` status.
| Command | Description | |---------|-------------| | `cao session list` | List active sessions | | `cao session status SESSION` | Conductor status and last response | | `cao session status SESSION --workers` | Include worker terminals | | `cao session status SESSION --terminal ID` | Drill into a specific terminal | | `cao session status SESSION --json` | Machine-readable output; use to extract terminal IDs | | `cao session send SESSION "msg"` | Send and wait until completion (sync) | | `cao session send SESSION "msg" --timeout N` | Send and wait up to N seconds | | `cao session send SESSION "msg" --async` | Fire-and-forget without waiting | | `cao session send SESSION "msg" --terminal ID` | Send to a specific terminal | | `cao shutdown --session SESSION` | Shut down a session | | `cao shutdown --all` | Shut down all sessions |
> `cao session send` waits for completion and returns output inline by default. With `--async`, it sends and returns immediately without waiting. With `--timeout N`, it waits up to N seconds — if the timeout expires, the agent is still running; check status later. > Session names in commands use the `cao-` pre
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.
Repo: awslabs/cli-agent-orchestrator
Author live dashboard UI from an agent via the `emit_ui` MCP tool. Emit
Find and select the best installed CAO agent profile for a task before
Enable, operate, and extend CAO's MCP Apps surface — the host-rendered fleet dashboard visible inside MCP App hosts (Claude Desktop, ChatGPT, VS Code Copilot,…
Store, recall, and forget durable facts with CAO memory — user preferences,
Create a new CAO (CLI Agent Orchestrator) plugin. Use this skill whenever the user wants to add a plugin that reacts to CAO lifecycle or messaging events,…