Chapter 31
Slack × Claude Managed Agents
Slack × Claude Managed Agents
@mention a Claude Managed Agent in Slack and get the reply in-thread.
code
Slack @mention ──▶ /slack/events ──▶ sessions.create (+ metadata) ──▶ 200
│
Claude runs to idle on Anthropic infra
│
/cma-webhook ◀── session.status_idled ◀───────┘
│
└──▶ sessions.retrieve → read metadata → chat.postMessageThe CMA session's metadata (slack_channel, slack_thread_ts) is the entire routing state.
Quickstart
bash
cd managed_agents/slack
bun install
claudeThen ask: "walk me through setting this up." Claude reads skill.md and drives the config — Slack app, Anthropic agent + webhook, env vars, bun run dev — in the order that actually works.
Files
setup/create-agent.ts | One-time: agents.create + environments.create |
src/main.ts | Bun server, routes |
src/slack-events.ts | Verify Slack sig, url_verification, fire-and-forget kickoff |
src/agent.ts | sessions.create + user.message with routing metadata |
src/cma-webhook.ts | beta.webhooks.unwrap → filter by metadata → chat.postMessage |
skill.md | Setup walkthrough, gotchas, debugging |
Requires @anthropic-ai/sdk ≥ 0.95.1.
