cnb-rs skill
cnb-rs skill <subcommand>管理 AI agent skills,对齐 agentskills.io 规范。
「skill」是一个能被 AI agent (Claude Code / Windsurf / Cursor / Codeium / GitHub Copilot Chat 等 55+ 家) 在运行时 discover 并 invoke 的目录单元:
- 根目录是
skills/<name>/,必含SKILL.md(含 frontmattername/description等元数据) - 可含任意子目录与文件(
references//templates//assets//scripts/...),都会被一并下载 - 与
gh skill/vercel-skills共享 lockfile(~/.agents/.skill-lock.jsonschema v3),三家工具装的 skill 互相可见
别名:
cnb-rs skill/cnb-rs skills两者完全等价。
可用命令
| 子命令 | Phase | 说明 |
|---|---|---|
cnb-rs skill install | 1 | 从 CNB 仓库装 skill 到本地 AI agent(递归下载所有文件 + 注入 cnb-* 元数据) |
cnb-rs skill list(ls) | 1 | 列出已装的 cnb skill(仅显示 sourceType: "cnb" 的 entry,含 ref / agents 等) |
cnb-rs skill update | 2 | 升级已装的 cnb skill 到上游最新 ref(sha 比对 + up-to-date 跳过 + pinned 保护) |
cnb-rs skill remove(rm) | 2 | 卸载 skill:删 canonical + 各 agent 目录 + 移 lockfile entry;--keep-files 保留 |
cnb-rs skill preview | 2 | 不下载不写盘,仅打 SKILL.md 内容到 stdout(stdout/stderr 严格分离) |
cnb-rs skill init | 2 | 在目标目录生成 SKILL.md 模板(含 frontmatter + 中文引导,纯本地 0 网络) |
安装位置
skill 在每个 agent 对应目录下都有一份(symlink,Windows 自动 fallback 到 copy);canonical 副本在 <base>/.agents/skills/<name>/:
| Scope | base dir | 说明 |
|---|---|---|
project(默认) | 当前 git repo root | 装到项目,跟仓库走 |
user | $HOME | 装到当前用户,所有项目可见 |
| 自定义 | --dir <PATH> | 测试 / 临时安装;忽略 --scope |
每个 agent 还会拿到一份 symlink 在自己的 skills 目录:
| Agent | 目录约定 |
|---|---|
| claude-code | <base>/.claude/skills/<name> |
| windsurf | <base>/.codeium/windsurf/skills/<name> |
| cursor | <base>/.cursor/skills/<name> |
| codeium | <base>/.codeium/skills/<name> |
| ... | (完整列表见 [vercel-skills agents.ts]) |
与 lockfile 共享生态
~/.agents/.skill-lock.json(schema v3)记录所有已装 skill;三家工具各自只 list 自家 sourceType,但都会原样保留 (pass-through) 对方写的字段:
| 工具 | sourceType | list 命令 |
|---|---|---|
| cnb-rs | cnb | cnb-rs skill list |
| gh skill | github | gh skill list |
| vercel-skills | vercel | vercel skills list |
端到端示例:完整 skill 生命周期
bash
# ─── 装 ───
# 装仓库 skills/ 下所有 skill 到 project scope,自动 detect agent
$ cnb-rs skill install wwvo/cnb-rs/cnb-rs-skills
# 只装指定 skill 名(空格分隔)
$ cnb-rs skill install wwvo/cnb-rs/cnb-rs-skills skill-foo skill-bar
# 锁到指定 ref(branch / tag / commit)+ 装到 user scope
$ cnb-rs skill install wwvo/cnb-rs/cnb-rs-skills --pin v1.0.0 --scope user
# 显式指定 target agent(comma 分隔)
$ cnb-rs skill install wwvo/cnb-rs/cnb-rs-skills --agent claude-code,windsurf
# 装到自定义目录(测试用)
$ cnb-rs skill install wwvo/cnb-rs/cnb-rs-skills --dir /tmp/test-skills
# ─── 看 ───
# 列出已装 cnb skill(人类可读表格)
$ cnb-rs skill list
$ cnb-rs skill ls # alias
# JSON 输出(脚本调用)
$ cnb-rs skill list --json
# 装之前先预览 SKILL.md(不下载、不写盘)
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills skill-foo
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills@v0.1.0 skill-foo # 看特定 tag
# ─── 升 ───
$ cnb-rs skill update --all # 升所有非 pinned
$ cnb-rs skill update skill-foo # 升单个
$ cnb-rs skill update --all --force # 强制升(含 pinned)
# ─── 卸 ───
$ cnb-rs skill remove skill-foo # 删文件 + 移 lockfile entry
$ cnb-rs skill rm skill-foo # alias
$ cnb-rs skill remove skill-foo --keep-files # 保留磁盘文件
# ─── 写新 skill ───
$ mkdir my-new-skill && cd my-new-skill
$ cnb-rs skill init # 生成 SKILL.md 模板
$ $EDITOR SKILL.md # 编辑骨架另请参阅
- cnb-rs
- agentskills.io — skill 规范(SKILL.md frontmatter / discovery 协议)