Claude-skill-registry ct
Guide for using the ct (CommonTools) binary to interact with charms,
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/ct" ~/.claude/skills/majiayu000-claude-skill-registry-ct && rm -rf "$T"
manifest:
skills/data/ct/SKILL.mdsource content
CT CLI
The
ct binary is the CLI for CommonTools. Use --help for current commands:
deno task ct --help # Top-level commands deno task ct charm --help # Charm operations deno task ct check --help # Type checking
Environment Setup
Identity key (required for most operations):
ls -la claude.key # Check for existing deno task ct id new > claude.key # Create if missing
Environment variables (avoid repeating flags):
export CT_API_URL=http://localhost:8000 # or https://toolshed.saga-castor.ts.net/ export CT_IDENTITY=./claude.key
Local servers: See
docs/development/LOCAL_DEV_SERVERS.md
Quick Command Reference
| Operation | Command |
|---|---|
| Type check | |
| Deploy new | |
| Update existing | |
| Inspect state | |
| Get field | |
| Set field | |
| Call handler | |
| Trigger recompute | |
| List charms | |
| Visualize | |
Core Workflow: setsrc vs new
Critical pattern: After initial deployment, use
setsrc to iterate:
# First time only deno task ct charm new pattern.tsx ... # Output: Created charm bafyreia... <- Save this ID! # ALL subsequent iterations deno task ct charm setsrc pattern.tsx --charm bafyreia... ...
Why:
new creates duplicate charms. setsrc updates in-place.
JSON Input Format
All values to
set and call must be valid JSON:
# Strings need nested quotes echo '"hello world"' | deno task ct charm set ... title # Numbers are bare echo '42' | deno task ct charm set ... count # Objects echo '{"name": "John"}' | deno task ct charm set ... user
Gotcha: Stale Computed Values
charm set does NOT trigger recompute. Run charm step after:
echo '[...]' | deno task ct charm set --charm ID expenses ... deno task ct charm step --charm ID ... # Required! deno task ct charm get --charm ID totalSpent ...
See
docs/development/debugging/cli-debugging.md for debugging patterns.
Troubleshooting
| Issue | Fix |
|---|---|
| Commands hang | Check Tailnet connection for URLs |
| Permission denied | |
| JSON parse error | Check nested quotes, no trailing commas |
| Local servers not responding | |
References
- System charms (allCharms list lives here)packages/patterns/system/default-app.tsx
- Handler testingdocs/common/workflows/handlers-cli-testing.md
- CLI debuggingdocs/development/debugging/cli-debugging.md