📌 项目地址:vercel-labs/skills | ⭐ 20,568 颗星 | 🔧 TypeScript | 📜 未标注
用Cursor时在项目里放.cursorrules,用Claude Code时又得在.claude/instructions/里写一套。两个工具认不同目录和格式,更新时总有一边漏掉。如果你团队里还有人用Codex或OpenCode,情况更乱。
Vercel Labs的skills项目就是干这个的。它定义了一套叫“skill”的文件集合——本质是.md或.txt,描述代理在某个任务里的行为规范。核心是一个CLI工具,负责把这些文件自动装到70多个代理各自识别的目录和格式里。
项目用TypeScript写,目前20568个star。我实际试了,下面说用法和值得注意的地方。
两个命令:add 永久安装,use 临时生成
skills add:安装到项目,团队共享
把远程仓库里的skill安装到当前项目的代理配置目录。来源格式有六种,README里都列了:
# GitHub简称
npx skills add vercel-labs/agent-skills
# 完整GitHub URL
npx skills add https://github.com/vercel-labs/agent-skills
# 只取仓库内的某个子目录(一个skill)
npx skills add https://github.com/vercel-labs/agent-skills/tree/main/skills/web-design-guidelines
# GitLab URL
npx skills add https://gitlab.com/org/repo
# 任意git URL
npx skills add git@github.com:vercel-labs/agent-skills.git
# 本地路径
npx skills add ./my-local-skills
常用选项(来自README的表格):
| 选项 | 作用 |
|---|---|
-a, --agent <name> |
指定目标代理,如 claude-code、codex |
-s, --skill <name> |
只安装某个skill,用'*'装所有 |
-l, --list |
只看不装 |
-y, --yes |
跳过确认 |
--copy |
复制文件,默认用符号链接 |
-g, --global |
装到用户全局目录 |
我只想给Claude Code装“web-design-guidelines”这一个,跳过提示:
npx skills add vercel-labs/agent-skills --skill web-design-guidelines --agent claude-code -y
安装后,文件被放到.claude/instructions/(Claude Code的目录),用符号链接指向本地缓存的skill内容。如果远程仓库有更新,需要重新执行一次add才能拉取新内容。add本身没有--update参数,重新执行会覆盖之前的symlink。用--copy则生成独立副本,适合锁定版本。
skills use:临时生成提示,管道或启动代理
use和add解析来源的方式一样,但它不写进项目文件——把skill写到临时目录,只把生成的提示输出到stdout。如果加了--agent,直接启动对应的代理交互界面。
# 生成提示词,通过管道传给claude命令
npx skills use vercel-labs/agent-skills@web-design-guidelines | claude
# 直接启动交互式Claude Code
npx skills use vercel-labs/agent-skills --skill web-design-guidelines --agent claude-code
这个适合一次性任务。比如我想让Claude按某个设计规范写一个组件,用一次就丢,不必在项目里留下任何文件。
设计上两个值得说的点
没有官方市场。 每个GitHub仓库就是一个skill源,npx skills add owner/repo直接用。团队可以把内部规范放私有仓库,一条命令同步。和早期npm类似,发布门槛低,质量靠社区筛选。目前官方仓库vercel-labs/agent-skills里有几十个预置skill,比如web-design-guidelines、technical-writer、security-review。
默认用符号链接,而非复制。 符号链接节省磁盘空间,也便于识别哪些文件是由skills管理的。--copy则复制独立文件,适合想锁定skill版本的场景。注意:远程仓库更新后,需要重新执行add才能拉取新内容,不会自动同步。如果不是--copy,重新add会更新符号链接指向的缓存,但不会破坏项目内被引用的路径(因为symlink本身不变,但指向的缓存内容变了)。不过团队如果想确保每次拉取最新版本,可以用use(每次重新拉取)配合--agent启动。
我试了一次
在我的React项目里装了web-design-guidelines给Claude Code用:
cd my-react-app
npx skills add vercel-labs/agent-skills --skill web-design-guidelines --agent claude-code
终端显示安装成功。之后用Claude Code写组件时,代理自动按那个skill里的规则生成代码,比如“使用Tailwind CSS”、“遵循无障碍标准”等。省去了手动复制规则。
总结
如果你同时用多个编码代理,或者团队需要统一代理行为规范,skills是一个轻量且直接的方案。没有复杂的概念,两个命令覆盖永久安装和临时使用,支持多种源格式和70+代理。缺点是目前没有版本锁定机制(除非用--copy),需要团队自己管理更新节奏。但胜在简单,一行npx skills add就能让所有代理用上同一套规范。