GitHub 趋势 · 第 28 期

那条 npx skills add 你敲了很多次,它的真身是个 31k star 的技能包管理器

#Agent技能#CLI工具#MIT

我的判断:vercel-labs/skills 本身不是技能,它是技能的“分发通道”。过去十几期里我们写过一堆技能仓库,安装方式十有八九就是那句 npx skills add owner/repo。这一期终于该回头拆一拆:这条命令到底是谁写的、它把你的文件放到了哪里、以及它替你做掉了哪些你其实应该知道的决定。

痛点场景:技能生态现在最乱的地方是“往哪儿装”。Claude Code 读 ~/.claude/skills/,Codex 读 ~/.codex/skills/,Cursor、OpenCode、Copilot 又各有各的目录。你一个人同时用三四个客户端,同一个技能就要手动复制三份;哪天原作者更新了,你还得记着自己复制过几份、分别在哪。

项目是什么

vercel-labs/skills 是 Vercel 实验室开源的 Agent Skills 生态 CLI,README 第一句自我定位只有一行:「The CLI for the open agent skills ecosystem」——开放技能生态的命令行工具。它做的事很朴素:从一个 Git 仓库(或本地目录、或一个下载链接)里把 SKILL.md 找出来,然后分发到你所有编码客户端各自的技能目录里。README 里那句话说的是「Supports OpenCode, Claude Code, Codex, Cursor, and 75 more」——官方列出 79 个客户端,从 Anthropic、OpenAI 到 Trae、通义灵码(Lingma)、Qoder 都在表里。

它解决的不是“技能有没有用”,而是“技能怎么送到你要用的那个客户端里”。换句话说,它是这个生态里的 npm——尽管它自己只是 npx 跑起来的一个包。

核心能力

命令作用(说明取自 README)
skills add / install从仓库安装技能。支持 owner/repo 简写、完整 GitHub URL、仓库内某个技能的直达路径、GitLab URL、任意 git URL、本地目录,也支持直接给一个 SKILL.md 或压缩包下载地址
skills use不安装,只把某个技能渲染成提示词。可接管道直接喂给客户端,也可用 --agent 拉起一个支持的客户端交互执行
skills list列出已安装技能,类似 npm ls。可只看全局(-g),也可按客户端过滤
skills find搜索技能:交互式(fzf 风格)、按关键词,或按组织/用户维度搜(--owner)
skills update把已装技能更新到最新。可按名指定、可只更新全局(-g)或只更新项目(-p),-y 跳过交互
skills remove卸载技能,别名 rm。支持按客户端、按技能、通配符批量清(--all 等于 --skill '*' --agent '*' -y)
skills init在当前目录生成一个 SKILL.md 模板,或在新子目录里初始化一个新技能

安装范围是这套工具最需要先搞懂的一点,README 给了定义:

范围参数位置用途
项目(默认)./<agent>/skills/跟项目一起提交,和团队共享
全局-g~/<agent>/skills/所有项目里都能用

上手

不需要单独安装,README 给的入口就是 npx(原文):

npx skills add vercel-labs/agent-skills

几个最常用的变体(均取自 README 原文):

# 只看看仓库里有什么技能,先不装
npx skills add vercel-labs/agent-skills --list

# 只装指定技能,并指定装到哪些客户端
npx skills add vercel-labs/agent-skills -a claude-code -a opencode

# CI / 脚本里非交互安装(全局 + 指定客户端 + 跳过确认)
npx skills add vercel-labs/agent-skills --skill frontend-design -g -a claude-code -y

# 装一个技能名里带空格的技能(必须加引号)
npx skills add owner/repo --skill "Convex Best Practices"

# 不安装,直接生成提示词喂给客户端
npx skills use vercel-labs/agent-skills@web-design-guidelines | claude
npx skills use vercel-labs/agent-skills --skill web-design-guidelines --agent claude-code

# 日常维护
npx skills list
npx skills find typescript
npx skills update -y
npx skills remove web-design-guidelines

自己写技能也一样简单,README 里的最小骨架只有两行前置字段:

---
name: my-skill
description: What this skill does and when to use it
---

# My Skill

Instructions for the agent to follow when this skill is activated.

namedescription 是必填,其余可省。写完之后 npx skills init 直接生成模板,推到 GitHub 别人就能用同样的命令装。

我的判断

适合谁:同时用两个以上编码客户端的人(比如日常 Claude Code + 偶尔 Codex),它能让你不必再手工复制目录;把技能当成团队资产、要跟着仓库一起提交共享的团队;以及想“先试试再装”、用 skills use 零污染试跑的人。

不适合谁:只用单一客户端、且对技能目录已经没有困扰的人——它带来的增量有限;以及在意每一行脚本都要自己审的人——它会自动发现并拉取你指定来源里的全部 SKILL.md

几个坑(均来自 README 原文):

  • 默认是项目级安装,会被提交进仓库。不加 -g 就装到 ./<agent>/skills/,README 明确写着它的用途是“跟项目一起提交、和团队共享”。想只在本地用,别忘了 -g,否则一次手滑就把第三方技能写进了团队的 git 历史。
  • 默认用 symlink,多个客户端共享一份。README 推荐的方式是从各客户端目录软链到一份 canonical 副本,好处是单一真相源、更新方便;代价是你得理解“删掉本地那份原始目录”会连带影响所有客户端。只有 symlink 不被支持时才用 --copy 生成独立副本。
  • “一次安装”不等于“行为一致”。README 有一张兼容性表:allowed-tools 在 Kiro CLI 和 Zencoder 上是 No;context: fork 只有 Claude Code 支持;Hooks 只有 Claude Code、Cline、Kiro CLI 三家能用。装到别的客户端里,同一份技能可能只剩基础能力。
  • 它默认会上报匿名使用数据。README 的 Telemetry 一节写明会收集匿名使用数据(不含个人信息),仓库与技能的标识符只对“GitHub 已确认为公开”的仓库发送;但其他远程来源类型因为无法核验可见性,安装遥测里可能包含来源与技能标识符。介意就把 DISABLE_TELEMETRY=1DO_NOT_TRACK=1 设上。
  • 来源可以任意,所以它也是供应链入口。它支持 GitLab、任意 git URL,甚至一个直接指向 SKILL.md 或 zip / tar.gz 的下载地址。README 也给了下载与解压的默认上限(下载 10 MiB、解压 25 MiB、最多 1000 个文件),想放开得手动设 SKILLS_DOWNLOAD_MAX_BYTESSKILLS_EXTRACT_MAX_BYTESSKILLS_EXTRACT_MAX_FILES——README 原话是“when you trust the source”。我们在第 23 期写过 NVIDIA SkillSpector:实测 4 万多个技能里有 26.1% 含漏洞。装之前先看来源,这句话在这里同样成立。
  • 技能发现是有深度的。它在容器目录里最多往下走三层,浅层的 SKILL.md 会遮蔽更深层的;仓库里如果把技能放在 examples/tests/ 下,默认扫不到,要用 --full-depth。另外标了 metadata.internal: true 的技能默认隐藏,要 INSTALL_INTERNAL_SKILLS=1 才可见——如果你“明明推上去了同事装不到”,先查这两个原因。
  • 私有仓库不需要额外配置:它复用你本机已有的 git 凭证、GitHub CLI 或 SSH 认证,只是在 GitHub 场景下会依次尝试——先普通 git 凭证,失败再试 gh repo clone,最后 SSH。CI 里可以显式给 GITHUB_TOKEN / GH_TOKEN。Node 版本方面,仓库 CI 的提交记录要求 Node.js 22.20 或更新——老环境记得先升 Node。

仓库:github.com/vercel-labs/skills

总 star:31,013(截至 2026-09-11,今日 +175;周增 +175)

许可证:MIT

客户端支持:README 列出 79 个(OpenCode、Claude Code、Codex、Cursor 及 75 个更多)

抓取时间:2026-09-11 01:26(GMT+8)

你现在同时用几个编码客户端?技能是挨个手工丢进去的,还是已经开始用工具统一管?评论区说说你的做法,我挑几个典型场景一起捋。

下期预告:nashsu/llm_wiki(17,942 star)——它不想再走「每次问都从头检索」的 RAG 老路,而是把你的文档增量地养成本地一本互链的 wiki。桌面端、本地优先,值得单独聊一期。

#Agent技能#CLI工具#MIT