Claude Code

Claude Code 的 Skills,管在一个地方

装第一个 Skill 只要把文件夹拷进 ~/.claude/skills,这没什么难的。麻烦从第二个工具开始——同一个 Skill 在 Codex 里还得再放一份,改了一处另一处就旧了。这一页先讲清 Claude Code 真正读哪两个目录、手动怎么装,再讲一份源文件同时供多个工具用是怎么做到的。

最后核对:

全局 Skills 目录
~/.claude/skills
项目级 Skills 目录
<项目>/.claude/skills
一份源文件,多个工具
支持 32 款
目录

Claude Code 从哪里读 Skills

Claude Code 是直接扫文件系统的,没有注册表也没有索引文件。一个 Skill 就是一个文件夹,根目录下放一个 SKILL.md,文件夹名就是 Skill 名。可以放的位置有两个,作用完全不同,别混着用。

全局 —— ~/.claude/skills

这台机器上所有项目都能用。适合放跟项目无关的东西:你的代码审查清单、写作风格、常用的排查流程。多数人说的「装了个 Skill」指的就是这里。

项目级 —— <项目>/.claude/skills

只在这个仓库里生效,而且它就在仓库里,可以提交。适合放只对这套代码成立的东西:这个项目的发布流程、这套架构的约定。别人 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 Skill

四步,不需要装任何东西。建议至少手动做一遍:知道管理器往磁盘上写了什么,和只能指望它没写错,是两回事。

  1. 建目录

    刚装完 Claude Code 时这个目录是不存在的。有就读、没有就跳过,所以自己建出来是安全的。

    建全局 Skills 目录
    mkdir -p ~/.claude/skills
  2. 把 Skill 文件夹放进去

    注意层级:SKILL.md 必须在这个文件夹的根下,不能再深一层。很多仓库一个 repo 里放了好几个 Skill,要搬的是里面那几个文件夹,不是整个 repo——这是最常见的一种装了但读不到。

    从一个放了多个 Skill 的仓库里取一个
    git clone https://github.com/some/skill-pack.git /tmp/skill-packcp -R /tmp/skill-pack/skills/code-review ~/.claude/skills/
  3. 开之前先读一遍 SKILL.md

    Skill 是一段会被 agent 照着执行的指令,用的是你的凭证、你的文件系统。重点看它有没有让 agent 跑 shell 命令、访问外网、或者动项目目录以外的路径。从社区装 Skill 时这一步不能省。

  4. 确认 Claude Code 认到了

    先看磁盘,再问 agent。如果 ls 能看到文件夹、Claude Code 却不提这个 Skill,问题几乎都在 SKILL.md:front matter 缺 name 或 description,或者文件位置深了一层。

    先看磁盘,再在会话里确认
    ls ~/.claude/skills# code-review # 然后在 Claude Code 里问:# 「你现在能看到哪些 Skills?」
一份源文件

同一个 Skill 出现在两个工具目录里,文件只有一份

管理器不是往每个工具目录里各拷一份。它在 ~/.skills-manager/skills 留唯一一份,然后往各工具本来就会扫的目录里写一个链接。Claude Code 看到的是一个位置正常、结构正常的文件夹;别的工具也一样。SKILL.md 全程只有一个。

真实输出 —— 同一个 Skill 同时对 Claude Code 和 Codex 生效
$ 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/animate
Skills Manager

在这个目录之上,应用多做了什么

Skills Manager 是一个免费开源的桌面应用,macOS、Windows、Linux 都有。它不替代 Claude Code、也不套一层壳,管的就是 Claude Code 本来在读的那个目录。

Skills Manager 技能库界面:Agent Skills 列表,每个 Skill 对 Claude Code 等已检测工具有独立开关

已经装好的 Skill 直接导进来

第一次打开时,应用会扫它检测到的每个工具的 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 在兼容矩阵里的那一行

下面这行是从应用内置的同一张表派生的,不是手写的,所以不会和桌面端实际写入的位置对不上。

字段取值
工具Claude Code
全局 Skills 目录~/.claude/skills
项目级 Skills 目录<项目>/.claude/skills
检测命令claude
连接方式macOS 与 Linux 用软链接,Windows 用目录联接
看全部 32 款工具及其目录
排错

Skill 没出现的时候

四种情况占了绝大多数。每种的原因都很具体,而其中三种,第一反应想到的那个办法是没用的。

Windows:提示「客户端没有所需的特权」

原因
Windows 上建目录软链接需要开发者模式或者提权进程。Skills Manager 两个都不要求——它会从软链接退到目录联接(mklink /J),普通账户就能建;如果联接也被挡了,就改成复制,并把来源路径记进 .skills-manager-source.json,这份拷贝仍然是可追踪的,也仍然能在应用里关掉。
怎么办
什么都不用做。三种方式在普通非提权账户下都能走通。用管理员身份运行只是改变了用到哪一种,而具体用哪一种并不影响结果。

macOS:提示「无法打开,因为 Apple 无法检查其是否包含恶意软件」

原因
发布的构建没有做公证(notarization),Gatekeeper 会拦第一次启动。这是安装包的事,跟 Skills 无关。
怎么办
在「应用程序」里右键点图标选「打开」,确认一次即可。还是打不开就清掉隔离属性:xattr -dr com.apple.quarantine "/Applications/Skills Manager.app"。不想跑未公证的二进制就自己从源码构建——仓库是 MIT,就是一个标准的 Tauri 构建。

文件夹明明在,Claude Code 就是不列这个 Skill

原因
几乎都是 SKILL.md 的问题:front matter 缺 name 或 description,或者因为拷了整个仓库而不是里面的 Skill 文件夹,导致 SKILL.md 深了一层。
怎么办
确认层级是 ~/.claude/skills/<skill 名>/SKILL.md,中间不能多一层;front matter 里 name 和 description 都要有。然后开一个新会话再试——加文件夹之前就已经开着的那个会话,不算测试。

Claude Code 里能用,换个工具就不行

原因
两种可能。一是那个工具不认链接——矩阵里只有 iFlow 是这种情况,所以 Skills Manager 对它走的是复制而不是链接。二是这个 Skill 放在项目目录里:<项目>/.claude/skills 只有 Claude Code 会读,多数其他 agent 直接忽略。
怎么办
iFlow 这种不用管,复制模式是自动的,开关行为完全一样。项目目录那种,把 Skill 挪进库里就能按工具开关;项目目录留给那些确实只对这个仓库成立的 Skill。
常见问题

Claude Code Skills 的几个具体问题

Claude Code 的全局 Skills 和项目级 Skills 有什么区别?

放在 ~/.claude/skills 的是全局 Skill:本机所有项目都能用,但它不属于任何仓库,也不会被提交。放在 <项目>/.claude/skills 的属于那个仓库:只在这个仓库里生效,可以提交,别人 clone 下来就有。判断标准很简单——描述的是「你怎么干活」就放全局,描述的是「这套代码是怎样的」就放项目里。

不装管理器能不能用 Claude Code Skills?

能。把文件夹拷进 ~/.claude/skills 就是一次完整的安装,几个 Skill、一个工具的情况下手动是最省事的。管理器开始值得用是在第二个目录出现的时候:同一个 Skill 得同时存在于 ~/.claude/skills 和 ~/.codex/skills,两份就会各自漂移;而且想只对某个工具关掉它,除了删没有别的办法。

刚放进去的 Skill,Claude Code 为什么读不到?

先看层级。路径必须是 ~/.claude/skills/<skill 名>/SKILL.md,中间不能多一层——拷了整个仓库而不是里面的 Skill 文件夹,是最常见的原因。第二常见的是 front matter 缺 name 或 description。这两条都确认过之后,开一个新的 Claude Code 会话再试;加文件夹之前就开着的那个会话不算测试。

Claude Code 的 Skill 可以提交到 Git 仓库吗?

项目级的可以:<项目>/.claude/skills 本来就在仓库里,提交它就等于把 Skill 跟代码一起发出去。全局的 ~/.claude/skills 在任何仓库之外,不会被提交。如果一个 Skill 你自己好几个项目都要用、又希望有版本记录,正确做法是放进一个库里再用链接连到各工具,而不是往几个仓库里各拷一份。

已经在 ~/.claude/skills 里的 Skill,怎么导入到库里?

Skills Manager 第一次运行时会扫它检测到的每个工具的 Skills 目录,包含 ~/.claude/skills,把找到的 Skill 列出来带勾选框,由你决定导哪些。选中的会移进 ~/.skills-manager/skills,同一个 Skill 在多个工具里各有一份的合成一条。检测本身是只读的——在你点导入或启用之前,磁盘上什么都不会被改。

能只对 Claude Code 开启某个 Skill、别的工具不开吗?

可以。每个 Skill 对每个已检测到的工具是独立开关,所以一个 Skill 完全可以在 Claude Code 里生效、在 Cursor 里根本不存在。打开就往那个工具的 Skills 目录写链接,关掉只删链接——库里的 Skill 文件夹不改也不删,所以关掉的代价是零,随时能开回来。

下载

一份 Skill 库,Claude Code 和其余工具共用

免费开源,macOS、Windows、Linux 都有。本地管理 Skills 不需要登录账号,应用里也没有任何遥测。

MIT 许可。在你启用某个 Skill 之前,检测过程是只读的。