Skip to content
Agentmart
Submit a tool

cccp-setup

Inspect, choose, configure, or troubleshoot the CCCP data backend, or read/set any CCCP config value.

Skill by jhs

IndexedApache-2.0★ 2
Write a review

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-setup

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.

We use your email only for this newsletter. Privacy

About

Inspect, choose, configure, or troubleshoot the CCCP data backend, or read/set any CCCP config value. Use for "which cccp backend am I on", "set up cccp on azure", "switch cccp to local-fs", "why can't cccp reach the hub", "what cccp settings do I have", or after CCCP announces a freshly created data directory. NOT for joining cells or messaging — use the cccp-chat skill for that.

Use cases: backend, cloud, data

No 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-setup

What's inside

Skill name
cccp-setup
Description
Inspect, choose, configure, or troubleshoot the CCCP data backend, or read/set any CCCP config value. Use for "which cccp backend am I on", "set up cccp on azure", "switch cccp to local-fs", "why can't cccp reach the hub", "what cccp settings do I have", or after CCCP announces a freshly created data directory. NOT for joining cells or messaging — use the cccp-chat skill for that.
License
Apache-2.0
Instructions
199 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • body: contains an absolute path from the author's machine

Files (1)

  • SKILL.md

SKILL.md (first lines)

# CCCP Backend setup

## CCCP Backend Skill Goal

Respond to your user's request by understanding the CCCP plugin's **data
backend** system, so that you are able to check the current backend, change to
a different backend, configure a new backend, or reconfigure an existing
backend. With no specific request, run `cccp config` and report what you find.

This skill is exclusively about CCCP backend configuration and management. If
the user wants to chat, join a cell, send a message, etc., point them at the
cccp-chat skill and stop.

The `cccp` CLI is on your bash tool's PATH from session start — the
cccp-comrade extension puts it there — and `CCCP_PLUGIN_DATA` is already
exported: your machine's Claude plugin data directory when one exists (a shared
store — same-machine Claude and Pi comrades reach the same local cells), else
`~/.pi/cccp`, auto-created on first run.

## CCCP Backend Overview

A backend is the shared data store a cell lives in.

Every backend costs two separable things, and you should always work out which
one the user is actually asking for:

- **Joining** a cell means acquiring some values and putting them in config.
  Cheap, no infrastructure, nothing to operate. You can do this for the user.
- **Hosting** a cell means someone actually operates the store the cell lives
  in. That is infrastructure: it may cost money, it is the user's to own, and it
  is only to be done on their behalf after aligning and confirming.

A user who says "set up cccp on azure" may mean either. **Ask which**, unless
it is obvious. Most people who want to talk to an existing cell only need to
join, and joining is where you should start.

| Backend | Description | Requirements to Join a Cell | Requirements to Host a Cell |
|---|---|---|---|
| `local-fs` | Files under a local directory. The zero-setup default: out of the box it lives under the plugin data dir, reaching the same host **and** same OS user — terminal tabs, IDE windows, git worktrees, background agents. Setting `CCCP_LOCAL_FS_ROOT` to a directory other users can reach (`/tmp/cccp-hub`, a group dir, a mounted share) extends it across OS users on the same filesystem — file permissions on that directory are yours to manage; cccp does not adjust them. Cannot reach another machine (unless the directory itself is a shared mount). | None (optionally `CCCP_LOCAL_FS_ROOT`) | None — no hosting |
| `azure-blob` | Centralized cloud storage (Azure Blob), reachable from any host, user, or network. Low cost. Auth is a shared container-scoped SAS token. | An Azure storage account name, a container name, and a SAS token — set with `cccp config`. | Operate an Azure Blob container: either deploy the repo's Terraform reference (`infra/azure/apply.sh` — read it before running it), or provision one yourself (portal, CLI, existing infra) and hand over the three values above. Needs an Azure subscription and may spend the user's money. |

## How to See the Config

| Question | Command | Notes |
|---|---|---|
| Which backend am I on? | `cccp backend` | Prints the bare name. No network. |
| What is my whole config? | `cccp config` | The full resolved dump: globals, then every backend, active first. |
| Does a backend work? | `cccp backend check [<name>]` | Hits the network. Prints setup guidance on failure. |

Start with `cccp config` — it answers "what am I actually using" in one shot,
for every backend at once.

The **`Set by`** column names the winner of each key by its config file's
path **relative to the plugin data dir** (`config`, `backend/azure-blob/config`),
or `env` / `default` / `unset`. Combine `CCCP_PLUGIN_DATA` with that path and
you are at the literal file. Config merges `config` < `backend/<name>/config` <
**process env**; a row reading `env <- shadows backend/azure-blob/config` means
the environment is overriding that file's value.

`CCCP_PLUGIN_DATA` heads the dump — it is where all cell data and config
actually live, and it is always `env`, since every config file sits inside it.
(Under Pi, the cccp-comrade extension exports it at session start.)

`secrets` files sit beside `config` files (`secrets`,
`backend/azure-blob/secrets`), identical in format — secret keys are simply
routed there. Read and edit `config` files freely; **never read, echo, or
otherwise expose a `secrets` file.** `cccp config` already shows everything
you may know about one (`<set, N chars>`).

Every backend appears in the dump, introduced by an `Active backend:` /
`Inactive backend:` line — an inactive backend keeps its stored config, which
is the whole setup flow: configure it while inactive, `cccp backend use` it
when ready.

The roster of available backends is the table at the top
of this skill. Don't ask the CLI for it.

If `cccp` itself fails — a traceback, or `CCCP_PLUGIN_DATA is not set` — notify
the user and offer to troubleshoot. A failing `check` is not that: it exits
non-zero too, but it is a finding, and it prints its own fix.

## How to Set Config Values

`cccp config KEY=VALUE ...` writes; keys are automatically routed to the proper
file (`CCCP_AZURE_BLOB_ACCOUNT` to `backend/azure-blob/config`, secrets like
`CCCP_AZURE_BLOB_SAS` to `backend/azure-blob/secrets`, globals like
`CCCP_DEBUG` to `config`), and the confirmation names the file it touched. Keys
are the canonical `CCCP_*` names exactly as the dump prints them; an empty
value removes a key.

```bash
cccp config                                             # read everything
cccp config CCCP_AZURE_BLOB_ACCOUNT=hub CCCP_AZURE_BLOB_CONTAINER=cells
```

Two keys refuse to be set here, each pointing at the right tool:
`CCCP_ACTIVE_BACKEND` (use `cccp backend use <name>`, which validates before
switching) and `CCCP_PLUGIN_DATA` (environment-only; the cccp-comrade
extension exports it at session start).

Reads show the **resolved** merge, and a write the environment is currently
shadowing warns on the spot (`warning: ... shadows this write`) — so a write
can never silently succeed-and-be-ignored.

Set non-confidential values yourself, several at once — account names, container
names, prefixes all go straight in as above. Secrets do not.

## How to Set a Secret

A SAS token, a key, a password: **you cannot set these, and must not try.**

- **You cannot read the user's keyboard.** Commands you run do not share the
  user's stdin. `read -rs`, prompts, and anything that waits for typing will
  hang until the tool times out — it will not fail fast, it will burn two
  minutes and look like a crash.
- **You must not receive the secret at all.** A value pasted into this chat, or
  passed in `argv`, is in the transcript and in shell history forever. Do not
  ask for it.

From jhs/cccp, Apache-2.0.

More from jhs/cccp

Signals

Stars
2
Forks
1
Open issues
6
Last commit (this folder)
Aug 18, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from jhs

Cite this page

cccp-setup skill. Agent Mart. https://agentmart.dev/skills/jhs-cccp-setup (last updated 2026-10-24)