[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aws-labs-cao-session-management":3,"mdc--dcuccr-key":36,"related-repo-aws-labs-cao-session-management":1727,"related-org-aws-labs-cao-session-management":1825},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":34,"mdContent":35},"cao-session-management","manage multi-agent CAO sessions","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"aws-labs","AWS Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Faws-labs.png","awslabs",[13,17,20,23],{"name":14,"slug":15,"type":16},"Automation","automation","tag",{"name":18,"slug":19,"type":16},"CLI","cli",{"name":21,"slug":22,"type":16},"Orchestration","orchestration",{"name":24,"slug":25,"type":16},"Agents","agents",871,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fcli-agent-orchestrator","2026-07-25T05:31:36.314239",null,164,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":29},[],"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fcli-agent-orchestrator\u002Ftree\u002FHEAD\u002Fskills\u002Fcao-session-management","---\nname: cao-session-management\ndescription: Interact with CAO (CLI Agent Orchestrator) — launch multi-agent sessions,\n  check status, send follow-up instructions, unblock stuck terminals, or shut down\n  sessions. Use when working with CAO sessions in any capacity.\n---\n\n# CAO Session Management\n\n## Overview\n\nCAO runs multi-agent workflows in named sessions. A conductor agent inside each\nsession orchestrates the work.\n\n## Core Concepts\n\n- **Session**: A group of agent terminals working together\n- **Conductor**: The supervisor terminal — receives instructions, delegates to workers\n- **Provider**: LLM backend. Default `kiro_cli`, override with `--provider`\n\n## Prerequisites\n\nBefore launching a session, verify:\n\n- **`cao-server` is running** at `localhost:9889`. Quick check:\n  ```bash\n  curl -sf http:\u002F\u002Flocalhost:9889\u002Fsessions >\u002Fdev\u002Fnull && echo OK || echo \"start cao-server\"\n  ```\n  If not running, start it in a separate terminal: `cao-server`.\n- **The agent profile is installed.** `cao launch --agents \u003Cprofile>` fails if the profile is unknown. Install built-ins or custom files with `cao install \u003Cprofile|path|url>`.\n\n## Discovering Available Profiles\n\nProfiles are CAO-level entities, installed with `cao install` regardless of which CLI provider runs them. To find available profiles:\n\n| Source | Command |\n|--------|---------|\n| All available profiles across built-in store + local store + provider directories | `curl -sf http:\u002F\u002Flocalhost:9889\u002Fagents\u002Fprofiles` — canonical, provider-agnostic |\n| Custom\u002Flocal profile files only | `ls ~\u002F.aws\u002Fcli-agent-orchestrator\u002Fagent-store\u002F` |\n| Built-in profiles installed via `cao install \u003Cname>` | `ls ~\u002F.aws\u002Fcli-agent-orchestrator\u002Fagent-context\u002F` |\n| Profile installation and keyword discovery | see [Agent profile installation](..\u002F..\u002Fdocs\u002Fagent-profile.md#installation) and [profile discovery](..\u002F..\u002Fdocs\u002Fagent-profile.md#profile-discovery) |\n| Provider-native list (`kiro_cli` only) | `kiro-cli agent list` — useful because CAO mirrors profiles into `~\u002F.kiro\u002Fagents\u002F` |\n\nThe HTTP endpoint is the recommended check: it scans the built-in packaged store, the local store (`agent-store\u002F`), and provider-specific directories (including `agent-context\u002F`), then returns a deduplicated list (by profile name, built-in wins) with a `source` label on each entry.\n\nIf unsure which profile to use, ask the user rather than guessing.\n\n## Quick Example\n\nA complete, copy-pasteable supervisor launch. The default provider is `kiro_cli`; pass `--provider \u003Cname>` to use another (`claude_code`, `codex`, `antigravity_cli`, `kimi_cli`, `copilot_cli`, `opencode_cli`, `cursor_cli`).\n\nThis 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.\n\n```bash\n# Optional — skip if your CAO is already configured with these profiles.\n# Provider-agnostic: `cao install` works for any provider.\ncao install code_supervisor\ncao install developer\ncao install reviewer\n\n# Launch headlessly (assumes cao-server is already running)\ncao launch --agents code_supervisor --headless --yolo \\\n  --session-name my-task --working-directory '\u002Fpath\u002Fto\u002Fproject' \\\n  \"Build a hello-world Python script. Delegate to developer, then reviewer.\"\n\n# Same launch on a different provider\n# cao launch --agents code_supervisor --provider claude_code --headless --yolo \\\n#   --session-name my-task --working-directory '\u002Fpath\u002Fto\u002Fproject' \"...\"\n\n# Check progress \u002F final output\ncao session status cao-my-task\ncao session status cao-my-task --workers\n\n# Clean up\ncao shutdown --session cao-my-task\n```\n\n## Launching a Session\n\nEvery `cao launch` MUST include:\n\n- `--agents PROFILE` — see [Discovering Available Profiles](#discovering-available-profiles) above; if unclear, ask the user\n- `--headless` — required from an LLM agent; without it cao tries to attach tmux\n- `--session-name NAME` — cao adds `cao-` prefix automatically\n- `--working-directory DIR` — a wrong path silently breaks the session with no\n  recovery short of shutdown and relaunch. Ask the user if unclear. Always wrap\n  in single quotes to pass the literal path to the server (prevents local shell\n  expansion of `~` or variables before the value reaches cao).\n\n```bash\ncao launch --agents \u003Cprofile> --headless --yolo \\\n  --session-name \u003Cname> --working-directory '\u003Cpath>' \"\u003Ctask>\"\n```\n\n`--yolo` skips confirmation prompts. Required when launching from an agent — interactive\nprompts will stall the session.\n\nFor SOP-driven workflows (Kiro provider): launch with `\u002Fprompts` to discover\navailable SOPs, then send the matched SOP name prefixed with `@` (e.g.,\n`@my-sop-name`), then send the task — each as separate messages after\npolling for `completed` status.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `cao session list` | List active sessions |\n| `cao session status SESSION` | Conductor status and last response |\n| `cao session status SESSION --workers` | Include worker terminals |\n| `cao session status SESSION --terminal ID` | Drill into a specific terminal |\n| `cao session status SESSION --json` | Machine-readable output; use to extract terminal IDs |\n| `cao session send SESSION \"msg\"` | Send and wait until completion (sync) |\n| `cao session send SESSION \"msg\" --timeout N` | Send and wait up to N seconds |\n| `cao session send SESSION \"msg\" --async` | Fire-and-forget without waiting |\n| `cao session send SESSION \"msg\" --terminal ID` | Send to a specific terminal |\n| `cao shutdown --session SESSION` | Shut down a session |\n| `cao shutdown --all` | Shut down all sessions |\n\n> `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.\n> Session names in commands use the `cao-` prefixed form (e.g. `--session-name mywork` → use `cao-mywork`).\n\n## Worker Communication\n\nInside a session, the conductor talks to workers via two MCP tools:\n\n**Prefer communicating through the conductor** (`cao session send SESSION \"msg\"`) rather\nthan directly to worker terminals. Bypassing the conductor leaves it without state on\nwhat was asked or answered, which causes confusion. Two exceptions: unblocking a stuck\nworker, and follow-up questions to a persistent async worker (see below).\n\n**handoff** (blocking) — conductor sends task and waits for the worker to reach\n`COMPLETED` status, then reads the output. If it times out, the worker is still\nrunning — the conductor just stopped waiting.\n\n**assign** (non-blocking) — conductor sends task and returns immediately. The worker\nis expected to call `send_message` back to the conductor's terminal ID when done.\nEach terminal only knows its own ID via `$CAO_TERMINAL_ID`.\n\nBy default the conductor uses sync (handoff). You can override this by explicitly\nasking it to use async or sync protocol when sending it a task.\n\nAsync workers (assign) stay alive after completing their task and can answer follow-up\nquestions — useful for ongoing investigation where you want to keep querying the same\nworker. In this case, sending directly to the worker terminal is appropriate:\n```bash\ncao session send SESSION \"\u003Cfollow-up question>\" --terminal \u003Cworker-terminal-id>\n```\n\n## Common Mistakes\n\n**Wrong working directory** — agents won't find files, builds fail with confusing errors.\n\n**Stuck conductor** — conductor is waiting on a worker that stopped responding. Check\nthe worker's status first, then decide: prompt it to continue and send results back,\nor ask it to resend if it already finished. Never re-delegate work that may still be\nrunning — it risks duplicate work.\n```bash\ncao session status SESSION --workers\ncao session status SESSION --terminal \u003Cworker-terminal-id>\ncao session send SESSION \"continue your work, then send results to terminal \u003Cconductor-terminal-id>\" --terminal \u003Cworker-terminal-id>\n```\nGet the conductor's terminal ID from `cao session status SESSION --json`.\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,49,56,62,68,119,125,130,276,282,295,442,471,476,482,553,573,905,911,923,993,1101,1112,1149,1155,1363,1416,1422,1427,1444,1462,1487,1492,1497,1563,1569,1579,1589,1710,1721],{"type":42,"tag":43,"props":44,"children":45},"element","h1",{"id":4},[46],{"type":47,"value":48},"text","CAO Session Management",{"type":42,"tag":50,"props":51,"children":53},"h2",{"id":52},"overview",[54],{"type":47,"value":55},"Overview",{"type":42,"tag":57,"props":58,"children":59},"p",{},[60],{"type":47,"value":61},"CAO runs multi-agent workflows in named sessions. A conductor agent inside each\nsession orchestrates the work.",{"type":42,"tag":50,"props":63,"children":65},{"id":64},"core-concepts",[66],{"type":47,"value":67},"Core Concepts",{"type":42,"tag":69,"props":70,"children":71},"ul",{},[72,84,94],{"type":42,"tag":73,"props":74,"children":75},"li",{},[76,82],{"type":42,"tag":77,"props":78,"children":79},"strong",{},[80],{"type":47,"value":81},"Session",{"type":47,"value":83},": A group of agent terminals working together",{"type":42,"tag":73,"props":85,"children":86},{},[87,92],{"type":42,"tag":77,"props":88,"children":89},{},[90],{"type":47,"value":91},"Conductor",{"type":47,"value":93},": The supervisor terminal — receives instructions, delegates to workers",{"type":42,"tag":73,"props":95,"children":96},{},[97,102,104,111,113],{"type":42,"tag":77,"props":98,"children":99},{},[100],{"type":47,"value":101},"Provider",{"type":47,"value":103},": LLM backend. Default ",{"type":42,"tag":105,"props":106,"children":108},"code",{"className":107},[],[109],{"type":47,"value":110},"kiro_cli",{"type":47,"value":112},", override with ",{"type":42,"tag":105,"props":114,"children":116},{"className":115},[],[117],{"type":47,"value":118},"--provider",{"type":42,"tag":50,"props":120,"children":122},{"id":121},"prerequisites",[123],{"type":47,"value":124},"Prerequisites",{"type":42,"tag":57,"props":126,"children":127},{},[128],{"type":47,"value":129},"Before launching a session, verify:",{"type":42,"tag":69,"props":131,"children":132},{},[133,251],{"type":42,"tag":73,"props":134,"children":135},{},[136,147,149,155,157,242,244,249],{"type":42,"tag":77,"props":137,"children":138},{},[139,145],{"type":42,"tag":105,"props":140,"children":142},{"className":141},[],[143],{"type":47,"value":144},"cao-server",{"type":47,"value":146}," is running",{"type":47,"value":148}," at ",{"type":42,"tag":105,"props":150,"children":152},{"className":151},[],[153],{"type":47,"value":154},"localhost:9889",{"type":47,"value":156},". Quick check:\n",{"type":42,"tag":158,"props":159,"children":164},"pre",{"className":160,"code":161,"language":162,"meta":163,"style":163},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -sf http:\u002F\u002Flocalhost:9889\u002Fsessions >\u002Fdev\u002Fnull && echo OK || echo \"start cao-server\"\n","bash","",[165],{"type":42,"tag":105,"props":166,"children":167},{"__ignoreMap":163},[168],{"type":42,"tag":169,"props":170,"children":173},"span",{"class":171,"line":172},"line",1,[174,180,186,191,197,202,207,213,218,223,227,232,237],{"type":42,"tag":169,"props":175,"children":177},{"style":176},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[178],{"type":47,"value":179},"curl",{"type":42,"tag":169,"props":181,"children":183},{"style":182},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[184],{"type":47,"value":185}," -sf",{"type":42,"tag":169,"props":187,"children":188},{"style":182},[189],{"type":47,"value":190}," http:\u002F\u002Flocalhost:9889\u002Fsessions",{"type":42,"tag":169,"props":192,"children":194},{"style":193},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[195],{"type":47,"value":196}," >",{"type":42,"tag":169,"props":198,"children":199},{"style":182},[200],{"type":47,"value":201},"\u002Fdev\u002Fnull",{"type":42,"tag":169,"props":203,"children":204},{"style":193},[205],{"type":47,"value":206}," &&",{"type":42,"tag":169,"props":208,"children":210},{"style":209},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[211],{"type":47,"value":212}," echo",{"type":42,"tag":169,"props":214,"children":215},{"style":182},[216],{"type":47,"value":217}," OK",{"type":42,"tag":169,"props":219,"children":220},{"style":193},[221],{"type":47,"value":222}," ||",{"type":42,"tag":169,"props":224,"children":225},{"style":209},[226],{"type":47,"value":212},{"type":42,"tag":169,"props":228,"children":229},{"style":193},[230],{"type":47,"value":231}," \"",{"type":42,"tag":169,"props":233,"children":234},{"style":182},[235],{"type":47,"value":236},"start cao-server",{"type":42,"tag":169,"props":238,"children":239},{"style":193},[240],{"type":47,"value":241},"\"\n",{"type":47,"value":243},"\nIf not running, start it in a separate terminal: ",{"type":42,"tag":105,"props":245,"children":247},{"className":246},[],[248],{"type":47,"value":144},{"type":47,"value":250},".",{"type":42,"tag":73,"props":252,"children":253},{},[254,259,261,267,269,275],{"type":42,"tag":77,"props":255,"children":256},{},[257],{"type":47,"value":258},"The agent profile is installed.",{"type":47,"value":260}," ",{"type":42,"tag":105,"props":262,"children":264},{"className":263},[],[265],{"type":47,"value":266},"cao launch --agents \u003Cprofile>",{"type":47,"value":268}," fails if the profile is unknown. Install built-ins or custom files with ",{"type":42,"tag":105,"props":270,"children":272},{"className":271},[],[273],{"type":47,"value":274},"cao install \u003Cprofile|path|url>",{"type":47,"value":250},{"type":42,"tag":50,"props":277,"children":279},{"id":278},"discovering-available-profiles",[280],{"type":47,"value":281},"Discovering Available Profiles",{"type":42,"tag":57,"props":283,"children":284},{},[285,287,293],{"type":47,"value":286},"Profiles are CAO-level entities, installed with ",{"type":42,"tag":105,"props":288,"children":290},{"className":289},[],[291],{"type":47,"value":292},"cao install",{"type":47,"value":294}," regardless of which CLI provider runs them. To find available profiles:",{"type":42,"tag":296,"props":297,"children":298},"table",{},[299,318],{"type":42,"tag":300,"props":301,"children":302},"thead",{},[303],{"type":42,"tag":304,"props":305,"children":306},"tr",{},[307,313],{"type":42,"tag":308,"props":309,"children":310},"th",{},[311],{"type":47,"value":312},"Source",{"type":42,"tag":308,"props":314,"children":315},{},[316],{"type":47,"value":317},"Command",{"type":42,"tag":319,"props":320,"children":321},"tbody",{},[322,342,359,382,410],{"type":42,"tag":304,"props":323,"children":324},{},[325,331],{"type":42,"tag":326,"props":327,"children":328},"td",{},[329],{"type":47,"value":330},"All available profiles across built-in store + local store + provider directories",{"type":42,"tag":326,"props":332,"children":333},{},[334,340],{"type":42,"tag":105,"props":335,"children":337},{"className":336},[],[338],{"type":47,"value":339},"curl -sf http:\u002F\u002Flocalhost:9889\u002Fagents\u002Fprofiles",{"type":47,"value":341}," — canonical, provider-agnostic",{"type":42,"tag":304,"props":343,"children":344},{},[345,350],{"type":42,"tag":326,"props":346,"children":347},{},[348],{"type":47,"value":349},"Custom\u002Flocal profile files only",{"type":42,"tag":326,"props":351,"children":352},{},[353],{"type":42,"tag":105,"props":354,"children":356},{"className":355},[],[357],{"type":47,"value":358},"ls ~\u002F.aws\u002Fcli-agent-orchestrator\u002Fagent-store\u002F",{"type":42,"tag":304,"props":360,"children":361},{},[362,373],{"type":42,"tag":326,"props":363,"children":364},{},[365,367],{"type":47,"value":366},"Built-in profiles installed via ",{"type":42,"tag":105,"props":368,"children":370},{"className":369},[],[371],{"type":47,"value":372},"cao install \u003Cname>",{"type":42,"tag":326,"props":374,"children":375},{},[376],{"type":42,"tag":105,"props":377,"children":379},{"className":378},[],[380],{"type":47,"value":381},"ls ~\u002F.aws\u002Fcli-agent-orchestrator\u002Fagent-context\u002F",{"type":42,"tag":304,"props":383,"children":384},{},[385,390],{"type":42,"tag":326,"props":386,"children":387},{},[388],{"type":47,"value":389},"Profile installation and keyword discovery",{"type":42,"tag":326,"props":391,"children":392},{},[393,395,402,404],{"type":47,"value":394},"see ",{"type":42,"tag":396,"props":397,"children":399},"a",{"href":398},"..\u002F..\u002Fdocs\u002Fagent-profile.md#installation",[400],{"type":47,"value":401},"Agent profile installation",{"type":47,"value":403}," and ",{"type":42,"tag":396,"props":405,"children":407},{"href":406},"..\u002F..\u002Fdocs\u002Fagent-profile.md#profile-discovery",[408],{"type":47,"value":409},"profile discovery",{"type":42,"tag":304,"props":411,"children":412},{},[413,425],{"type":42,"tag":326,"props":414,"children":415},{},[416,418,423],{"type":47,"value":417},"Provider-native list (",{"type":42,"tag":105,"props":419,"children":421},{"className":420},[],[422],{"type":47,"value":110},{"type":47,"value":424}," only)",{"type":42,"tag":326,"props":426,"children":427},{},[428,434,436],{"type":42,"tag":105,"props":429,"children":431},{"className":430},[],[432],{"type":47,"value":433},"kiro-cli agent list",{"type":47,"value":435}," — useful because CAO mirrors profiles into ",{"type":42,"tag":105,"props":437,"children":439},{"className":438},[],[440],{"type":47,"value":441},"~\u002F.kiro\u002Fagents\u002F",{"type":42,"tag":57,"props":443,"children":444},{},[445,447,453,455,461,463,469],{"type":47,"value":446},"The HTTP endpoint is the recommended check: it scans the built-in packaged store, the local store (",{"type":42,"tag":105,"props":448,"children":450},{"className":449},[],[451],{"type":47,"value":452},"agent-store\u002F",{"type":47,"value":454},"), and provider-specific directories (including ",{"type":42,"tag":105,"props":456,"children":458},{"className":457},[],[459],{"type":47,"value":460},"agent-context\u002F",{"type":47,"value":462},"), then returns a deduplicated list (by profile name, built-in wins) with a ",{"type":42,"tag":105,"props":464,"children":466},{"className":465},[],[467],{"type":47,"value":468},"source",{"type":47,"value":470}," label on each entry.",{"type":42,"tag":57,"props":472,"children":473},{},[474],{"type":47,"value":475},"If unsure which profile to use, ask the user rather than guessing.",{"type":42,"tag":50,"props":477,"children":479},{"id":478},"quick-example",[480],{"type":47,"value":481},"Quick Example",{"type":42,"tag":57,"props":483,"children":484},{},[485,487,492,494,500,502,508,510,516,517,523,524,530,531,537,538,544,545,551],{"type":47,"value":486},"A complete, copy-pasteable supervisor launch. The default provider is ",{"type":42,"tag":105,"props":488,"children":490},{"className":489},[],[491],{"type":47,"value":110},{"type":47,"value":493},"; pass ",{"type":42,"tag":105,"props":495,"children":497},{"className":496},[],[498],{"type":47,"value":499},"--provider \u003Cname>",{"type":47,"value":501}," to use another (",{"type":42,"tag":105,"props":503,"children":505},{"className":504},[],[506],{"type":47,"value":507},"claude_code",{"type":47,"value":509},", ",{"type":42,"tag":105,"props":511,"children":513},{"className":512},[],[514],{"type":47,"value":515},"codex",{"type":47,"value":509},{"type":42,"tag":105,"props":518,"children":520},{"className":519},[],[521],{"type":47,"value":522},"antigravity_cli",{"type":47,"value":509},{"type":42,"tag":105,"props":525,"children":527},{"className":526},[],[528],{"type":47,"value":529},"kimi_cli",{"type":47,"value":509},{"type":42,"tag":105,"props":532,"children":534},{"className":533},[],[535],{"type":47,"value":536},"copilot_cli",{"type":47,"value":509},{"type":42,"tag":105,"props":539,"children":541},{"className":540},[],[542],{"type":47,"value":543},"opencode_cli",{"type":47,"value":509},{"type":42,"tag":105,"props":546,"children":548},{"className":547},[],[549],{"type":47,"value":550},"cursor_cli",{"type":47,"value":552},").",{"type":42,"tag":57,"props":554,"children":555},{},[556,558,564,566,571],{"type":47,"value":557},"This example assumes a configured CAO setup (server running, profiles installed). On an already-configured host you can skip straight to ",{"type":42,"tag":105,"props":559,"children":561},{"className":560},[],[562],{"type":47,"value":563},"cao launch",{"type":47,"value":565},". The ",{"type":42,"tag":105,"props":567,"children":569},{"className":568},[],[570],{"type":47,"value":292},{"type":47,"value":572}," lines below are only for first-time setup; remove them if your CAO is already configured.",{"type":42,"tag":158,"props":574,"children":576},{"className":160,"code":575,"language":162,"meta":163,"style":163},"# Optional — skip if your CAO is already configured with these profiles.\n# Provider-agnostic: `cao install` works for any provider.\ncao install code_supervisor\ncao install developer\ncao install reviewer\n\n# Launch headlessly (assumes cao-server is already running)\ncao launch --agents code_supervisor --headless --yolo \\\n  --session-name my-task --working-directory '\u002Fpath\u002Fto\u002Fproject' \\\n  \"Build a hello-world Python script. Delegate to developer, then reviewer.\"\n\n# Same launch on a different provider\n# cao launch --agents code_supervisor --provider claude_code --headless --yolo \\\n#   --session-name my-task --working-directory '\u002Fpath\u002Fto\u002Fproject' \"...\"\n\n# Check progress \u002F final output\ncao session status cao-my-task\ncao session status cao-my-task --workers\n\n# Clean up\ncao shutdown --session cao-my-task\n",[577],{"type":42,"tag":105,"props":578,"children":579},{"__ignoreMap":163},[580,589,598,617,634,651,661,670,709,747,765,773,782,791,800,808,817,840,866,874,883],{"type":42,"tag":169,"props":581,"children":582},{"class":171,"line":172},[583],{"type":42,"tag":169,"props":584,"children":586},{"style":585},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[587],{"type":47,"value":588},"# Optional — skip if your CAO is already configured with these profiles.\n",{"type":42,"tag":169,"props":590,"children":592},{"class":171,"line":591},2,[593],{"type":42,"tag":169,"props":594,"children":595},{"style":585},[596],{"type":47,"value":597},"# Provider-agnostic: `cao install` works for any provider.\n",{"type":42,"tag":169,"props":599,"children":601},{"class":171,"line":600},3,[602,607,612],{"type":42,"tag":169,"props":603,"children":604},{"style":176},[605],{"type":47,"value":606},"cao",{"type":42,"tag":169,"props":608,"children":609},{"style":182},[610],{"type":47,"value":611}," install",{"type":42,"tag":169,"props":613,"children":614},{"style":182},[615],{"type":47,"value":616}," code_supervisor\n",{"type":42,"tag":169,"props":618,"children":620},{"class":171,"line":619},4,[621,625,629],{"type":42,"tag":169,"props":622,"children":623},{"style":176},[624],{"type":47,"value":606},{"type":42,"tag":169,"props":626,"children":627},{"style":182},[628],{"type":47,"value":611},{"type":42,"tag":169,"props":630,"children":631},{"style":182},[632],{"type":47,"value":633}," developer\n",{"type":42,"tag":169,"props":635,"children":637},{"class":171,"line":636},5,[638,642,646],{"type":42,"tag":169,"props":639,"children":640},{"style":176},[641],{"type":47,"value":606},{"type":42,"tag":169,"props":643,"children":644},{"style":182},[645],{"type":47,"value":611},{"type":42,"tag":169,"props":647,"children":648},{"style":182},[649],{"type":47,"value":650}," reviewer\n",{"type":42,"tag":169,"props":652,"children":654},{"class":171,"line":653},6,[655],{"type":42,"tag":169,"props":656,"children":658},{"emptyLinePlaceholder":657},true,[659],{"type":47,"value":660},"\n",{"type":42,"tag":169,"props":662,"children":664},{"class":171,"line":663},7,[665],{"type":42,"tag":169,"props":666,"children":667},{"style":585},[668],{"type":47,"value":669},"# Launch headlessly (assumes cao-server is already running)\n",{"type":42,"tag":169,"props":671,"children":673},{"class":171,"line":672},8,[674,678,683,688,693,698,703],{"type":42,"tag":169,"props":675,"children":676},{"style":176},[677],{"type":47,"value":606},{"type":42,"tag":169,"props":679,"children":680},{"style":182},[681],{"type":47,"value":682}," launch",{"type":42,"tag":169,"props":684,"children":685},{"style":182},[686],{"type":47,"value":687}," --agents",{"type":42,"tag":169,"props":689,"children":690},{"style":182},[691],{"type":47,"value":692}," code_supervisor",{"type":42,"tag":169,"props":694,"children":695},{"style":182},[696],{"type":47,"value":697}," --headless",{"type":42,"tag":169,"props":699,"children":700},{"style":182},[701],{"type":47,"value":702}," --yolo",{"type":42,"tag":169,"props":704,"children":706},{"style":705},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[707],{"type":47,"value":708}," \\\n",{"type":42,"tag":169,"props":710,"children":712},{"class":171,"line":711},9,[713,718,723,728,733,738,743],{"type":42,"tag":169,"props":714,"children":715},{"style":182},[716],{"type":47,"value":717},"  --session-name",{"type":42,"tag":169,"props":719,"children":720},{"style":182},[721],{"type":47,"value":722}," my-task",{"type":42,"tag":169,"props":724,"children":725},{"style":182},[726],{"type":47,"value":727}," --working-directory",{"type":42,"tag":169,"props":729,"children":730},{"style":193},[731],{"type":47,"value":732}," '",{"type":42,"tag":169,"props":734,"children":735},{"style":182},[736],{"type":47,"value":737},"\u002Fpath\u002Fto\u002Fproject",{"type":42,"tag":169,"props":739,"children":740},{"style":193},[741],{"type":47,"value":742},"'",{"type":42,"tag":169,"props":744,"children":745},{"style":705},[746],{"type":47,"value":708},{"type":42,"tag":169,"props":748,"children":750},{"class":171,"line":749},10,[751,756,761],{"type":42,"tag":169,"props":752,"children":753},{"style":193},[754],{"type":47,"value":755},"  \"",{"type":42,"tag":169,"props":757,"children":758},{"style":182},[759],{"type":47,"value":760},"Build a hello-world Python script. Delegate to developer, then reviewer.",{"type":42,"tag":169,"props":762,"children":763},{"style":193},[764],{"type":47,"value":241},{"type":42,"tag":169,"props":766,"children":768},{"class":171,"line":767},11,[769],{"type":42,"tag":169,"props":770,"children":771},{"emptyLinePlaceholder":657},[772],{"type":47,"value":660},{"type":42,"tag":169,"props":774,"children":776},{"class":171,"line":775},12,[777],{"type":42,"tag":169,"props":778,"children":779},{"style":585},[780],{"type":47,"value":781},"# Same launch on a different provider\n",{"type":42,"tag":169,"props":783,"children":785},{"class":171,"line":784},13,[786],{"type":42,"tag":169,"props":787,"children":788},{"style":585},[789],{"type":47,"value":790},"# cao launch --agents code_supervisor --provider claude_code --headless --yolo \\\n",{"type":42,"tag":169,"props":792,"children":794},{"class":171,"line":793},14,[795],{"type":42,"tag":169,"props":796,"children":797},{"style":585},[798],{"type":47,"value":799},"#   --session-name my-task --working-directory '\u002Fpath\u002Fto\u002Fproject' \"...\"\n",{"type":42,"tag":169,"props":801,"children":803},{"class":171,"line":802},15,[804],{"type":42,"tag":169,"props":805,"children":806},{"emptyLinePlaceholder":657},[807],{"type":47,"value":660},{"type":42,"tag":169,"props":809,"children":811},{"class":171,"line":810},16,[812],{"type":42,"tag":169,"props":813,"children":814},{"style":585},[815],{"type":47,"value":816},"# Check progress \u002F final output\n",{"type":42,"tag":169,"props":818,"children":820},{"class":171,"line":819},17,[821,825,830,835],{"type":42,"tag":169,"props":822,"children":823},{"style":176},[824],{"type":47,"value":606},{"type":42,"tag":169,"props":826,"children":827},{"style":182},[828],{"type":47,"value":829}," session",{"type":42,"tag":169,"props":831,"children":832},{"style":182},[833],{"type":47,"value":834}," status",{"type":42,"tag":169,"props":836,"children":837},{"style":182},[838],{"type":47,"value":839}," cao-my-task\n",{"type":42,"tag":169,"props":841,"children":843},{"class":171,"line":842},18,[844,848,852,856,861],{"type":42,"tag":169,"props":845,"children":846},{"style":176},[847],{"type":47,"value":606},{"type":42,"tag":169,"props":849,"children":850},{"style":182},[851],{"type":47,"value":829},{"type":42,"tag":169,"props":853,"children":854},{"style":182},[855],{"type":47,"value":834},{"type":42,"tag":169,"props":857,"children":858},{"style":182},[859],{"type":47,"value":860}," cao-my-task",{"type":42,"tag":169,"props":862,"children":863},{"style":182},[864],{"type":47,"value":865}," --workers\n",{"type":42,"tag":169,"props":867,"children":869},{"class":171,"line":868},19,[870],{"type":42,"tag":169,"props":871,"children":872},{"emptyLinePlaceholder":657},[873],{"type":47,"value":660},{"type":42,"tag":169,"props":875,"children":877},{"class":171,"line":876},20,[878],{"type":42,"tag":169,"props":879,"children":880},{"style":585},[881],{"type":47,"value":882},"# Clean up\n",{"type":42,"tag":169,"props":884,"children":886},{"class":171,"line":885},21,[887,891,896,901],{"type":42,"tag":169,"props":888,"children":889},{"style":176},[890],{"type":47,"value":606},{"type":42,"tag":169,"props":892,"children":893},{"style":182},[894],{"type":47,"value":895}," shutdown",{"type":42,"tag":169,"props":897,"children":898},{"style":182},[899],{"type":47,"value":900}," --session",{"type":42,"tag":169,"props":902,"children":903},{"style":182},[904],{"type":47,"value":839},{"type":42,"tag":50,"props":906,"children":908},{"id":907},"launching-a-session",[909],{"type":47,"value":910},"Launching a Session",{"type":42,"tag":57,"props":912,"children":913},{},[914,916,921],{"type":47,"value":915},"Every ",{"type":42,"tag":105,"props":917,"children":919},{"className":918},[],[920],{"type":47,"value":563},{"type":47,"value":922}," MUST include:",{"type":42,"tag":69,"props":924,"children":925},{},[926,944,955,974],{"type":42,"tag":73,"props":927,"children":928},{},[929,935,937,942],{"type":42,"tag":105,"props":930,"children":932},{"className":931},[],[933],{"type":47,"value":934},"--agents PROFILE",{"type":47,"value":936}," — see ",{"type":42,"tag":396,"props":938,"children":940},{"href":939},"#discovering-available-profiles",[941],{"type":47,"value":281},{"type":47,"value":943}," above; if unclear, ask the user",{"type":42,"tag":73,"props":945,"children":946},{},[947,953],{"type":42,"tag":105,"props":948,"children":950},{"className":949},[],[951],{"type":47,"value":952},"--headless",{"type":47,"value":954}," — required from an LLM agent; without it cao tries to attach tmux",{"type":42,"tag":73,"props":956,"children":957},{},[958,964,966,972],{"type":42,"tag":105,"props":959,"children":961},{"className":960},[],[962],{"type":47,"value":963},"--session-name NAME",{"type":47,"value":965}," — cao adds ",{"type":42,"tag":105,"props":967,"children":969},{"className":968},[],[970],{"type":47,"value":971},"cao-",{"type":47,"value":973}," prefix automatically",{"type":42,"tag":73,"props":975,"children":976},{},[977,983,985,991],{"type":42,"tag":105,"props":978,"children":980},{"className":979},[],[981],{"type":47,"value":982},"--working-directory DIR",{"type":47,"value":984}," — a wrong path silently breaks the session with no\nrecovery short of shutdown and relaunch. Ask the user if unclear. Always wrap\nin single quotes to pass the literal path to the server (prevents local shell\nexpansion of ",{"type":42,"tag":105,"props":986,"children":988},{"className":987},[],[989],{"type":47,"value":990},"~",{"type":47,"value":992}," or variables before the value reaches cao).",{"type":42,"tag":158,"props":994,"children":996},{"className":160,"code":995,"language":162,"meta":163,"style":163},"cao launch --agents \u003Cprofile> --headless --yolo \\\n  --session-name \u003Cname> --working-directory '\u003Cpath>' \"\u003Ctask>\"\n",[997],{"type":42,"tag":105,"props":998,"children":999},{"__ignoreMap":163},[1000,1047],{"type":42,"tag":169,"props":1001,"children":1002},{"class":171,"line":172},[1003,1007,1011,1015,1020,1025,1030,1035,1039,1043],{"type":42,"tag":169,"props":1004,"children":1005},{"style":176},[1006],{"type":47,"value":606},{"type":42,"tag":169,"props":1008,"children":1009},{"style":182},[1010],{"type":47,"value":682},{"type":42,"tag":169,"props":1012,"children":1013},{"style":182},[1014],{"type":47,"value":687},{"type":42,"tag":169,"props":1016,"children":1017},{"style":193},[1018],{"type":47,"value":1019}," \u003C",{"type":42,"tag":169,"props":1021,"children":1022},{"style":182},[1023],{"type":47,"value":1024},"profil",{"type":42,"tag":169,"props":1026,"children":1027},{"style":705},[1028],{"type":47,"value":1029},"e",{"type":42,"tag":169,"props":1031,"children":1032},{"style":193},[1033],{"type":47,"value":1034},">",{"type":42,"tag":169,"props":1036,"children":1037},{"style":182},[1038],{"type":47,"value":697},{"type":42,"tag":169,"props":1040,"children":1041},{"style":182},[1042],{"type":47,"value":702},{"type":42,"tag":169,"props":1044,"children":1045},{"style":705},[1046],{"type":47,"value":708},{"type":42,"tag":169,"props":1048,"children":1049},{"class":171,"line":591},[1050,1054,1058,1063,1067,1071,1075,1079,1084,1088,1092,1097],{"type":42,"tag":169,"props":1051,"children":1052},{"style":182},[1053],{"type":47,"value":717},{"type":42,"tag":169,"props":1055,"children":1056},{"style":193},[1057],{"type":47,"value":1019},{"type":42,"tag":169,"props":1059,"children":1060},{"style":182},[1061],{"type":47,"value":1062},"nam",{"type":42,"tag":169,"props":1064,"children":1065},{"style":705},[1066],{"type":47,"value":1029},{"type":42,"tag":169,"props":1068,"children":1069},{"style":193},[1070],{"type":47,"value":1034},{"type":42,"tag":169,"props":1072,"children":1073},{"style":182},[1074],{"type":47,"value":727},{"type":42,"tag":169,"props":1076,"children":1077},{"style":193},[1078],{"type":47,"value":732},{"type":42,"tag":169,"props":1080,"children":1081},{"style":182},[1082],{"type":47,"value":1083},"\u003Cpath>",{"type":42,"tag":169,"props":1085,"children":1086},{"style":193},[1087],{"type":47,"value":742},{"type":42,"tag":169,"props":1089,"children":1090},{"style":193},[1091],{"type":47,"value":231},{"type":42,"tag":169,"props":1093,"children":1094},{"style":182},[1095],{"type":47,"value":1096},"\u003Ctask>",{"type":42,"tag":169,"props":1098,"children":1099},{"style":193},[1100],{"type":47,"value":241},{"type":42,"tag":57,"props":1102,"children":1103},{},[1104,1110],{"type":42,"tag":105,"props":1105,"children":1107},{"className":1106},[],[1108],{"type":47,"value":1109},"--yolo",{"type":47,"value":1111}," skips confirmation prompts. Required when launching from an agent — interactive\nprompts will stall the session.",{"type":42,"tag":57,"props":1113,"children":1114},{},[1115,1117,1123,1125,1131,1133,1139,1141,1147],{"type":47,"value":1116},"For SOP-driven workflows (Kiro provider): launch with ",{"type":42,"tag":105,"props":1118,"children":1120},{"className":1119},[],[1121],{"type":47,"value":1122},"\u002Fprompts",{"type":47,"value":1124}," to discover\navailable SOPs, then send the matched SOP name prefixed with ",{"type":42,"tag":105,"props":1126,"children":1128},{"className":1127},[],[1129],{"type":47,"value":1130},"@",{"type":47,"value":1132}," (e.g.,\n",{"type":42,"tag":105,"props":1134,"children":1136},{"className":1135},[],[1137],{"type":47,"value":1138},"@my-sop-name",{"type":47,"value":1140},"), then send the task — each as separate messages after\npolling for ",{"type":42,"tag":105,"props":1142,"children":1144},{"className":1143},[],[1145],{"type":47,"value":1146},"completed",{"type":47,"value":1148}," status.",{"type":42,"tag":50,"props":1150,"children":1152},{"id":1151},"commands",[1153],{"type":47,"value":1154},"Commands",{"type":42,"tag":296,"props":1156,"children":1157},{},[1158,1173],{"type":42,"tag":300,"props":1159,"children":1160},{},[1161],{"type":42,"tag":304,"props":1162,"children":1163},{},[1164,1168],{"type":42,"tag":308,"props":1165,"children":1166},{},[1167],{"type":47,"value":317},{"type":42,"tag":308,"props":1169,"children":1170},{},[1171],{"type":47,"value":1172},"Description",{"type":42,"tag":319,"props":1174,"children":1175},{},[1176,1193,1210,1227,1244,1261,1278,1295,1312,1329,1346],{"type":42,"tag":304,"props":1177,"children":1178},{},[1179,1188],{"type":42,"tag":326,"props":1180,"children":1181},{},[1182],{"type":42,"tag":105,"props":1183,"children":1185},{"className":1184},[],[1186],{"type":47,"value":1187},"cao session list",{"type":42,"tag":326,"props":1189,"children":1190},{},[1191],{"type":47,"value":1192},"List active sessions",{"type":42,"tag":304,"props":1194,"children":1195},{},[1196,1205],{"type":42,"tag":326,"props":1197,"children":1198},{},[1199],{"type":42,"tag":105,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":47,"value":1204},"cao session status SESSION",{"type":42,"tag":326,"props":1206,"children":1207},{},[1208],{"type":47,"value":1209},"Conductor status and last response",{"type":42,"tag":304,"props":1211,"children":1212},{},[1213,1222],{"type":42,"tag":326,"props":1214,"children":1215},{},[1216],{"type":42,"tag":105,"props":1217,"children":1219},{"className":1218},[],[1220],{"type":47,"value":1221},"cao session status SESSION --workers",{"type":42,"tag":326,"props":1223,"children":1224},{},[1225],{"type":47,"value":1226},"Include worker terminals",{"type":42,"tag":304,"props":1228,"children":1229},{},[1230,1239],{"type":42,"tag":326,"props":1231,"children":1232},{},[1233],{"type":42,"tag":105,"props":1234,"children":1236},{"className":1235},[],[1237],{"type":47,"value":1238},"cao session status SESSION --terminal ID",{"type":42,"tag":326,"props":1240,"children":1241},{},[1242],{"type":47,"value":1243},"Drill into a specific terminal",{"type":42,"tag":304,"props":1245,"children":1246},{},[1247,1256],{"type":42,"tag":326,"props":1248,"children":1249},{},[1250],{"type":42,"tag":105,"props":1251,"children":1253},{"className":1252},[],[1254],{"type":47,"value":1255},"cao session status SESSION --json",{"type":42,"tag":326,"props":1257,"children":1258},{},[1259],{"type":47,"value":1260},"Machine-readable output; use to extract terminal IDs",{"type":42,"tag":304,"props":1262,"children":1263},{},[1264,1273],{"type":42,"tag":326,"props":1265,"children":1266},{},[1267],{"type":42,"tag":105,"props":1268,"children":1270},{"className":1269},[],[1271],{"type":47,"value":1272},"cao session send SESSION \"msg\"",{"type":42,"tag":326,"props":1274,"children":1275},{},[1276],{"type":47,"value":1277},"Send and wait until completion (sync)",{"type":42,"tag":304,"props":1279,"children":1280},{},[1281,1290],{"type":42,"tag":326,"props":1282,"children":1283},{},[1284],{"type":42,"tag":105,"props":1285,"children":1287},{"className":1286},[],[1288],{"type":47,"value":1289},"cao session send SESSION \"msg\" --timeout N",{"type":42,"tag":326,"props":1291,"children":1292},{},[1293],{"type":47,"value":1294},"Send and wait up to N seconds",{"type":42,"tag":304,"props":1296,"children":1297},{},[1298,1307],{"type":42,"tag":326,"props":1299,"children":1300},{},[1301],{"type":42,"tag":105,"props":1302,"children":1304},{"className":1303},[],[1305],{"type":47,"value":1306},"cao session send SESSION \"msg\" --async",{"type":42,"tag":326,"props":1308,"children":1309},{},[1310],{"type":47,"value":1311},"Fire-and-forget without waiting",{"type":42,"tag":304,"props":1313,"children":1314},{},[1315,1324],{"type":42,"tag":326,"props":1316,"children":1317},{},[1318],{"type":42,"tag":105,"props":1319,"children":1321},{"className":1320},[],[1322],{"type":47,"value":1323},"cao session send SESSION \"msg\" --terminal ID",{"type":42,"tag":326,"props":1325,"children":1326},{},[1327],{"type":47,"value":1328},"Send to a specific terminal",{"type":42,"tag":304,"props":1330,"children":1331},{},[1332,1341],{"type":42,"tag":326,"props":1333,"children":1334},{},[1335],{"type":42,"tag":105,"props":1336,"children":1338},{"className":1337},[],[1339],{"type":47,"value":1340},"cao shutdown --session SESSION",{"type":42,"tag":326,"props":1342,"children":1343},{},[1344],{"type":47,"value":1345},"Shut down a session",{"type":42,"tag":304,"props":1347,"children":1348},{},[1349,1358],{"type":42,"tag":326,"props":1350,"children":1351},{},[1352],{"type":42,"tag":105,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":47,"value":1357},"cao shutdown --all",{"type":42,"tag":326,"props":1359,"children":1360},{},[1361],{"type":47,"value":1362},"Shut down all sessions",{"type":42,"tag":1364,"props":1365,"children":1366},"blockquote",{},[1367],{"type":42,"tag":57,"props":1368,"children":1369},{},[1370,1376,1378,1384,1386,1392,1394,1399,1401,1407,1409,1415],{"type":42,"tag":105,"props":1371,"children":1373},{"className":1372},[],[1374],{"type":47,"value":1375},"cao session send",{"type":47,"value":1377}," waits for completion and returns output inline by default. With ",{"type":42,"tag":105,"props":1379,"children":1381},{"className":1380},[],[1382],{"type":47,"value":1383},"--async",{"type":47,"value":1385},", it sends and returns immediately without waiting. With ",{"type":42,"tag":105,"props":1387,"children":1389},{"className":1388},[],[1390],{"type":47,"value":1391},"--timeout N",{"type":47,"value":1393},", it waits up to N seconds — if the timeout expires, the agent is still running; check status later.\nSession names in commands use the ",{"type":42,"tag":105,"props":1395,"children":1397},{"className":1396},[],[1398],{"type":47,"value":971},{"type":47,"value":1400}," prefixed form (e.g. ",{"type":42,"tag":105,"props":1402,"children":1404},{"className":1403},[],[1405],{"type":47,"value":1406},"--session-name mywork",{"type":47,"value":1408}," → use ",{"type":42,"tag":105,"props":1410,"children":1412},{"className":1411},[],[1413],{"type":47,"value":1414},"cao-mywork",{"type":47,"value":552},{"type":42,"tag":50,"props":1417,"children":1419},{"id":1418},"worker-communication",[1420],{"type":47,"value":1421},"Worker Communication",{"type":42,"tag":57,"props":1423,"children":1424},{},[1425],{"type":47,"value":1426},"Inside a session, the conductor talks to workers via two MCP tools:",{"type":42,"tag":57,"props":1428,"children":1429},{},[1430,1435,1437,1442],{"type":42,"tag":77,"props":1431,"children":1432},{},[1433],{"type":47,"value":1434},"Prefer communicating through the conductor",{"type":47,"value":1436}," (",{"type":42,"tag":105,"props":1438,"children":1440},{"className":1439},[],[1441],{"type":47,"value":1272},{"type":47,"value":1443},") rather\nthan directly to worker terminals. Bypassing the conductor leaves it without state on\nwhat was asked or answered, which causes confusion. Two exceptions: unblocking a stuck\nworker, and follow-up questions to a persistent async worker (see below).",{"type":42,"tag":57,"props":1445,"children":1446},{},[1447,1452,1454,1460],{"type":42,"tag":77,"props":1448,"children":1449},{},[1450],{"type":47,"value":1451},"handoff",{"type":47,"value":1453}," (blocking) — conductor sends task and waits for the worker to reach\n",{"type":42,"tag":105,"props":1455,"children":1457},{"className":1456},[],[1458],{"type":47,"value":1459},"COMPLETED",{"type":47,"value":1461}," status, then reads the output. If it times out, the worker is still\nrunning — the conductor just stopped waiting.",{"type":42,"tag":57,"props":1463,"children":1464},{},[1465,1470,1472,1478,1480,1486],{"type":42,"tag":77,"props":1466,"children":1467},{},[1468],{"type":47,"value":1469},"assign",{"type":47,"value":1471}," (non-blocking) — conductor sends task and returns immediately. The worker\nis expected to call ",{"type":42,"tag":105,"props":1473,"children":1475},{"className":1474},[],[1476],{"type":47,"value":1477},"send_message",{"type":47,"value":1479}," back to the conductor's terminal ID when done.\nEach terminal only knows its own ID via ",{"type":42,"tag":105,"props":1481,"children":1483},{"className":1482},[],[1484],{"type":47,"value":1485},"$CAO_TERMINAL_ID",{"type":47,"value":250},{"type":42,"tag":57,"props":1488,"children":1489},{},[1490],{"type":47,"value":1491},"By default the conductor uses sync (handoff). You can override this by explicitly\nasking it to use async or sync protocol when sending it a task.",{"type":42,"tag":57,"props":1493,"children":1494},{},[1495],{"type":47,"value":1496},"Async workers (assign) stay alive after completing their task and can answer follow-up\nquestions — useful for ongoing investigation where you want to keep querying the same\nworker. In this case, sending directly to the worker terminal is appropriate:",{"type":42,"tag":158,"props":1498,"children":1500},{"className":160,"code":1499,"language":162,"meta":163,"style":163},"cao session send SESSION \"\u003Cfollow-up question>\" --terminal \u003Cworker-terminal-id>\n",[1501],{"type":42,"tag":105,"props":1502,"children":1503},{"__ignoreMap":163},[1504],{"type":42,"tag":169,"props":1505,"children":1506},{"class":171,"line":172},[1507,1511,1515,1520,1525,1529,1534,1539,1544,1548,1553,1558],{"type":42,"tag":169,"props":1508,"children":1509},{"style":176},[1510],{"type":47,"value":606},{"type":42,"tag":169,"props":1512,"children":1513},{"style":182},[1514],{"type":47,"value":829},{"type":42,"tag":169,"props":1516,"children":1517},{"style":182},[1518],{"type":47,"value":1519}," send",{"type":42,"tag":169,"props":1521,"children":1522},{"style":182},[1523],{"type":47,"value":1524}," SESSION",{"type":42,"tag":169,"props":1526,"children":1527},{"style":193},[1528],{"type":47,"value":231},{"type":42,"tag":169,"props":1530,"children":1531},{"style":182},[1532],{"type":47,"value":1533},"\u003Cfollow-up question>",{"type":42,"tag":169,"props":1535,"children":1536},{"style":193},[1537],{"type":47,"value":1538},"\"",{"type":42,"tag":169,"props":1540,"children":1541},{"style":182},[1542],{"type":47,"value":1543}," --terminal",{"type":42,"tag":169,"props":1545,"children":1546},{"style":193},[1547],{"type":47,"value":1019},{"type":42,"tag":169,"props":1549,"children":1550},{"style":182},[1551],{"type":47,"value":1552},"worker-terminal-i",{"type":42,"tag":169,"props":1554,"children":1555},{"style":705},[1556],{"type":47,"value":1557},"d",{"type":42,"tag":169,"props":1559,"children":1560},{"style":193},[1561],{"type":47,"value":1562},">\n",{"type":42,"tag":50,"props":1564,"children":1566},{"id":1565},"common-mistakes",[1567],{"type":47,"value":1568},"Common Mistakes",{"type":42,"tag":57,"props":1570,"children":1571},{},[1572,1577],{"type":42,"tag":77,"props":1573,"children":1574},{},[1575],{"type":47,"value":1576},"Wrong working directory",{"type":47,"value":1578}," — agents won't find files, builds fail with confusing errors.",{"type":42,"tag":57,"props":1580,"children":1581},{},[1582,1587],{"type":42,"tag":77,"props":1583,"children":1584},{},[1585],{"type":47,"value":1586},"Stuck conductor",{"type":47,"value":1588}," — conductor is waiting on a worker that stopped responding. Check\nthe worker's status first, then decide: prompt it to continue and send results back,\nor ask it to resend if it already finished. Never re-delegate work that may still be\nrunning — it risks duplicate work.",{"type":42,"tag":158,"props":1590,"children":1592},{"className":160,"code":1591,"language":162,"meta":163,"style":163},"cao session status SESSION --workers\ncao session status SESSION --terminal \u003Cworker-terminal-id>\ncao session send SESSION \"continue your work, then send results to terminal \u003Cconductor-terminal-id>\" --terminal \u003Cworker-terminal-id>\n",[1593],{"type":42,"tag":105,"props":1594,"children":1595},{"__ignoreMap":163},[1596,1619,1658],{"type":42,"tag":169,"props":1597,"children":1598},{"class":171,"line":172},[1599,1603,1607,1611,1615],{"type":42,"tag":169,"props":1600,"children":1601},{"style":176},[1602],{"type":47,"value":606},{"type":42,"tag":169,"props":1604,"children":1605},{"style":182},[1606],{"type":47,"value":829},{"type":42,"tag":169,"props":1608,"children":1609},{"style":182},[1610],{"type":47,"value":834},{"type":42,"tag":169,"props":1612,"children":1613},{"style":182},[1614],{"type":47,"value":1524},{"type":42,"tag":169,"props":1616,"children":1617},{"style":182},[1618],{"type":47,"value":865},{"type":42,"tag":169,"props":1620,"children":1621},{"class":171,"line":591},[1622,1626,1630,1634,1638,1642,1646,1650,1654],{"type":42,"tag":169,"props":1623,"children":1624},{"style":176},[1625],{"type":47,"value":606},{"type":42,"tag":169,"props":1627,"children":1628},{"style":182},[1629],{"type":47,"value":829},{"type":42,"tag":169,"props":1631,"children":1632},{"style":182},[1633],{"type":47,"value":834},{"type":42,"tag":169,"props":1635,"children":1636},{"style":182},[1637],{"type":47,"value":1524},{"type":42,"tag":169,"props":1639,"children":1640},{"style":182},[1641],{"type":47,"value":1543},{"type":42,"tag":169,"props":1643,"children":1644},{"style":193},[1645],{"type":47,"value":1019},{"type":42,"tag":169,"props":1647,"children":1648},{"style":182},[1649],{"type":47,"value":1552},{"type":42,"tag":169,"props":1651,"children":1652},{"style":705},[1653],{"type":47,"value":1557},{"type":42,"tag":169,"props":1655,"children":1656},{"style":193},[1657],{"type":47,"value":1562},{"type":42,"tag":169,"props":1659,"children":1660},{"class":171,"line":600},[1661,1665,1669,1673,1677,1681,1686,1690,1694,1698,1702,1706],{"type":42,"tag":169,"props":1662,"children":1663},{"style":176},[1664],{"type":47,"value":606},{"type":42,"tag":169,"props":1666,"children":1667},{"style":182},[1668],{"type":47,"value":829},{"type":42,"tag":169,"props":1670,"children":1671},{"style":182},[1672],{"type":47,"value":1519},{"type":42,"tag":169,"props":1674,"children":1675},{"style":182},[1676],{"type":47,"value":1524},{"type":42,"tag":169,"props":1678,"children":1679},{"style":193},[1680],{"type":47,"value":231},{"type":42,"tag":169,"props":1682,"children":1683},{"style":182},[1684],{"type":47,"value":1685},"continue your work, then send results to terminal \u003Cconductor-terminal-id>",{"type":42,"tag":169,"props":1687,"children":1688},{"style":193},[1689],{"type":47,"value":1538},{"type":42,"tag":169,"props":1691,"children":1692},{"style":182},[1693],{"type":47,"value":1543},{"type":42,"tag":169,"props":1695,"children":1696},{"style":193},[1697],{"type":47,"value":1019},{"type":42,"tag":169,"props":1699,"children":1700},{"style":182},[1701],{"type":47,"value":1552},{"type":42,"tag":169,"props":1703,"children":1704},{"style":705},[1705],{"type":47,"value":1557},{"type":42,"tag":169,"props":1707,"children":1708},{"style":193},[1709],{"type":47,"value":1562},{"type":42,"tag":57,"props":1711,"children":1712},{},[1713,1715,1720],{"type":47,"value":1714},"Get the conductor's terminal ID from ",{"type":42,"tag":105,"props":1716,"children":1718},{"className":1717},[],[1719],{"type":47,"value":1255},{"type":47,"value":250},{"type":42,"tag":1722,"props":1723,"children":1724},"style",{},[1725],{"type":47,"value":1726},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1728,"total":810},[1729,1748,1761,1773,1789,1800,1814],{"slug":1730,"name":1730,"fn":1731,"description":1732,"org":1733,"tags":1734,"stars":26,"repoUrl":27,"updatedAt":1747},"add-app-to-server","add interactive UI to MCP servers","This skill should be used when the user asks to \"add an app to my MCP server\", \"add UI to my MCP server\", \"add a view to my MCP tool\", \"enrich MCP tools with UI\", \"add interactive UI to existing server\", \"add MCP Apps to my server\", or needs to add interactive UI capabilities to an existing MCP server that already has tools. Provides guidance for analyzing existing tools and adding MCP Apps UI resources.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1735,1738,1741,1744],{"name":1736,"slug":1737,"type":16},"Frontend","frontend",{"name":1739,"slug":1740,"type":16},"MCP","mcp",{"name":1742,"slug":1743,"type":16},"Plugin Development","plugin-development",{"name":1745,"slug":1746,"type":16},"UI Components","ui-components","2026-07-12T08:41:40.4008",{"slug":1749,"name":1749,"fn":1750,"description":1751,"org":1752,"tags":1753,"stars":26,"repoUrl":27,"updatedAt":1760},"agui-author","emit interactive dashboard UI components","Author live dashboard UI from an agent via the `emit_ui` MCP tool. Emit one of six allow-listed components (approval_card, choice_prompt, diff_summary, progress, metric, agent_card) with JSON props and it renders in any AG-UI client watching the fleet. Use when you want the operator to see a decision, a diff, or a status readout instead of scrolling terminal text. Arbitrary HTML\u002Fmarkup is refused.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1754,1755,1758,1759],{"name":24,"slug":25,"type":16},{"name":1756,"slug":1757,"type":16},"Dashboards","dashboards",{"name":1739,"slug":1740,"type":16},{"name":1745,"slug":1746,"type":16},"2026-07-22T05:35:50.851108",{"slug":1762,"name":1762,"fn":1763,"description":1764,"org":1765,"tags":1766,"stars":26,"repoUrl":27,"updatedAt":1772},"cao-agent-routing","route tasks to appropriate CAO agents","Find and select the best installed CAO agent profile for a task before delegating with assign or handoff. Use when a supervisor needs to route coding, documentation, infrastructure, review, research, or other specialist work and the user has not already chosen an agent profile.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1767,1768,1771],{"name":24,"slug":25,"type":16},{"name":1769,"slug":1770,"type":16},"AWS","aws",{"name":21,"slug":22,"type":16},"2026-07-25T05:56:34.255071",{"slug":1774,"name":1774,"fn":1775,"description":1776,"org":1777,"tags":1778,"stars":26,"repoUrl":27,"updatedAt":1788},"cao-learning","report task outcomes and distill lessons","Report task outcomes and distill lessons so the team improves across runs — report_outcome after each unit of work, retrospector handoffs at natural boundaries, and applying injected lessons. Use in workflows that run repeatedly over similar work items. Requires memory.learning_enabled; degrade silently when the tools report disabled.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1779,1782,1785],{"name":1780,"slug":1781,"type":16},"Best Practices","best-practices",{"name":1783,"slug":1784,"type":16},"Engineering","engineering",{"name":1786,"slug":1787,"type":16},"Operations","operations","2026-07-29T06:00:28.147989",{"slug":1790,"name":1790,"fn":1791,"description":1792,"org":1793,"tags":1794,"stars":26,"repoUrl":27,"updatedAt":1799},"cao-mcp-apps","operate CAO MCP application surfaces","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, Goose, Postman). Use when the user says \"enable MCP Apps in CAO\", \"the ui:\u002F\u002Fcao views aren't rendering\", \"rebuild MCP Apps bundles\", \"add a new ui:\u002F\u002Fcao\u002F* view\", or \"configure the MCP Apps OAuth scope layer\". Operates on the CAO_MCP_APPS_ENABLED surface and cao_mcp_apps\u002F build system. Not for the localhost:9889 browser dashboard, not for plugins, providers, or session management.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1795,1796,1797,1798],{"name":24,"slug":25,"type":16},{"name":18,"slug":19,"type":16},{"name":1739,"slug":1740,"type":16},{"name":1745,"slug":1746,"type":16},"2026-07-22T05:35:52.952289",{"slug":1801,"name":1801,"fn":1802,"description":1803,"org":1804,"tags":1805,"stars":26,"repoUrl":27,"updatedAt":1813},"cao-memory","manage durable agent memory and preferences","Store, recall, and forget durable facts with CAO memory — user preferences, project conventions, decisions, and corrections that should persist across sessions and agents. Use proactively to check memory before asking the user, and to save anything worth remembering. Distinct from any provider-native memory.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1806,1807,1810],{"name":24,"slug":25,"type":16},{"name":1808,"slug":1809,"type":16},"Memory","memory",{"name":1811,"slug":1812,"type":16},"Productivity","productivity","2026-07-12T08:37:03.180421",{"slug":1815,"name":1815,"fn":1816,"description":1817,"org":1818,"tags":1819,"stars":26,"repoUrl":27,"updatedAt":1824},"cao-plugin","scaffold CAO agent plugins","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, scaffold a plugin package, understand plugin requirements, or integrate an external system (Discord, Slack, dashboards, logging, metrics) with CAO. Also use when the user asks what plugin events are available, how plugin discovery works, or how to install a plugin into a CAO environment.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1820,1821,1822,1823],{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"name":1742,"slug":1743,"type":16},"2026-07-12T08:36:49.784639",{"items":1826,"total":2002},[1827,1846,1867,1877,1890,1903,1913,1923,1944,1959,1974,1987],{"slug":1828,"name":1828,"fn":1829,"description":1830,"org":1831,"tags":1832,"stars":1843,"repoUrl":1844,"updatedAt":1845},"agentcore-investigation","investigate Bedrock AgentCore runtime sessions","Investigate Bedrock AgentCore runtime sessions via CloudWatch Logs Insights — resolve session\u002Ftrace IDs, query OTEL spans, filter noise, build timelines. Use when debugging AgentCore agent sessions, tracing tool calls, or analyzing latency.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1833,1834,1837,1840],{"name":1769,"slug":1770,"type":16},{"name":1835,"slug":1836,"type":16},"Debugging","debugging",{"name":1838,"slug":1839,"type":16},"Logs","logs",{"name":1841,"slug":1842,"type":16},"Observability","observability",9427,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fmcp","2026-07-12T08:37:22.601527",{"slug":1847,"name":1848,"fn":1849,"description":1850,"org":1851,"tags":1852,"stars":1843,"repoUrl":1844,"updatedAt":1866},"amazon-aurora-dsql","amazon aurora dsql","build applications with Aurora DSQL","Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, FK replacement code generation, OCC retry patterns, ORM migration (Django\u002FHibernate\u002FRails), DDL operations, query plan explainability, SQL compatibility validation, and bulk data loading. Triggers on phrases like: DSQL, Aurora DSQL, create DSQL table, DSQL schema, migrate to DSQL, distributed SQL database, serverless PostgreSQL-compatible database, DSQL query plan, DSQL EXPLAIN ANALYZE, why is my DSQL query slow, DSQL foreign key, DSQL OCC retry, DSQL multi-region, load into DSQL, load CSV into DSQL, bulk load DSQL, aurora-dsql-loader.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1853,1856,1857,1860,1863],{"name":1854,"slug":1855,"type":16},"Aurora","aurora",{"name":1769,"slug":1770,"type":16},{"name":1858,"slug":1859,"type":16},"Database","database",{"name":1861,"slug":1862,"type":16},"Serverless","serverless",{"name":1864,"slug":1865,"type":16},"SQL","sql","2026-07-12T08:36:45.053393",{"slug":1868,"name":1869,"fn":1849,"description":1850,"org":1870,"tags":1871,"stars":1843,"repoUrl":1844,"updatedAt":1876},"aurora-dsql","aurora dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1872,1873,1874,1875],{"name":1769,"slug":1770,"type":16},{"name":1858,"slug":1859,"type":16},{"name":1861,"slug":1862,"type":16},{"name":1864,"slug":1865,"type":16},"2026-07-12T08:36:42.694299",{"slug":1878,"name":1879,"fn":1849,"description":1850,"org":1880,"tags":1881,"stars":1843,"repoUrl":1844,"updatedAt":1889},"aws-dsql","aws dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1882,1883,1884,1887,1888],{"name":1769,"slug":1770,"type":16},{"name":1858,"slug":1859,"type":16},{"name":1885,"slug":1886,"type":16},"Migration","migration",{"name":1861,"slug":1862,"type":16},{"name":1864,"slug":1865,"type":16},"2026-07-12T08:36:38.584057",{"slug":1891,"name":1892,"fn":1849,"description":1850,"org":1893,"tags":1894,"stars":1843,"repoUrl":1844,"updatedAt":1902},"distributed-postgres","distributed postgres",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1895,1896,1897,1900,1901],{"name":1769,"slug":1770,"type":16},{"name":1858,"slug":1859,"type":16},{"name":1898,"slug":1899,"type":16},"PostgreSQL","postgresql",{"name":1861,"slug":1862,"type":16},{"name":1864,"slug":1865,"type":16},"2026-07-12T08:36:46.530743",{"slug":1904,"name":1905,"fn":1849,"description":1850,"org":1906,"tags":1907,"stars":1843,"repoUrl":1844,"updatedAt":1912},"distributed-sql","distributed sql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1908,1909,1910,1911],{"name":1769,"slug":1770,"type":16},{"name":1858,"slug":1859,"type":16},{"name":1861,"slug":1862,"type":16},{"name":1864,"slug":1865,"type":16},"2026-07-12T08:36:48.104182",{"slug":1914,"name":1914,"fn":1849,"description":1850,"org":1915,"tags":1916,"stars":1843,"repoUrl":1844,"updatedAt":1922},"dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1917,1918,1919,1920,1921],{"name":1769,"slug":1770,"type":16},{"name":1858,"slug":1859,"type":16},{"name":1885,"slug":1886,"type":16},{"name":1861,"slug":1862,"type":16},{"name":1864,"slug":1865,"type":16},"2026-07-12T08:36:36.374512",{"slug":1924,"name":1924,"fn":1925,"description":1926,"org":1927,"tags":1928,"stars":1941,"repoUrl":1942,"updatedAt":1943},"cost-efficiency-analyzer","analyze cost efficiency and expenses","Analyzes cost structure, cost efficiency, and expense management from P&L data. Use when the user asks about costs, expenses, COGS, operating expenses, cost ratios, cost control, spending efficiency, margin compression from cost side, or wants to understand where money is going. Also use for \"are we spending too much\", \"cost breakdown\", \"expense analysis\", or \"how efficient are our operations\". NOT for revenue or top-line analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1929,1932,1935,1938],{"name":1930,"slug":1931,"type":16},"Accounting","accounting",{"name":1933,"slug":1934,"type":16},"Analytics","analytics",{"name":1936,"slug":1937,"type":16},"Cost Optimization","cost-optimization",{"name":1939,"slug":1940,"type":16},"Finance","finance",3176,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fagentcore-samples","2026-07-12T08:40:03.29555",{"slug":1945,"name":1945,"fn":1946,"description":1947,"org":1948,"tags":1949,"stars":1941,"repoUrl":1942,"updatedAt":1958},"executive-financial-briefing","generate executive financial briefings","Generates a concise executive-level financial briefing or summary suitable for a CEO, CFO, or board presentation. Use when the user asks for a summary, briefing, executive summary, board update, financial overview, financial health check, or \"how is the business doing\". Covers the full P&L picture in one page. Also use for \"give me the highlights\", \"what do I need to know\", or \"quick financial update\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1950,1951,1952,1955],{"name":1769,"slug":1770,"type":16},{"name":1939,"slug":1940,"type":16},{"name":1953,"slug":1954,"type":16},"Management","management",{"name":1956,"slug":1957,"type":16},"Reporting","reporting","2026-07-12T08:40:02.066471",{"slug":1960,"name":1960,"fn":1961,"description":1962,"org":1963,"tags":1964,"stars":1941,"repoUrl":1942,"updatedAt":1973},"multi-quarter-trend-analysis","analyze multi-quarter financial trends","Analyzes financial trends across multiple quarters by comparing P&L metrics over time. Use when the user wants to see trends, patterns, trajectories, or directional movement across 3 or more quarters. Also use for \"how are we trending\", \"show me the trend\", \"track performance over time\", \"quarter over quarter comparison across all quarters\", or any multi-period longitudinal analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1965,1966,1967,1970],{"name":1933,"slug":1934,"type":16},{"name":1939,"slug":1940,"type":16},{"name":1968,"slug":1969,"type":16},"Financial Statements","financial-statements",{"name":1971,"slug":1972,"type":16},"Variance Analysis","variance-analysis","2026-07-12T08:40:00.79141",{"slug":1975,"name":1975,"fn":1976,"description":1977,"org":1978,"tags":1979,"stars":1941,"repoUrl":1942,"updatedAt":1986},"pdf","process and manipulate PDF documents","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1980,1981,1984],{"name":14,"slug":15,"type":16},{"name":1982,"slug":1983,"type":16},"Documents","documents",{"name":1985,"slug":1975,"type":16},"PDF","2026-07-12T08:41:44.135656",{"slug":1988,"name":1988,"fn":1989,"description":1990,"org":1991,"tags":1992,"stars":1941,"repoUrl":1942,"updatedAt":2001},"quarterly-kpi-calculator","calculate quarterly financial KPIs","Calculates quarterly financial KPIs from P&L data. P&L figures can be provided directly by the user or fetched from the financial data MCP server. Use when the user wants KPI calculations such as Gross Margin %, EBITDA Margin %, Operating Expense Ratio, or Revenue Growth % QoQ. Also use for quarterly performance review, P&L analysis, or interpreting financial ratios against benchmarks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1993,1994,1997,1998],{"name":1930,"slug":1931,"type":16},{"name":1995,"slug":1996,"type":16},"Data Analysis","data-analysis",{"name":1939,"slug":1940,"type":16},{"name":1999,"slug":2000,"type":16},"KPI","kpi","2026-07-12T08:39:59.54971",150]