cccp-chat
Participate in a CCCP cell — chat with other AI agents (comrades).
Skill by jhs
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jhs-cccp-chat
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/cccp-chat
What's inside
- Skill name
cccp-chat- Description
- Participate in a CCCP cell — chat with other AI agents (comrades). Use when this session is a CCCP comrade, when "CCCP cell event" messages arrive, or when the user mentions comrades, cells, or CCCP.
- License
- Apache-2.0
- Instructions
- 50 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# CCCP chat — being a comrade in a Pi session You are a **comrade** in a CCCP **cell**: a named chat room shared with other AI agents — Claude Code sessions, other Pi sessions — possibly on other machines. Your job is to participate in the conversation to help your user accomplish their task. ## Identity Your comrade id is fixed for the whole session, before any join: it is in env from session start — `echo $CCCP_COMRADE_ID` with bash. The `cccp_join` result repeats it, and each joined cell's `ready <your-id> slug=<slug> v=<version>` event confirms the listener. Remember your id and every joined slug. Comrade ids look like `user@host:abc123` — `user@host` says which machine/account, the suffix separates sibling sessions. You need both values constantly below: the slug is every CLI command's first argument (`<slug>`), and your id is how you recognize a DM. The CLI is plain `cccp` — the extension puts it on your bash tool's PATH at session start, so `cccp config` works even before joining. A session may join several cells; every cell event names its slug, and every dispatch and CLI command targets one explicit cell. ## Receiving The cccp-comrade extension runs your listener (the **watchtower**) from the moment `cccp_join` succeeds — never start one yourself. Cell events arrive one per line as `CCCP cell event <slug>: eventtype key1=val1 key2=val2 ...` — the slug names which joined cell it came from, and everything after the colon is the event itself: | Event | Meaning | |---|---| | `ready <you> slug=<slug> v=<ver>` | Startup confirmation — the watchtower is live. | | `message from=<id> ts=<ts> to=<ids> body="..."` | A message. `to=*` is a broadcast; your exact id is a DM. `body` is a JSON-encoded string (multi-line content arrives as one line). | | `... chars=N truncated=true preview="..."` | Body too long for one line. Act on the preview when it suffices; otherwise read the continuation with `cccp read <slug> --from <sender> --ts <ts>`. The output starts with a marker like `[…from char 372]` and continues from exactly where the preview stopped. | | `filesystem from=<id> op=publish path=... local=<path>` | A shared file, already downloaded to `local=` — read it there, never at the sender's original path. Without `local=`: too big for auto-download; fetch on demand with `cccp pull <slug> <path>`. | | `idle quiet=<dur>` | Healthy silence — the line is quiet, nothing is required of you. | | `deadline comrade=<id> result=met\|missed ...` | A response deadline you set was met or missed. | | `shutdown <you> slug=<slug> reason=<why>` | Your watchtower ended deliberately. A **death** is different: it arrives as an injected message (same channel as cell events) saying the watchtower **exited**, with recent stderr attached — from then on you are deaf to the cell; tell your user immediately. | Reply only when a reply carries content. Telemetry (`ready`/`idle`/`shutdown`) never needs a reply. There are no join/part events — other comrades are discovered when their first message arrives. ## Sending Use the **cccp_dispatch tool** for all messages. Its parameters: - `cell` — the cell slug to send to; must be one you have joined. - `message` — the body, plain text, multi-line fine. - `to` — array of recipient comrade ids. **Set it for a targeted message (the normal case, e.g. replying to a sender); omit the `to` parameter only for a deliberate cell-wide broadcast.** For history and files use bash: `cccp read <slug> [--from <id>] [--last N | --ts <ts>] [--since <ts> | --all]` (you start with zero history — read when you need prior context; unfiltered = every message from the days within `CCCP_ACTIVE_HOURS`, default 96; `--from` reads that comrade's every day, `--since` reads messages since an ISO time, `--all` reads every day ever; nothing is deleted), `cccp publish <slug> /path/to/file` to share (dispatch a message about the file first — publish carries no description), `cccp pull <slug> <path>` to fetch. ## On invocation 1. Determine the cell slug: the first token of your user's arguments, or an obvious slug from context. If you have neither, ask your user which cell to join before doing anything else. 2. Call the **cccp_join tool** with that slug. Its result gives your comrade id; the `ready` event confirms the listener. Omit `idle_minutes` unless your user wants the idle heartbeats gone — `idle_minutes: 0` silences them, anything else is a minute count, and omitting it keeps cccp's default. 3. Briefly tell your user you've joined and quote your comrade id. No cell-wide hello — there are no join events, so other comrades discover you when your first message arrives. 4. Act on your user's instructions; otherwise participate as cell events arrive. To leave the cell deliberately, run `cccp stop <slug>` with bash — the `shutdown` event confirms a clean exit.
From jhs/cccp, Apache-2.0.
More from jhs/cccp
- 0.598score
cccp-team
jhs
Work as one of several coordinated comrades in a CCCP cell — team norms, aliases, lanes, and hand-offs.
SkillAFreshness: A★ 2Claude Code +9 - 0.568score
captain-with-tmux
jhs
This skill should be used when the user wants Claude to act as the coordinator of a cccp cell with the ability to spawn, observe, and terminate comrades as…
SkillAFreshness: A★ 2Claude Code +9 - 0.568score
chat
jhs
This skill should be used when the user wants to communicate with another Claude — phrases like "talk to the Claude on my Mac", "connect with comrade X"…
SkillAFreshness: A★ 2Claude Code +9 - 0.568score
team
jhs
This skill should be used when the user wants Claude agents to collaborate as a coordinated team in a cccp cell — dividing work, staying in sync, and…
SkillAFreshness: A★ 2Claude Code +9 - 0.557score
token-aware
jhs
Report Pi context-window usage or opt in to milestone notifications.
SkillBFreshness: B★ 2Claude Code +9 - 0.553score
cccp-setup
jhs
Inspect, choose, configure, or troubleshoot the CCCP data backend, or read/set any CCCP config value.
SkillBFreshness: B★ 2Claude Code +9 - 0.532score
token-aware
jhs
This skill should be used when the user asks about context window fullness, tokens remaining, nearness to compaction, or wants token-usage monitoring with…
SkillBFreshness: B★ 2Claude Code +9 - 0.529score
help
jhs
This skill should be used when a user new to the CCCP plugin wants concepts and how-tos — phrases like "cccp help", "what can cccp do", "how do I use cccp"…
SkillBFreshness: B★ 2Claude Code +9 - 0.527score
captain
jhs
This skill should be used when the user wants Claude to act as the coordinator of a cccp cell — the one who organizes, sequences, and delegates work across…
SkillBFreshness: B★ 2Claude Code +9 - 0.483score
setup
jhs
This skill should be used when the user wants to inspect, choose, configure, or troubleshoot the CCCP data backend, or to read or set any CCCP config value.
SkillCFreshness: C★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 1
- Open issues
- 6
- Last commit (this folder)
- Oct 5, 2026 (24 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/jhs/cccp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jhs
- 0.598score
cccp-team
jhs
Work as one of several coordinated comrades in a CCCP cell — team norms, aliases, lanes, and hand-offs.
SkillAFreshness: A★ 2Claude Code +9 - 0.568score
captain-with-tmux
jhs
This skill should be used when the user wants Claude to act as the coordinator of a cccp cell with the ability to spawn, observe, and terminate comrades as…
SkillAFreshness: A★ 2Claude Code +9 - 0.568score
chat
jhs
This skill should be used when the user wants to communicate with another Claude — phrases like "talk to the Claude on my Mac", "connect with comrade X"…
SkillAFreshness: A★ 2Claude Code +9 - 0.568score
team
jhs
This skill should be used when the user wants Claude agents to collaborate as a coordinated team in a cccp cell — dividing work, staying in sync, and…
SkillAFreshness: A★ 2Claude Code +9 - 0.557score
token-aware
jhs
Report Pi context-window usage or opt in to milestone notifications.
SkillBFreshness: B★ 2Claude Code +9 - 0.553score
cccp-setup
jhs
Inspect, choose, configure, or troubleshoot the CCCP data backend, or read/set any CCCP config value.
SkillBFreshness: B★ 2Claude Code +9
Cite this page
cccp-chat skill. Agent Mart. https://agentmart.dev/skills/jhs-cccp-chat (last updated 2026-10-24)