Claude Code plugin
Install (four paths)
# 1. skills.sh — works across Claude Code, Cursor, Copilot, Cline, 18+ agents (recommended)
$ npx skills add Blockchain-Oracle/cdr-kit
# adds all 11 cdr-kit skills, auto-detects your agent
# Pick a subset:
$ npx skills add Blockchain-Oracle/cdr-kit --skill design-condition
$ npx skills add Blockchain-Oracle/cdr-kit --skill 'design-*'
# Install to every agent on your machine:
$ npx skills add Blockchain-Oracle/cdr-kit --all
# 2. via the cdr CLI (cdr-kit-bundled, Claude Code only)
$ npm install -g @cdr-kit/cli
$ cdr skill install
# 3. via Claude Code's plugin marketplace
$ claude
/plugin marketplace add Blockchain-Oracle/cdr-kit
/plugin install cdr-kit@cdr-kit
# 4. manual
$ git clone https://github.com/Blockchain-Oracle/cdr-kit
$ cp -r cdr-kit/packages/plugin/cdr-kit ~/.claude/skills/cdr-kit
How skills.sh actually packages cdr-kit — the CLI treats the whole GitHub repo as the package (Blockchain-Oracle/cdr-kit), then walks the repo's top-level skills/ directory to discover each individual skill inside it. So npx skills add Blockchain-Oracle/cdr-kit installs all 11 by default; --skill <name> picks one or more, --skill '*' is shorthand for all, and --all installs every skill into every detected agent.
The CLI clones the repo into a cache, copies (or symlinks with --copy off) the matching SKILL.md files into your agent's skill folder (e.g. ~/.claude/skills/<name>/), and writes a skills-lock.json next to your project so re-installs are reproducible. Update everything later with npx skills update.
This means cdr-kit ships once (one repo, one badge) but each consumer can pull in only the skills they actually use — same model as a JS monorepo.
Skills (11)
| Skill | When it fires | What it teaches |
|---|---|---|
design-condition | Which CDR condition should I use for X? | Decision tree for picking among open / subscription / tier-gate / composable / license-read. Encoding cheatsheet per condition. |
wire-allocate-pay-read | How do I create a vault and read it? | The canonical 4-step flow (creator + consumer sides). Gotchas: OOG, uuid-from-receipt, value-must-match-price. |
debug-cdr-precompile | OOG / ReentrancySentryOOG / AlreadyConfigured / partial-collection timeout | 7 failure modes with root cause + fix. Backed by the gotchas in context/research/cdr-protocol-truth.md. |
audit-vault-config | Should I subscribe to this? / Did my deploy configure right? | 4-call view-only audit. Red-flag checklist (payee mismatch, never-expiring period, missing licenseTermsId). |
explain-cdr-error | (Any raw error message) | Lookup table from error code → root cause + fix. Maps every @piplabs/cdr-sdk error class. |
design-storage-adapter | Which storage backend for my CDR file vault? Pinata / Supabase / R2 / Storacha? | Decision tree for picking among the 6 official adapters + 3 ecosystem packages. Wiring examples, common failure modes (CORS, RLS, CID drift). |
design-multisig-condition | Multi-sig CDR vault / N-of-M approval / off-chain signing | N-of-M EIP-712 setup, signer rotation, sig-collection UX, caller binding, ECDSA-malleability dedupe, EIP-1271 gap. |
design-deadman-switch | Dead-man switch / wallet recovery / leak-on-disappearance / heartbeat | Trapdoor semantics, poke() cadence, block-vs-timestamp tradeoff, heir variants, operational risk (forgotten heartbeat). |
Plugin layout
packages/plugin/cdr-kit/
├── .claude-plugin/
│ └── plugin.json # plugin manifest (11 skills registered)
├── skills/
│ ├── design-condition/ SKILL.md
│ ├── wire-allocate-pay-read/ SKILL.md
│ ├── debug-cdr-precompile/ SKILL.md
│ ├── audit-vault-config/ SKILL.md
│ ├── explain-cdr-error/ SKILL.md
│ ├── design-storage-adapter/ SKILL.md
│ ├── design-multisig-condition/ SKILL.md
│ ├── design-deadman-switch/ SKILL.md
│ ├── design-time-window/ SKILL.md
│ ├── design-escrow/ SKILL.md
│ └── design-publish-with-story/ SKILL.md
├── references/
│ ├── conditions-cheatsheet.md # full ABI + encoding per condition
│ └── error-catalog.md # every CdrErrorCode + SDK mapping
└── README.md
Skill vs MCP vs CLI
Per the Anthropic-blessed boundary (guide): MCP = let Claude access external systems; Skill = let Claude know how to do something; CLI = the same operations exposed for a human in the terminal.
cdr-kit ships all three from one shared core: the 34 CDR operations are MCP tools in @cdr-kit/mcp; this plugin's 11 SKILL.mds teach Claude the procedural knowledge for designing, wiring, and debugging around those tools; cdr exposes the same surface for terminal use.