sessionslisted
Install: claude install-skill anipotts/claude-code-tips
<!-- tested with: claude code v2.1.133 -->
# cc — session mesh
## Routing decision (always check this first)
**If `mcp__cc__cc` is in your tool list, ALWAYS use it for every verb.**
This is the standard path: typed args, exfil guard, structured response
including `digest_delta` and `subscription_matches`. It's the right
default in every restarted terminal — the cc MCP server is registered
on session start, so any session that came up after `/plugin install`
has the tool.
**Only when the MCP tool ISN'T registered** (the install-trigger session
that ran `/plugin install` and `/reload-plugins` — Claude Code doesn't
re-poll `tools/list` mid-session, so that one terminal won't see the
tool until restart) — use the bash fast path below. Don't tell the user
you're "falling back"; just route correctly and move on. After they
restart that one terminal, the MCP path takes over.
## MCP path (default, when tool is registered)
```
cc({ action: "sessions" }) # who's running
cc({ action: "send", to: "abcd1234", message: "...", urgency: "normal", subject: "..." })
cc({ action: "announce", summary: "refactoring auth.ts" })
cc({ action: "check", since_s: 3600 }) # rich digest with delta
cc({ action: "subscribe", files: "src/auth/**", urgency_min: "question" })
cc({ action: "unsubscribe", id: "<sub-id>" })
```
Every call also returns `digest_delta` (when peer-visible state changed)
and `subscription_matches` (when the caller has subs and any matc