重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
npx skills add https://github.com/commontoolsinc/labs --skill ctct 二进制文件是 CommonTools 的命令行界面。使用 --help 查看当前命令:
deno task ct --help # 顶层命令
deno task ct piece --help # 组件操作
deno task ct check --help # 类型检查
身份密钥(大多数操作所需):
ls -la claude.key # 检查是否存在
# 对于本地开发:派生与 toolshed 的"隐式信任"身份匹配的密钥
deno run -A packages/cli/mod.ts id derive "implicit trust" > claude.key
# 对于全新的随机密钥(例如,用于生产环境):
deno run -A packages/cli/mod.ts id new > claude.key
重要提示: 请勿使用 deno task ct id new > file — deno task 包装器会向标准输出打印 ANSI 彩色前言,这会污染密钥文件。重定向输出时,请始终使用 deno run -A packages/cli/mod.ts。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
环境变量(避免重复使用标志):
export CT_API_URL=http://localhost:8000 # 或 https://toolshed.saga-castor.ts.net/
export CT_IDENTITY=./claude.key
实验性标志(必须在服务器和 CLI 命令上同时设置):
# 将实验环境变量传递给 CLI 命令:
EXPERIMENTAL_CANONICAL_HASHING=true \
EXPERIMENTAL_RICH_STORABLE_VALUES=true \
deno task ct piece new pattern.tsx ...
有关所有可用标志,请参阅 docs/development/EXPERIMENTAL_OPTIONS.md。
本地服务器:请参阅 docs/development/LOCAL_DEV_SERVERS.md
| 操作 | 命令 |
|---|---|
| 类型检查 | deno task ct check pattern.tsx --no-run |
| 部署新组件 | deno task ct piece new pattern.tsx -i key -a url -s space |
| 更新现有组件 | deno task ct piece setsrc pattern.tsx --piece ID -i key -a url -s space |
| 检查状态 | deno task ct piece inspect --piece ID ... |
| 获取字段 | deno task ct piece get --piece ID fieldPath ... |
| 设置字段 | `echo '{"data":...}' |
| 调用处理器 | deno task ct piece call --piece ID handlerName ... |
| 触发重新计算 | deno task ct piece step --piece ID ... |
| 列出组件 | deno task ct piece ls -i key -a url -s space |
| 可视化 | deno task ct piece map ... |
deno task ct check 编译并评估模式。关键标志:
| 标志 | 用途 |
|---|---|
--no-run | 仅进行类型检查,不执行 |
--no-check | 执行而不进行类型检查 |
--show-transformed | 显示编译后的转换后的 TypeScript |
--verbose-errors | 在简化提示旁显示原始 TS 错误 |
--pattern-json | 将评估后的模式导出打印为 JSON |
--output <path> | 将编译后的 JS 存储到文件 |
--main-export <name> | 选择非默认导出(默认:"default") |
--filename <name> | 覆盖源映射的文件名 |
常见用法:
deno task ct check pattern.tsx # 编译 + 执行(成功时静默)
deno task ct check pattern.tsx --no-run # 仅进行类型检查(快速)
deno task ct check pattern.tsx --no-check # 跳过类型检查,仅执行
deno task ct check pattern.tsx --show-transformed # 调试编译器转换
deno task ct check pattern.tsx --verbose-errors # 详细的错误上下文
关键模式: 初始部署后,使用 setsrc 进行迭代:
# 仅首次使用
deno task ct piece new pattern.tsx ...
# 输出:Created piece bafyreia... <- 保存此 ID!
# 所有后续迭代
deno task ct piece setsrc pattern.tsx --piece bafyreia... ...
原因: new 会创建重复的组件。setsrc 则原地更新。
所有传递给 set 和 call 的值必须是有效的 JSON:
# 字符串需要嵌套引号
echo '"hello world"' | deno task ct piece set ... title
# 数字是裸值
echo '42' | deno task ct piece set ... count
# 对象
echo '{"name": "John"}' | deno task ct piece set ... user
set 或 call 之后必须执行 steppiece set 和 piece call 都不会自动触发重新计算。在任一操作之后,您必须运行 piece step 才能获取新的计算值。
# 设置数据后:
echo '[...]' | deno task ct piece set --piece ID expenses ...
deno task ct piece step --piece ID ... # 必需!
deno task ct piece get --piece ID totalSpent ...
# 调用处理器后:
deno task ct piece call --piece ID addItem '{"title": "Test"}'
deno task ct piece step --piece ID ... # 必需!
deno task ct piece inspect --piece ID ...
处理器测试工作流(部署 → 调用 → 步进 → 检查):
# 1. 部署
deno task ct piece new pattern.tsx -i key -a url -s space
# 2. 调用处理器
deno task ct piece call --piece ID handlerName '{"arg": "value"}' ...
# 3. 步进处理
deno task ct piece step --piece ID ...
# 4. 检查结果
deno task ct piece inspect --piece ID ...
# 5. 为每个处理器重复步骤 2-4
完整工作流请参阅 docs/common/workflows/handlers-cli-testing.md,调试请参阅 docs/development/debugging/cli-debugging.md。
| 问题 | 解决方法 |
|---|---|
| 命令挂起 | 检查 *.ts.net URL 的 Tailnet 连接 |
| 权限被拒绝 | chmod 600 claude.key |
| JSON 解析错误 | 检查嵌套引号,无尾随逗号 |
| 本地服务器无响应 | ./scripts/check-local-dev.sh 然后 ./scripts/restart-local-dev.sh --force |
packages/patterns/system/default-app.tsx - 系统组件(allCharms 列表在此处)docs/common/workflows/handlers-cli-testing.md - 处理器测试docs/development/debugging/cli-debugging.md - CLI 调试每周安装数
40
代码仓库
GitHub 星标数
30
首次出现
2026年1月21日
安全审计
安装于
opencode39
gemini-cli39
antigravity39
codebuddy39
github-copilot39
codex39
The ct binary is the CLI for CommonTools. Use--help for current commands:
deno task ct --help # Top-level commands
deno task ct piece --help # Piece operations
deno task ct check --help # Type checking
Identity key (required for most operations):
ls -la claude.key # Check for existing
# For local dev: derive key matching toolshed's "implicit trust" identity
deno run -A packages/cli/mod.ts id derive "implicit trust" > claude.key
# For a fresh random key (e.g., against production):
deno run -A packages/cli/mod.ts id new > claude.key
IMPORTANT: Do NOT use deno task ct id new > file — the deno task wrapper prints ANSI-colored preamble to stdout, which pollutes the key file. Always use deno run -A packages/cli/mod.ts when redirecting output.
Environment variables (avoid repeating flags):
export CT_API_URL=http://localhost:8000 # or https://toolshed.saga-castor.ts.net/
export CT_IDENTITY=./claude.key
Experimental flags (must be set on both servers AND CLI commands):
# Pass experiment env vars to CLI commands:
EXPERIMENTAL_CANONICAL_HASHING=true \
EXPERIMENTAL_RICH_STORABLE_VALUES=true \
deno task ct piece new pattern.tsx ...
See docs/development/EXPERIMENTAL_OPTIONS.md for all available flags.
Local servers : See docs/development/LOCAL_DEV_SERVERS.md
| Operation | Command |
|---|---|
| Type check | deno task ct check pattern.tsx --no-run |
| Deploy new | deno task ct piece new pattern.tsx -i key -a url -s space |
| Update existing | deno task ct piece setsrc pattern.tsx --piece ID -i key -a url -s space |
| Inspect state | deno task ct piece inspect --piece ID ... |
| Get field | deno task ct piece get --piece ID fieldPath ... |
| Set field |
deno task ct check compiles and evaluates patterns. Key flags:
| Flag | Purpose |
|---|---|
--no-run | Type check only, don't execute |
--no-check | Execute without type checking |
--show-transformed | Show the transformed TypeScript after compilation |
--verbose-errors | Show original TS errors alongside simplified hints |
--pattern-json | Print the evaluated pattern export as JSON |
--output <path> |
Common usage:
deno task ct check pattern.tsx # Compile + execute (quiet on success)
deno task ct check pattern.tsx --no-run # Type check only (fast)
deno task ct check pattern.tsx --no-check # Skip types, just execute
deno task ct check pattern.tsx --show-transformed # Debug compiler transforms
deno task ct check pattern.tsx --verbose-errors # Detailed error context
Critical pattern: After initial deployment, use setsrc to iterate:
# First time only
deno task ct piece new pattern.tsx ...
# Output: Created piece bafyreia... <- Save this ID!
# ALL subsequent iterations
deno task ct piece setsrc pattern.tsx --piece bafyreia... ...
Why: new creates duplicate pieces. setsrc updates in-place.
All values to set and call must be valid JSON:
# Strings need nested quotes
echo '"hello world"' | deno task ct piece set ... title
# Numbers are bare
echo '42' | deno task ct piece set ... count
# Objects
echo '{"name": "John"}' | deno task ct piece set ... user
step After set or callNeither piece set nor piece call triggers recomputation automatically. You must run piece step after either one to get fresh computed values.
# After setting data:
echo '[...]' | deno task ct piece set --piece ID expenses ...
deno task ct piece step --piece ID ... # Required!
deno task ct piece get --piece ID totalSpent ...
# After calling a handler:
deno task ct piece call --piece ID addItem '{"title": "Test"}'
deno task ct piece step --piece ID ... # Required!
deno task ct piece inspect --piece ID ...
Handler testing workflow (deploy → call → step → inspect):
# 1. Deploy
deno task ct piece new pattern.tsx -i key -a url -s space
# 2. Call a handler
deno task ct piece call --piece ID handlerName '{"arg": "value"}' ...
# 3. Step to process
deno task ct piece step --piece ID ...
# 4. Inspect result
deno task ct piece inspect --piece ID ...
# 5. Repeat 2-4 for each handler
See docs/common/workflows/handlers-cli-testing.md for the full workflow and docs/development/debugging/cli-debugging.md for debugging.
| Issue | Fix |
|---|---|
| Commands hang | Check Tailnet connection for *.ts.net URLs |
| Permission denied | chmod 600 claude.key |
| JSON parse error | Check nested quotes, no trailing commas |
| Local servers not responding | ./scripts/check-local-dev.sh then ./scripts/restart-local-dev.sh --force |
packages/patterns/system/default-app.tsx - System pieces (allCharms list lives here)docs/common/workflows/handlers-cli-testing.md - Handler testingdocs/development/debugging/cli-debugging.md - CLI debuggingWeekly Installs
40
Repository
GitHub Stars
30
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykPass
Installed on
opencode39
gemini-cli39
antigravity39
codebuddy39
github-copilot39
codex39
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
127,000 周安装
| `echo '{"data":...}' |
| Call handler | deno task ct piece call --piece ID handlerName ... |
| Trigger recompute | deno task ct piece step --piece ID ... |
| List pieces | deno task ct piece ls -i key -a url -s space |
| Visualize | deno task ct piece map ... |
| Store compiled JS to a file |
--main-export <name> | Select non-default export (default: "default") |
--filename <name> | Override filename for source maps |