全局 —— ~/.claude/skills
这台机器上所有项目都能用。适合放跟项目无关的东西:你的代码审查清单、写作风格、常用的排查流程。多数人说的「装了个 Skill」指的就是这里。
装第一个 Skill 只要把文件夹拷进 ~/.claude/skills,这没什么难的。麻烦从第二个工具开始——同一个 Skill 在 Codex 里还得再放一份,改了一处另一处就旧了。这一页先讲清 Claude Code 真正读哪两个目录、手动怎么装,再讲一份源文件同时供多个工具用是怎么做到的。
最后核对:
Claude Code 是直接扫文件系统的,没有注册表也没有索引文件。一个 Skill 就是一个文件夹,根目录下放一个 SKILL.md,文件夹名就是 Skill 名。可以放的位置有两个,作用完全不同,别混着用。
这台机器上所有项目都能用。适合放跟项目无关的东西:你的代码审查清单、写作风格、常用的排查流程。多数人说的「装了个 Skill」指的就是这里。
只在这个仓库里生效,而且它就在仓库里,可以提交。适合放只对这套代码成立的东西:这个项目的发布流程、这套架构的约定。别人 clone 下来就直接有。
~/.claude/skills/ # 全局:本机所有项目可见└── code-review/ ├── SKILL.md # 必需:name、description、正文 └── reference/checklist.md # 可选:Skill 自己会读的文件 my-app/.claude/skills/ # 项目级:只在 my-app 里可见└── deploy-runbook/ └── SKILL.md矩阵里 32 款工具中,只有 7 款确认支持项目级 Skills,Claude Code 是其中一个。其余大多只读一个全局目录——所以放在项目目录里的 Skill,换个工具是读不到的,这一点常被误当成「同步失败」。
四步,不需要装任何东西。建议至少手动做一遍:知道管理器往磁盘上写了什么,和只能指望它没写错,是两回事。
刚装完 Claude Code 时这个目录是不存在的。有就读、没有就跳过,所以自己建出来是安全的。
mkdir -p ~/.claude/skills注意层级:SKILL.md 必须在这个文件夹的根下,不能再深一层。很多仓库一个 repo 里放了好几个 Skill,要搬的是里面那几个文件夹,不是整个 repo——这是最常见的一种装了但读不到。
git clone https://github.com/some/skill-pack.git /tmp/skill-packcp -R /tmp/skill-pack/skills/code-review ~/.claude/skills/Skill 是一段会被 agent 照着执行的指令,用的是你的凭证、你的文件系统。重点看它有没有让 agent 跑 shell 命令、访问外网、或者动项目目录以外的路径。从社区装 Skill 时这一步不能省。
先看磁盘,再问 agent。如果 ls 能看到文件夹、Claude Code 却不提这个 Skill,问题几乎都在 SKILL.md:front matter 缺 name 或 description,或者文件位置深了一层。
ls ~/.claude/skills# code-review # 然后在 Claude Code 里问:# 「你现在能看到哪些 Skills?」管理器不是往每个工具目录里各拷一份。它在 ~/.skills-manager/skills 留唯一一份,然后往各工具本来就会扫的目录里写一个链接。Claude Code 看到的是一个位置正常、结构正常的文件夹;别的工具也一样。SKILL.md 全程只有一个。
$ ls -l ~/.claude/skills/animate ~/.codex/skills/animate lrwxr-xr-x ~/.claude/skills/animate -> ~/.skills-manager/skills/animatelrwxr-xr-x ~/.codex/skills/animate -> ~/.skills-manager/skills/animateSkills Manager 是一个免费开源的桌面应用,macOS、Windows、Linux 都有。它不替代 Claude Code、也不套一层壳,管的就是 Claude Code 本来在读的那个目录。

第一次打开时,应用会扫它检测到的每个工具的 Skills 目录,包括 ~/.claude/skills,把找到的 Skill 列出来让你勾选。同一个 Skill 在多个工具里各有一份的,导入后合成一条。不需要先手动整理目录结构才能开始用。
每个 Skill 对每个工具是独立的开关。打开就往那个工具的目录里写链接,关掉只是把链接删掉——库里的源文件夹既不改也不删。所以关掉一个 Skill 不需要下什么决心,随时能开回来。
因为各工具指的是同一个文件,在库里改完,Claude Code、Codex、Cursor 以及其余工具读到的立刻就是改后的内容。没有「同步」这一步要记得做,也就没有哪份拷贝会落后。
矩阵里的 32 款包含 Trae、Trae CN、iFlow、Qwen Code、CodeBuddy、QoderWork CN 这些国内工具,路径与检测命令跟 Claude Code 一视同仁。列表里没有的,把它的配置目录指给应用就能加成自定义工具。
36 条静态规则,分破坏性命令、外网访问、权限提升、隐藏载荷四类,在你启用一个 Skill 之前在本机跑完。规则是确定性的,全程离线——Skill 正文不会被传到任何地方。
下面这行是从应用内置的同一张表派生的,不是手写的,所以不会和桌面端实际写入的位置对不上。
| 字段 | 取值 |
|---|---|
| 工具 | Claude Code |
| 全局 Skills 目录 | ~/.claude/skills |
| 项目级 Skills 目录 | <项目>/.claude/skills |
| 检测命令 | claude |
| 连接方式 | macOS 与 Linux 用软链接,Windows 用目录联接 |
四种情况占了绝大多数。每种的原因都很具体,而其中三种,第一反应想到的那个办法是没用的。
放在 ~/.claude/skills 的是全局 Skill:本机所有项目都能用,但它不属于任何仓库,也不会被提交。放在 <项目>/.claude/skills 的属于那个仓库:只在这个仓库里生效,可以提交,别人 clone 下来就有。判断标准很简单——描述的是「你怎么干活」就放全局,描述的是「这套代码是怎样的」就放项目里。
能。把文件夹拷进 ~/.claude/skills 就是一次完整的安装,几个 Skill、一个工具的情况下手动是最省事的。管理器开始值得用是在第二个目录出现的时候:同一个 Skill 得同时存在于 ~/.claude/skills 和 ~/.codex/skills,两份就会各自漂移;而且想只对某个工具关掉它,除了删没有别的办法。
先看层级。路径必须是 ~/.claude/skills/<skill 名>/SKILL.md,中间不能多一层——拷了整个仓库而不是里面的 Skill 文件夹,是最常见的原因。第二常见的是 front matter 缺 name 或 description。这两条都确认过之后,开一个新的 Claude Code 会话再试;加文件夹之前就开着的那个会话不算测试。
项目级的可以:<项目>/.claude/skills 本来就在仓库里,提交它就等于把 Skill 跟代码一起发出去。全局的 ~/.claude/skills 在任何仓库之外,不会被提交。如果一个 Skill 你自己好几个项目都要用、又希望有版本记录,正确做法是放进一个库里再用链接连到各工具,而不是往几个仓库里各拷一份。
Skills Manager 第一次运行时会扫它检测到的每个工具的 Skills 目录,包含 ~/.claude/skills,把找到的 Skill 列出来带勾选框,由你决定导哪些。选中的会移进 ~/.skills-manager/skills,同一个 Skill 在多个工具里各有一份的合成一条。检测本身是只读的——在你点导入或启用之前,磁盘上什么都不会被改。
可以。每个 Skill 对每个已检测到的工具是独立开关,所以一个 Skill 完全可以在 Claude Code 里生效、在 Cursor 里根本不存在。打开就往那个工具的 Skills 目录写链接,关掉只删链接——库里的 Skill 文件夹不改也不删,所以关掉的代价是零,随时能开回来。
免费开源,macOS、Windows、Linux 都有。本地管理 Skills 不需要登录账号,应用里也没有任何遥测。
MIT 许可。在你启用某个 Skill 之前,检测过程是只读的。