cc CLI — natural-language invocation
The cc binary (aliases: chainlesschain, clc, clchain) exposes 100+ top-level commands, each with its own subcommands and flags. The command set grows frequently, so never rely on a memorized list — always discover the current surface from cc --help and cc <cmd> --help.
How to run
Parse intent — identify (a) the domain the user cares about (skill, note, did, chat, session, mcp, cowork, workflow, etc.) and (b) the verb (list, create, run, sync, publish, show, delete, …).
Enumerate top-level commands: cc --help. The Commands: block lists <name>|<alias> <description>. Pick the command whose name/alias or description best matches the user's domain.
- If multiple fit, ask the user to disambiguate rather than guessing.
- Aliases are shown after
| (e.g. agent|a, activitypub|ap, multimodal|mm).
Enumerate subcommands: cc <command> --help (or cc help <command>). Parse the Commands: block the same way.
Enumerate options: cc <command> <sub> --help. The Options: block shows each flag, its argument shape, and default. Prefer non-interactive flags when available:
--json — machine-readable output, easier to summarize back to the user
--yes / -y — skip confirmation prompts
--quiet — suppress banners
--dry-run — preview without side effects (use this first for sync/publish/pack/reset operations)
Execute: run cc <command> <sub> [--flags] [positional] with Bash. Capture stdout; surface stderr to the user if non-empty.
Summarize: give the user a 1–2 line plain-language answer plus the exact command you ran, so they can re-run or tweak it manually. Never invent output — if parsing fails, show the raw tail.
Rules
- Help is the source of truth. If a memory, CLAUDE.md entry, or doc references a command that isn't in
cc --help, trust --help and flag the stale reference.
-v2 governance surfaces are separate commands. Many domains have both a base command and a …gov-…-v2 suffixed variant (maturity / lifecycle governance). Pick the base unless the user explicitly mentions governance, maturity, lifecycle, or V2.
- Confirm destructive operations. For
stop, db reset, anything with --delete / --purge / --remove / --force, paste the exact command and ask the user to confirm before running — even if their original request was vaguely phrased.
- Prefer dry-run first. For
skill sync-cli, marketplace publish, pack, migrations, or any sync/publish flow, run with --dry-run first when available and show the planned actions before the real run.
- Connection errors ≠ bugs. Some commands need the desktop app or backend services. If you see
ECONNREFUSED / service unavailable, run cc status and tell the user what's down before retrying.
- Don't shell-inject user text. When the user's input becomes a CLI argument (e.g.
cc ask "<question>", cc search <query>), quote it properly — single-quote preferred on bash, and escape embedded quotes.
- Keep working directory in mind.
cc init, cc pack --project, cc persona, and other project-scoped commands operate on cwd. Confirm you're in the intended repo before running them.
Seed mapping (verify with cc --help — do not trust blindly)
| User says |
Command starts with |
| start the app, open ChainlessChain |
cc start |
| stop / shutdown |
cc stop |
| what's broken, diagnose |
cc doctor |
| initial setup, first run |
cc setup / cc init |
| chat with AI |
cc chat |
| ask a one-shot question |
cc ask <question> |
| run an agent session |
cc agent (alias cc a) |
| list / run / sync skills |
cc skill |
| search notes / knowledge |
cc search <query> / cc note |
| memory / remember this |
cc memory / cc permmem |
| DID / identity |
cc did (or cc did-v2 / cc didv2 for W3C v2) |
| session / history |
cc session |
| MCP servers/tools |
cc mcp |
| cowork / multi-agent |
cc cowork |
| workflow / automation |
cc workflow / cc automation / cc auto |
| web UI panel |
cc ui |
| orchestrate / pipeline |
cc orchestrate / cc pipeline (alias pipe) |
| marketplace / publish skill |
cc marketplace |
| federation / activitypub / matrix |
cc activitypub (alias ap) / cc matrix |
| cross-chain / privacy / inference |
cc crosschain / cc privacy / cc inference |
| token / billing / incentive |
cc tokens / cc incentive |
| knowledge graph |
cc kg |
| IPFS / storage |
cc ipfs |
| tenant / SSO / SCIM |
cc tenant / cc sso / cc scim |
| video montage |
cc video |
| CLI-anything bridge |
cc cli-anything |
| EvoMap |
cc evomap |
Self-update
This skill does not need to be edited when new CLI commands are added — the runtime discovery via cc --help picks them up automatically. It only needs editing if:
- The help format changes (Commander output structure).
- A new convention appears (e.g. a new common flag like
--json).
- Domain→command mapping gets a new well-known alias worth seeding above.
To verify current coverage:
cc --help | grep -E '^\s{2}[a-z]' | wc -l # total top-level commands
cc --version # CLI version
1---2name: cc-cli3description: Invoke ChainlessChain `cc` CLI commands from natural language. Triggers when the user wants to run any `cc …` action (skill / note / chat / ask / search / did / session / memory / mcp / cowork / agent / workflow / automation / pack / orchestrate / pipeline / kg / marketplace / did-v2 / activitypub / matrix / terraform / crosschain / etc.) without remembering the exact subcommand. Always discovers the current command set via `cc --help` at runtime, so newly added commands work without updating this skill.4---56# cc CLI — natural-language invocation78The `cc` binary (aliases: `chainlesschain`, `clc`, `clchain`) exposes 100+ top-level commands, each with its own subcommands and flags. The command set grows frequently, so **never rely on a memorized list** — always discover the current surface from `cc --help` and `cc <cmd> --help`.910## How to run11121. **Parse intent** — identify (a) the domain the user cares about (skill, note, did, chat, session, mcp, cowork, workflow, etc.) and (b) the verb (list, create, run, sync, publish, show, delete, …).13142. **Enumerate top-level commands**: `cc --help`. The `Commands:` block lists ` <name>|<alias> <description>`. Pick the command whose name/alias or description best matches the user's domain.15 - If multiple fit, ask the user to disambiguate rather than guessing.16 - Aliases are shown after `|` (e.g. `agent|a`, `activitypub|ap`, `multimodal|mm`).17183. **Enumerate subcommands**: `cc <command> --help` (or `cc help <command>`). Parse the `Commands:` block the same way.19204. **Enumerate options**: `cc <command> <sub> --help`. The `Options:` block shows each flag, its argument shape, and default. Prefer non-interactive flags when available:21 - `--json` — machine-readable output, easier to summarize back to the user22 - `--yes` / `-y` — skip confirmation prompts23 - `--quiet` — suppress banners24 - `--dry-run` — preview without side effects (use this first for sync/publish/pack/reset operations)25265. **Execute**: run `cc <command> <sub> [--flags] [positional]` with `Bash`. Capture stdout; surface stderr to the user if non-empty.27286. **Summarize**: give the user a 1–2 line plain-language answer plus the exact command you ran, so they can re-run or tweak it manually. Never invent output — if parsing fails, show the raw tail.2930## Rules3132- **Help is the source of truth.** If a memory, CLAUDE.md entry, or doc references a command that isn't in `cc --help`, trust `--help` and flag the stale reference.33- **`-v2` governance surfaces are separate commands.** Many domains have both a base command and a `…gov-…-v2` suffixed variant (maturity / lifecycle governance). Pick the base unless the user explicitly mentions governance, maturity, lifecycle, or V2.34- **Confirm destructive operations.** For `stop`, `db reset`, anything with `--delete` / `--purge` / `--remove` / `--force`, paste the exact command and ask the user to confirm before running — even if their original request was vaguely phrased.35- **Prefer dry-run first.** For `skill sync-cli`, `marketplace publish`, `pack`, migrations, or any sync/publish flow, run with `--dry-run` first when available and show the planned actions before the real run.36- **Connection errors ≠ bugs.** Some commands need the desktop app or backend services. If you see `ECONNREFUSED` / `service unavailable`, run `cc status` and tell the user what's down before retrying.37- **Don't shell-inject user text.** When the user's input becomes a CLI argument (e.g. `cc ask "<question>"`, `cc search <query>`), quote it properly — single-quote preferred on bash, and escape embedded quotes.38- **Keep working directory in mind.** `cc init`, `cc pack --project`, `cc persona`, and other project-scoped commands operate on `cwd`. Confirm you're in the intended repo before running them.3940## Seed mapping (verify with `cc --help` — do not trust blindly)4142| User says | Command starts with |43|-----------|---------------------|44| start the app, open ChainlessChain | `cc start` |45| stop / shutdown | `cc stop` |46| what's broken, diagnose | `cc doctor` |47| initial setup, first run | `cc setup` / `cc init` |48| chat with AI | `cc chat` |49| ask a one-shot question | `cc ask <question>` |50| run an agent session | `cc agent` (alias `cc a`) |51| list / run / sync skills | `cc skill` |52| search notes / knowledge | `cc search <query>` / `cc note` |53| memory / remember this | `cc memory` / `cc permmem` |54| DID / identity | `cc did` (or `cc did-v2` / `cc didv2` for W3C v2) |55| session / history | `cc session` |56| MCP servers/tools | `cc mcp` |57| cowork / multi-agent | `cc cowork` |58| workflow / automation | `cc workflow` / `cc automation` / `cc auto` |59| web UI panel | `cc ui` |60| orchestrate / pipeline | `cc orchestrate` / `cc pipeline` (alias `pipe`) |61| marketplace / publish skill | `cc marketplace` |62| federation / activitypub / matrix | `cc activitypub` (alias `ap`) / `cc matrix` |63| cross-chain / privacy / inference | `cc crosschain` / `cc privacy` / `cc inference` |64| token / billing / incentive | `cc tokens` / `cc incentive` |65| knowledge graph | `cc kg` |66| IPFS / storage | `cc ipfs` |67| tenant / SSO / SCIM | `cc tenant` / `cc sso` / `cc scim` |68| video montage | `cc video` |69| CLI-anything bridge | `cc cli-anything` |70| EvoMap | `cc evomap` |7172## Self-update7374This skill does not need to be edited when new CLI commands are added — the runtime discovery via `cc --help` picks them up automatically. It only needs editing if:75- The help format changes (Commander output structure).76- A new convention appears (e.g. a new common flag like `--json`).77- Domain→command mapping gets a new well-known alias worth seeding above.7879To verify current coverage:80```bash81cc --help | grep -E '^\s{2}[a-z]' | wc -l # total top-level commands82cc --version # CLI version83```