先说清楚:npx skills 解决的是「技能从哪来、装到哪去」

编码 agent 现在都认同一套「技能」格式:一个目录加一份 SKILL.md,写起来不难,难的是分发——同一个技能要在 Claude Code、Codex、Cursor 几台机器上各装一遍,时间一长就没人说得清哪台机器上装了什么、是从哪儿来的。npx skills(github.com/vercel-labs/skills,MIT)把「从哪个仓库取、装给哪个 agent、装到全局还是项目里」收进一条命令,支持 Claude Code、Codex、Cursor、OpenCode 等 75+ 个 agent。它本身不产出技能,是个装运工;认清了这一点,后面每一步都好理解。

第一步:先看仓库里有什么,再决定装哪个

npx skills add vercel-labs/agent-skills --list

--list 只列不装。有些仓库里技能很多、名字还很长(名字里带空格的必须加引号),先看一眼再动手,比直接 --all 把一个仓库全塞进来稳妥得多。

第二步:装一个到指定 agent,并想清楚全局还是项目内

# 装到当前项目(默认),配置随仓库走,团队共用
npx skills add vercel-labs/agent-skills --skill frontend-design -a claude-code

# 装到用户目录(-g),只影响你自己这台机器
npx skills add vercel-labs/agent-skills --skill frontend-design -g -a claude-code -y

三个开关决定落到哪:-a 指定装给哪个 agent;-g 装到用户目录,不加就是装进当前项目;-y 跳过确认,适合写进脚本或 CI。默认用符号链接指向源目录,想复制实体文件加 --copy。项目内安装会在仓库里留下配置,适合进版本管理、跟着代码一起评审;全局安装只影响本机,换机器要重来。

第三步:先不装,拿提示词跑一次

npx skills use vercel-labs/agent-skills@web-design-guidelines | claude

use 会把选中的技能写到临时目录,默认只把生成的提示词打到标准输出——所以能直接管道给 claude。想让它顺手把 agent 起起来,加 --agent claude-code。试一个新技能又不想污染本地配置时,这条最省事。

第四步:从本地目录或私有仓库装

npx skills add ./my-local-skills
npx skills add git@github.com:acme/private-skills.git

来源格式很宽:owner/repo 简写、完整的 GitHub/GitLab/Azure 地址、仓库里某个技能的完整路径、任意 git 地址,本地目录也行。私有仓库走你本机已有的凭证(git credential helper、GitHub CLI,再退到 SSH),CLI 不会去读取或打印你的 token;要显式给 API 凭证就设 GITHUB_TOKEN 或 GH_TOKEN。内部技能放私有仓库,比丢到公网省心。

第五步:来源和版本要留痕

  • 每次安装都记三件事:来源 owner/repo、装给哪个 agent、装到全局还是项目里——以后排查「这台机器上为什么有这个技能」全靠它
  • 更新前先 --list 或翻一眼仓库提交记录:技能就是「给 agent 的指令」,改一句话就可能改变它的行为
  • 项目内安装的配置随仓库走、跟着评审;全局安装不在版本管理里,换机器要重新装
  • 要锁来源就写具体路径(.../tree/main/skills/xxx)或 pin 到某个 tag、commit,别只写 owner/repo

第六步:边界,以及装之前该做什么

  • 技能 = 说明文件 + 可能附带的脚本;带安装脚本的会在你本机执行命令,装之前像看依赖一样把 SKILL.md 和脚本读一遍
  • npx 默认取包的最新版,介意的话锁住 node / npm 版本,或在 CI 里固定版本号
  • 不同 agent 的目录约定并不统一,同一个技能装到不同 agent 可能落在不同位置,别手动搬文件
  • 技能不替代权限控制:它决定 agent「会不会做」,能碰到什么由 agent 与系统权限决定
  • 清理时先看装到哪:项目内的删配置与目录,全局的要对着用户目录清,别只删源仓库
一句话:技能生态现在缺的不是「更多技能」,而是「我装了什么、从哪儿来、谁改过」——npx skills 把这件事变成一条命令加一份留痕。