如果你用过 Claude Code,一定对它的技能系统印象深刻——轻轻一句"帮我创建一个 PDF",Claude 就能调用内置的 PDF 工具,自动完成复杂的操作。但问题来了:这套好用的技能系统,能不能用在其他 AI 编码代理上呢?比如 Cursor、Windsurf、Aider 或者 Codex?
这就是 OpenSkills 诞生的初衷。
什么是 OpenSkills?
OpenSkills 是一个通用的 AI 编码代理技能加载器。它把 Anthropic 的技能系统带到了每一个 AI 编码代理——不管你是用 Claude Code、Cursor、Windsurf、Aider、Codex,还是任何能读取 AGENTS.md 的工具。
简单来说,OpenSkills 就是 SKILL.md 的通用安装器。
它的核心理念可以用三句话概括:
- One CLI:一个命令行工具
- Every agent:支持所有 AI 编码代理
- Same format as Claude Code:与 Claude Code 完全相同的格式
为什么选择 OpenSkills?
完全兼容 Claude Code
OpenSkills 使用与 Claude Code 完全相同的 prompt 格式、相同的市场(marketplace)、相同的文件夹结构。这意味着你在 Claude Code 里用的技能,可以直接迁移到其他代理上。
真正的通用性
不管你用哪个 AI 编码代理——Claude Code、Cursor、Windsurf、Aider、Codex,甚至是未来出现的新工具——只要它能读取 AGENTS.md,就能使用 OpenSkills 安装的技能。
渐进式披露
技能只在需要时加载,保持代理的上下文干净、专注。你不用担心技能太多会干扰代理的工作。
仓库友好
技能保存在你的项目里,可以被版本控制。你可以把技能配置提交到 Git,团队成员克隆项目后就能使用相同的技能。
私有友好
你可以从本地路径或私有 Git 仓库安装技能,不用担心敏感信息泄露。
快速开始
前置要求
使用 OpenSkills 前,请确保你的系统满足以下条件:
- Node.js 20.6+
- Git(用于克隆仓库)
你可以通过以下命令检查版本:
node --version # 应显示 v20.6.0 或更高
git --version
安装第一个技能
让我们从 Anthropic 的官方技能市场开始:
npx openskills install anthropics/skills
这个命令会从 GitHub 的 anthropics/skills 仓库下载所有可用的技能。
同步 AGENTS.md
安装完技能后,你需要生成或更新 AGENTS.md 文件,这样你的 AI 代理才能知道有哪些技能可用:
npx openskills sync
执行后,你会在项目根目录看到一个 AGENTS.md 文件。打开它,你会看到类似这样的内容:
<skills_system priority="1">
## Available Skills
<usage>
When users ask you to perform tasks, check if any of the available skills below can help complete the task more effectively.
How to use skills:
- Invoke: `npx openskills read <skill-name>` (run in your shell)
- The skill content will load with detailed instructions
- Base directory provided in output for resolving bundled resources
...
</usage>
<available_skills>
<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit for extracting text and tables...</description>
<location>project</location>
</skill>
...
</available_skills>
</skills_system>
现在,你的 AI 代理就能看到这个技能列表了!
核心命令详解
OpenSkills 提供了一系列命令来管理技能。让我们逐一了解:
install — 安装技能
npx openskills install <source> [options]
从 GitHub 仓库安装:
npx openskills install anthropics/skills
从本地路径安装:
npx openskills install ./local-skills/my-skill
从私有 Git 仓库安装:
npx openskills install git@github.com:your-org/private-skills.git
常用选项:
--global:安装到全局目录~/.claude/skills--universal:安装到.agent/skills/(用于多代理设置)
默认情况下,技能会安装到项目的本地目录 ./.claude/skills。
sync — 同步 AGENTS.md
npx openskills sync [options]
这个命令会扫描已安装的技能,并生成或更新 AGENTS.md 文件。
常用选项:
-y, --yes:跳过确认提示(适合 CI/CD 环境)-o, --output <path>:指定输出文件路径(默认:AGENTS.md)
示例:
npx openskills sync -y -o ./config/AGENTS.md
list — 列出已安装的技能
npx openskills list
这个命令会显示当前项目中已安装的所有技能。
read — 读取技能内容
npx openskills read <name>
这个命令会加载指定技能的完整内容。这通常在 AI 代理决定使用某个技能时调用。
示例:
npx openskills read pdf
你也可以一次读取多个技能,用逗号分隔:
npx openskills read pdf,docx,xlsx
update — 更新技能
npx openskills update [name...]
这个命令会从源仓库获取最新版本的技能。
更新所有技能:
npx openskills update
更新特定技能:
npx openskills update skill-name
manage / remove — 移除技能
交互式管理:
npx openskills manage
这个命令会启动交互式界面,让你选择要移除的技能。
直接移除特定技能:
npx openskills remove <name>
示例:
npx openskills remove pdf
工作原理深度解析
要真正理解 OpenSkills 的价值,我们需要深入了解它的工作原理。
Claude Code 的技能系统
Claude Code 的技能系统基于 SKILL.md 文件。当你在 Claude Code 中工作时,它会暴露一个 <available_skills> XML 块,告诉你有哪些技能可用。
当用户提出任务请求时,Claude 会动态加载匹配的技能。
<available_skills>
<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit for extracting text and tables...</description>
<location>plugin</location>
</skill>
</available_skills>
OpenSkills:相同的格式,通用的加载器
OpenSkills 生成完全相同的 <available_skills> XML,并放在你的 AGENTS.md 文件中。任何能读取 AGENTS.md 的代理都能看到这些技能。
当代理决定使用某个技能时,它会运行:
npx openskills read <skill-name>
OpenSkills 会加载技能的完整内容(SKILL.md 文件),代理就能按照指令执行任务。
对比:Claude Code vs OpenSkills
| 特性 | Claude Code | OpenSkills |
|---|---|---|
| Prompt 格式 | <available_skills> XML |
完全相同的 XML |
| 技能存储 | .claude/skills/ |
.claude/skills/(默认) |
| 调用方式 | Skill("name") 工具 |
npx openskills read <name> |
| 市场 | Anthropic marketplace | GitHub (anthropics/skills) |
| 渐进式披露 | ✅ | ✅ |
正如你所见,OpenSkills 完全兼容 Claude Code 的技能系统,但把它带到了更广泛的生态系统中。
AGENTS.md 格式详解
当你运行 npx openskills sync 时,OpenSkills 会生成类似这样的 AGENTS.md:
<skills_system priority="1">
## Available Skills
<!-- SKILLS_TABLE_START -->
<usage>
When users ask you to perform tasks, check if any of the available skills below can help complete the task more effectively.
How to use skills:
- Invoke: `npx openskills read <skill-name>` (run in your shell)
- The skill content will load with detailed instructions
- Base directory provided in output for resolving bundled resources
Usage notes:
- Only use skills listed in <available_skills> below
- Do not invoke a skill that is already loaded in your context
</usage>
<available_skills>
<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit for extracting text and tables...</description>
<location>project</location>
</skill>
</available_skills>
<!-- SKILLS_TABLE_END -->
</skills_system>
这个文件告诉 AI 代理:
- 有哪些技能可用 —— 在
<available_skills>块中列出 - 如何使用技能 —— 通过
npx openskills read <skill-name>调用 - 注意事项 —— 只使用列出的技能,不要重复加载
MCP vs OpenSkills:厘清概念
很多人会有疑问:MCP(Model Context Protocol)和 OpenSkills 有什么区别?我应该用哪个?
关键区别
MCP 是为动态工具设计的。 它需要一个服务器运行,通过协议与代理通信。适合需要实时交互、动态生成工具的场景。
Skills 是静态指令 + 资源。 它们只是文件,不需要服务器,不需要协议。Skill 包含一组固定的指令和资源(脚本、参考文档等),代理按需读取。
简单类比
- MCP 像 API:实时、动态、需要连接
- Skills 像文档:静态、离线、即插即用
什么时候用哪个?
| 场景 | 推荐方案 |
|---|---|
| 需要实时查询数据库 | MCP |
| 需要动态生成代码 | MCP |
| 有一组固定的工具脚本 | OpenSkills |
| 想复用 Claude Code 的技能 | OpenSkills |
| 需要在离线环境工作 | OpenSkills |
MCP 和 Skills 解决的是不同问题。OpenSkills 让 Skills 保持轻量级和通用性,不需要依赖 MCP 的复杂性。
创建自己的技能
OpenSkills 最强大的地方在于,你可以创建自己的技能并分享给别人。
最小结构
一个技能最少只需要一个文件:
带资源的结构
如果你的技能需要脚本、参考文档或图片,可以组织成这样:
my-skill/
├── SKILL.md
├── references/
├── scripts/
└── assets/
SKILL.md 格式
SKILL.md 使用 Anthropic 的标准格式:
---
name: my-skill
description: 描述你的技能是做什么的
---
# 技能指令
当用户要求你执行 XXX 任务时,遵循以下步骤:
1. 安装依赖:`pip install xxx`
2. 运行脚本:`scripts/do_something.py`
3. 参考文档:`references/guide.md`
安装自己的技能
npx openskills install ./my-skill
本地开发技巧
如果你想在开发时实时修改技能,可以用符号链接:
git clone git@github.com:your-org/my-skills.git ~/dev/my-skills
mkdir -p .claude/skills
ln -s ~/dev/my-skills/my-skill .claude/skills/my-skill
这样你修改 ~/dev/my-skills/my-skill/ 下的文件,项目里会立即生效。
技能创作指南
如果你想学习更多关于创作技能的技巧,可以安装官方的 skill-creator 技能:
npx openskills install anthropics/skills
npx openskills read skill-creator
常见问题
OpenSkills 和 MCP 有什么区别?
MCP(Model Context Protocol)是为动态工具设计的,需要一个服务器运行。Skills 是静态指令 + 资源,只是文件,不需要服务器。MCP 适合实时交互,Skills 适合离线使用。详细对比请参考上文"MCP vs OpenSkills"章节。
我需要全局安装 OpenSkills 吗?
不需要。你可以直接通过 npx openskills 运行,npx 会自动下载并执行。全局安装是可选的。
技能安装在哪里?
默认安装到项目的本地目录 ./.claude/skills。你可以用 --global 安装到 ~/.claude/skills,或者用 --universal 安装到 ./.agent/skills/。
我可以使用私有仓库的技能吗?
可以。OpenSkills 支持从私有 Git 仓库安装:
npx openskills install git@github.com:your-org/private-skills.git
如何更新已安装的技能?
更新所有技能:
npx openskills update
更新特定技能:
npx openskills update skill-name
Universal 模式是什么?
如果你同时使用 Claude Code 和其他代理,并且想共享一个 AGENTS.md 文件,可以使用 --universal 标志。这会把技能安装到 ./.agent/skills/,避免与 Claude Code 的插件市场冲突。
技能搜索的优先级顺序是(从高到低):
./.agent/skills/~/.agent/skills/./.claude/skills/~/.claude/skills/
结语
OpenSkills 的出现,让 AI 编码代理的技能系统第一次实现了真正的跨平台兼容。你不再需要为每个代理单独配置工具,也不必担心技能不兼容的问题。
无论你使用 Claude Code、Cursor、Windsurf、Aider 还是 Codex,OpenSkills 都能让你享受到 Anthropic 精心设计的技能生态。这就是"One CLI. Every agent."的真正含义。
现在,就打开你的终端,试试 npx openskills install anthropics/skills,开启你的通用技能之旅吧。