前六天我们一直在讲 agent-skills 干了什么——六阶段流水线、DEFINE 三件套、反合理化机制。理论讲够了,今天落地。我想把 24 个技能装到自己的开发环境里用起来,结果光是”装”这件事就踩了一堆坑。一篇文章讲清楚:怎么装最快、哪些工具装得最干净、为什么单 skill 安装会出诡异问题、为什么 Windows/macOS 上会撞 SSH 报错。
先看路径,再选工具
agent-skills 本身只是一堆 Markdown 文件加 YAML frontmatter,不依赖任何二进制。装在哪、放哪、怎么被发现,完全是消费方工具决定的。我把目前主流的安装路径画成一张决策树:
flowchart TD
A["想用 agent-skills"] --> B{"你的诉求是什么?"}
B -->|想快、跨工具|npx["npx skills add
(CLI 通用)"]
B -->|"深度集成
原生市场"| C{"用哪个工具?"}
C -->|Claude Code|CC["/plugin marketplace add"]
C -->|Codex|CX["codex plugin marketplace add"]
C -->|Antigravity|AG["agy plugin install"]
B -->|"开发调试 / 改 skill"| GC["git clone + --plugin-dir"]
npx --> Done["✅ 装完就能用"]
CC --> Done
CX --> Done
AG --> Done
GC --> Dev["修改后重启生效"]
一句话总结:想快用 npx,想深度集成就用工具自带的插件系统,想改 skill 就 clone 仓库本地指定。
工具支持矩阵
agent-skills 当前覆盖 10 个主流 AI 编码工具。我把每个工具的安装入口、命令、默认发现路径、踩坑点列在一张表里,这是后面所有讨论的基础。
| 工具 | 安装方式 | 默认发现路径 | 关键差异/坑点 |
|---|---|---|---|
| Claude Code(推荐) | /plugin marketplace add 或 npx |
.claude/skills/、.claude/commands/ |
市场克隆走 SSH,无 key 必报错 |
| Cursor | rsync 到 .cursor/skills/ |
.cursor/skills/<name>/SKILL.md |
没有原生市场,规则和技能要分开 |
| Gemini CLI | gemini skills install <repo> |
.gemini/skills/、.agents/skills/ |
/planning 不是 /plan,注意命令冲突 |
Antigravity(agy) |
agy plugin install <repo> |
全局 ~/.gemini/antigravity-cli/plugins/ |
可从 Gemini CLI 导入旧配置 |
| OpenCode | git clone + AGENTS.md |
项目内 skills/ + AGENTS.md |
没有 slash 命令,靠意图识别 |
| Windsurf | cat 到 .windsurfrules |
.windsurfrules + 全局规则 |
上下文紧,只挑 2-3 个核心技能 |
| GitHub Copilot | 复制到 .github/skills/ |
.github/skills/、.github/agents/*.agent.md |
persona 文件必须叫 .agent.md,否则被忽略 |
| Kiro IDE / CLI | 放到 .kiro/skills/ |
.kiro/skills/ 或全局 |
支持 AGENTS.md |
| Codex | codex plugin marketplace add |
项目根 skills/ + .codex-plugin/plugin.json |
需要 Codex CLI v0.122+ |
| Command Code | cmd skills add <repo> |
.commandcode/skills/ 或 ~/.commandcode/skills/ |
支持 -s 指定单个技能 |
挑几个值得展开的,后面有专门的 Hands-on。
路径一:npx skills add(跨工具通用)
vercel-labs 维护的 skills CLI 是目前最快的安装方式——一个 npx 命令把仓库下下来,自动识别所有 SKILL.md,写入对应工具的默认目录。号称支持 70+ Agent,覆盖了上面表格里几乎所有的工具。
最常用的几条命令:
1 | # 装全部 24 个技能 |
好处:零配置、跨工具、Atomic(一次写入所有目标)。
坑:单 skill 安装只复制 skills/<name>/ 目录,不带仓库根的 references/。这一点有专门一节会讲(#361 portability gap)。
路径二:原生市场(Claude Code / Codex / Antigravity)
如果只用一两个工具,且希望走”正经”的集成路径,就用工具自带的市场命令。
Claude Code
1 | # 注册市场 |
装完之后 8 个 slash 命令直接可用:/spec /plan /build /test /review /code-simplify /webperf /ship。
Codex
1 | # Codex CLI v0.122+ |
调用方式不是 slash 命令,而是 @ 触发:@spec-driven-development、@code-review-and-quality。
Antigravity
1 | agy plugin install https://github.com/addyosmani/agent-skills.git |
Antigravity 自身就是 Gemini CLI 的下一代,注册后会落到全局插件目录 ~/.gemini/antigravity-cli/plugins/agent-skills/。
这三种”原生市场”的好处是:工具本身知道哪些技能兼容、哪些不兼容、哪些命令冲突(Gemini 的 /plan 冲突就是 Antigravity 文档里特别标注的)。npx skills add 不知道这些,所以偶有踩坑。
路径三:本地 clone + 指定插件目录(开发模式)
当你改了某个技能的 SKILL.md,或者想验证改完立即生效,就走开发模式。
1 | # 1. 拉代码 |
这种模式下,任何 skill 的修改重启会话即生效,不需要重新打包或发版。代价是仓库直接暴露在工作目录里,适合做二次开发或本地调优。
Hands-on:在 Claude Code 装一套
我自己在 macOS 上完整跑过一遍,记录每一步的真实输出。
1 | # 1. 进入 Claude Code |
报错:git@github.com: Permission denied (publickey)。
这是 Windows/macOS 上第一次用 /plugin marketplace 几乎必撞的坑。原因和解决见后面”SSH Permission denied”一节,先把流程走完。
把 SSH 切到 HTTPS 或者加 key 之后重新跑:
1 | > /plugin marketplace add https://github.com/addyosmani/agent-skills.git |
装完之后看下命令列表:
1 | > /help |
随便挑一个试一下:
1 | > /spec |
正常进入技能流程,说明装成功了。
Hands-on:在 Cursor 装一套
Cursor 的安装路径和 Claude Code 完全不一样。Cursor 没有”市场”概念,技能被发现走 .cursor/skills/,规则走 .cursor/rules/*.mdc——两边不能混着用。
1 | # 1. 准备工作目录 |
验证一下:
1 | # 看看装进去了几个 |
Cursor 的坑:
- **不要把整个 SKILL.md 粘贴进
.cursor/rules/**。规则文件应该短(less than 100 行),长流程交给技能。这是 Cursor 官方文档明确反对的反模式。 - 不要维护两份分叉。上游改动后
rsync同步,不要手改.cursor/skills/里的副本。 .cursorrules是遗留方案。新项目用.cursor/rules/*.mdc。
#361 portability gap:单 skill 安装的坑
这一节单独拎出来讲,因为踩了一次很迷。
如果用 npx skills add addyosmani/agent-skills --skill code-review-and-quality,CLI 只会把 skills/code-review-and-quality/ 这个目录复制到目标工具里。它不会复制仓库根的 references/。
这意味着什么?看 code-review-and-quality 的 SKILL.md:
1 | When doing a security review, also load references/security-checklist.md. |
references/security-checklist.md 是仓库根共享的清单,单 skill 装完之后,技能内部对它的引用全部失效。这就是 #361 跟踪的 portability gap。
我自己在 Cursor 里复现过:
1 | # 装单个 |
解决方案有三种,按推荐度排序:
1 | # 方案 A:全量装(推荐) |
经验法则:单 skill 安装只适合”临时尝鲜”。生产环境必须全量装或者 clone,否则技能之间的引用会在你最不希望的时候断掉。
SSH Permission denied(Windows/macOS 通用)
回到上面 Claude Code 装第一步的报错:git@github.com: Permission denied (publickey)。
这是因为 Claude Code 的 /plugin marketplace add 默认用 SSH 协议克隆仓库(git@github.com:addyosmani/agent-skills.git)。如果你本地没有配置 SSH key,或者 key 没加到 GitHub 账户,就直接报这个错。
两种解决办法:
第一,老老实实加 SSH key。
1 | # 生成 key |
第二,绕过去,强制 HTTPS 克隆。
1 | # 1. 直接用 HTTPS URL |
第二条是我自己在 Windows WSL + macOS 上反复测试都有效的方案。它的副作用是:你本地的所有 Git 操作(包括 worktree、submodule)都会被强制走 HTTPS。如果你的 work 流程依赖 SSH 推送(比如要 push 到 private 仓库),那这一条要慎用。
另一种折中方案:把 insteadOf 限定到 Claude Code 插件目录,而不是全局:
1 | # 只在 Claude Code 插件市场目录下生效 |
但实际操作时,插件市场的 clone 是在临时目录里进行的,全局配置对临时子进程仍然生效,所以区分这两个场景意义不大。
Windsurf / Copilot 的”老派”装法
不是所有工具都支持 SKILL.md 自动发现。Windsurf 和 GitHub Copilot 的安装路径更”土”——直接复制 SKILL.md 内容到规则文件里。
Windsurf
1 | # 拼出 .windsurfrules(只挑 2-3 个核心技能) |
Windsurf 没有”按需激活”机制,.windsurfrules 是常驻上下文。所以这里的取舍是:挑 2-3 个你最需要的技能塞进去,而不是全量。
GitHub Copilot
1 | # 复制技能 |
Copilot 的坑:
- **persona 文件必须叫
.agent.md,不能叫.md**。这一点 VS Code 文档里专门强调过,被坑过的人不少(*.md会被 Copilot 静默忽略)。 - Copilot skills 支持
.github/skills/、.claude/skills/、.agents/skills/三个目录,任何一个都可以,但只有.github/是约定俗成的。 - 同样存在 #361 的单 skill 引用问题。
我的推荐组合
最后讲讲我现在自己用的组合。
主力开发:Claude Code。原因是它有原生的 marketplace 和 plugin 机制,slash 命令和 SKILL.md 联动最顺。8 个命令基本覆盖六阶段所有日常工作。
日常 code review:Cursor。因为 Cursor 对多文件 diff 的 UI 处理比 CLI 强,且 --plugin-dir 可以和 Claude Code 共用一份仓库。
长链路规划:Command Code。/spec-driven-development 走 TUI 触发,Slash 菜单可以浏览所有 24 个技能,适合”我想看看有什么可用”。
Agent 协作:Doubt-driven。涉及不可逆改动时,把 doubt-driven-development 主动拉进 prompt,让其他 persona 一起做对抗性审视。
整套安装在一个下午搞定。如果你只想试一个,建议从 npx skills add addyosmani/agent-skills --skill test-driven-development 起步——TDD 这一件如果真按它要求的那套执行,代码质量提升肉眼可见。
明天我们横向对比一下 agent-skills vs Superpowers vs Matt Pocock 的 skills,看三套流派各自的取舍。
参考资料
- agent-skills README
- Issue #361: Per-skill install portability gap
- docs/cursor-setup.md
- docs/gemini-cli-setup.md
- docs/codex-setup.md
- docs/windsurf-setup.md
- docs/copilot-setup.md
- docs/antigravity-setup.md
- docs/opencode-setup.md
- docs/commandcode-setup.md
- docs/getting-started.md
- vercel-labs/skills CLI
- GitHub: Adding a new SSH key