Claude Code Skills 安装在哪里:个人、项目、嵌套、插件目录与同名优先级

Claude Code 的 Skills 安装目录在哪、放个人还是放项目?按官方文档讲清七种存放位置、同名时谁生效、monorepo 里嵌套 Skill 何时加载、改了要不要重启,以及控制谁能调用的 frontmatter 字段和 skillOverrides 设置。

NNathaniel bigo··原创首发·AI 辅助撰写
12 分钟读完
资料核对于 2026-10-11 · 依据官方文档与公开资料整理 Plus 账号
本文根据 Claude Code 官方文档《Extend Claude with skills》整理,资料核对于 2026-10-11。Skill 的基本概念和安装官方技能包的命令见《Claude Skills 是什么、怎么装》,本文只讲「放在哪、谁优先、谁能调用」。

适用于谁

  • 搜「claude code skills 安装目录」「claude code skills 安装在哪里」「claude code skills 目录结构」的人;
  • 个人目录和项目目录里有同名 Skill,不确定哪个在生效的人;
  • 在 monorepo 的子目录里放了 Skill 却在菜单里找不到的人。

结论先说

  1. 自己用,放 ~/.claude/skills/技能名/SKILL.md;团队共用,放仓库里的 .claude/skills/技能名/SKILL.md 并提交。
  2. 同名时:企业 > 个人 > 项目。个人目录和项目目录里都有 deploy,/deploy 运行的是个人那一份。
  3. 插件里的 Skill 带命名空间(/插件名:技能名),不会和别的冲突。
  4. 改了不用重启。Claude Code 会监视 Skill 目录,新增、修改、删除在当前会话内生效;唯一要手动处理的是会话中途新建了顶层 skills 目录,这时运行 /reload-skills。
  5. 子目录里的嵌套 Skill 是懒加载的:Claude 第一次读或改那个子目录里的文件时才出现。

一、七种存放位置

位置路径在哪里生效
企业托管设置目录下的 .claude/skills/<skill-name>/SKILL.md组织部署到的所有机器、所有用户
个人~/.claude/skills/<skill-name>/SKILL.md这台电脑上你的所有项目(不含 Cowork 和云端会话)
项目.claude/skills/<skill-name>/SKILL.md在这个仓库里启动的会话
嵌套<subdir>/.claude/skills/<skill-name>/SKILL.md在该子目录或其下启动的会话
附加目录用 --add-dir 传入的目录里的 .claude/skills/当次会话
插件<plugin>/skills/<skill-name>/SKILL.md启用了该插件的地方,以 /plugin-name:skill-name 调用
claude.ai 账号你在 claude.ai 上启用的技能Cowork、云端会话,以及用该账号登录的终端会话

Windows 上的 ~ 指用户主目录。

两个保留名称:不要把 Skill 文件夹命名为 synced(那是 claude.ai 同步下来的技能所在的子目录);anthropic-skills 以及以 anthropic-skills: 开头的名字在插件之外不会加载。

用符号链接指向别处的 Skill 文件夹也可以,Claude Code 会跟随链接;多个位置指向同一个目标时只加载一次。

二、同名时谁生效

官方列出的规则:

  • 企业 > 个人 > 项目;
  • 项目根目录的 Skill 和嵌套 Skill 都会加载。同名时 /deploy 运行根目录那一份,嵌套的那一份用带路径的名字调用,如 /apps/web:deploy;
  • 插件 Skill 和非插件 Skill 都会加载,因为插件 Skill 带命名空间;
  • Skill 和 .claude/commands/ 里的同名文件:Skill 生效;
  • 自己的 Skill 和内置命令同名:在本地终端会话里,Skill 会替换同名的内置命令,但不替换它的别名。官方举的例子:项目里一个叫 usage 的 Skill 会替换 /usage,而 /cost 仍然运行内置命令。

第一条容易和直觉相反:很多人以为项目级配置会覆盖个人配置,Skill 这里是个人优先。团队 Skill 不生效时,先查自己的 ~/.claude/skills/ 里有没有同名的。

三、monorepo 和子目录

  • 启动时,Claude Code 从启动目录一路向上到仓库根目录,加载每一层的 .claude/skills/;
  • 启动目录之下的子目录里的 Skill 属于嵌套 Skill,要等 Claude 第一次读取或编辑该子目录里的文件才加载,在那之前 / 菜单里看不到;
  • 想提前加载,运行 /add-dir <subdir>;
  • 在链接的 git worktree 里,向上查找到 worktree 根目录为止。

--add-dir 传入的目录会加载其中的 .claude/skills/、.claude/commands/ 和 .claude/agents/。其中只有 skills 目录会被持续监视,另外两个改了需要重启。官方还特别区分了一点:设置里的 permissions.additionalDirectories 只是授予文件访问权限,不会加载任何 Skill。

四、改了之后要不要重启

情况需要做什么
在已有的 skills 目录里新增、修改、删除 Skill不用做,会话内自动生效(bare 模式除外)
会话中途新建了一个启动时不存在的顶层 skills 目录运行 /reload-skills;之后该目录再有变化也要再运行一次
改的是插件里的 hooks、.mcp.json、agents 等运行 /reload-plugins

注意一个细节:Skill 的内容在调用时加载进对话,之后不会重读文件。所以你在会话中途改了某个已经调用过的 Skill,要重新调用一次才会用上新内容。

五、控制谁能调用

默认情况下,你可以用 /技能名 调用,Claude 也可以自动调用。两个 frontmatter 字段可以改变这一点:

frontmatter你能调用Claude 能调用进入上下文的内容
(默认)能能描述始终在;调用时加载全文
disable-model-invocation: true能不能描述不进上下文
user-invocable: false不能能描述始终在
  • 有副作用的流程(部署、发布、发消息)用 disable-model-invocation: true:只在你点名时运行,平时也不占上下文;
  • 纯背景知识用 user-invocable: false:不出现在 / 菜单里,只由 Claude 在需要时读取。

手动调用的写法也有讲究:/deploy staging 放在消息开头才会直接运行;写成「go ahead and /deploy to staging」只是授权,不会直接运行。

六、不改文件也能调整:skillOverrides

别人写的 Skill、插件之外同步来的 Skill,不方便改它的文件,可以在设置里覆盖可见性。输入 /skills 打开列表,按空格在几种状态之间切换,按 Esc 保存到 .claude/settings.local.json 的 skillOverrides。四个取值:

取值含义
"on"正常
"name-only"只列名称,不列描述,用来节省上下文
"user-invocable-only"只能你手动调用
"off"关闭

官方注明插件里的 Skill 不受这个设置影响,插件 Skill 在插件管理里启停。

七、Claude Code 额外支持的 frontmatter 字段

除了开放规范里的字段,Claude Code 还认下面这些(节选自官方参考表):

字段作用
name/ 菜单里的命令名,不写时默认用目录名
description做什么、什么时候用;不写时取正文第一个非空行
when_to_use补充的触发场景,在清单里接在 description 后面
argument-hint自动补全时显示的参数提示,如 [issue-number]
arguments命名的位置参数,正文里用 $name 引用
allowed-tools调用这一轮里免确认可用的工具
disallowed-toolsSkill 生效期间移除的工具
model / effort只对当前这一轮生效的模型和思考强度
context设为 fork 时在分叉出的子代理里运行
agent配合 context: fork,指定子代理类型,默认 general-purpose
paths用 glob 限定只在处理匹配文件时才自动启用
hooks调用时注册、保留到会话结束的 Hook
shell正文里内联命令使用的 shell,bash(默认)或 powershell

官方说明:不认识的字段会被静默忽略;布尔字段接受 true / false。这些扩展字段只在 Claude Code 里有效,上传到 claude.ai 或通过 API 使用时,多出来的键会直接报错,详见《SKILL.md 怎么写》。

正文里可用的变量包括 $ARGUMENTS(全部参数)、$0 $1(按位置,从 0 开始)、${CLAUDE_SKILL_DIR}(SKILL.md 所在目录)、${CLAUDE_PROJECT_DIR}(项目根目录)等。引用 Skill 自带的脚本时用 ${CLAUDE_SKILL_DIR},不要写死绝对路径。

八、旧的 .claude/commands 还能用吗

能。官方说明:.claude/commands/deploy.md 和 .claude/skills/deploy/SKILL.md 都会创建 /deploy,已有的命令文件继续有效。Skill 多出来的是三样:可以带支持文件、可以控制谁能调用、可以被 Claude 自动加载。自定义命令的写法见《Claude Code 斜杠命令大全》。

常见问题

Q:个人 Skill 在 Cowork 或网页版的 Claude Code 里为什么没有?

官方表格写明个人目录的 Skill 只在这台电脑上生效,不含 Cowork 和云端会话。那些环境用的是你 claude.ai 账号上启用的技能,或仓库里提交的项目 Skill。

Q:怎么确认某个 Skill 到底加载没有?

输入 /skills 看列表,或者直接问 Claude 现在有哪些 Skill 可用。在列表里却不被自动调用,见《Skill 不触发怎么办》。

Q:子代理里能用 Skill 吗?

能,方式不同。子代理定义里的 skills 字段会在启动时把列出的 Skill 全文预加载;没列出的项目、个人、插件 Skill,子代理仍可以通过 Skill 工具发现并调用。子代理的配置见《Claude Code 子代理》。

Q:权限规则里能限制 Skill 吗?

可以。官方给的写法:Skill(commit) 精确匹配某个 Skill,Skill(review-pr *) 匹配带参数的调用,单写 Skill 则针对整个工具。

参考资料

  • Extend Claude with skills(Claude Code 官方):https://code.claude.com/docs/en/skills
  • Extend Claude Code(Claude Code 官方):https://code.claude.com/docs/en/features-overview
需要开通或续费?Claude Pro 充值 →

Nathaniel 的更多内容

  1. 01

    promptfoo 使用教程:对比提示词和模型、写断言自动评测(安装与配置)

    promptfoo 是什么、怎么使用?按官方 README 和入门文档讲清它的用途、三种安装方式、用示例项目起步、promptfooconfig.yaml 里提示词、模型和测试用例三部分怎么写、常用断言类型的含义、eval 与 view 两条命令,以及把它放进日常改提示词流程的方法。

    ChatGPT其他 AI 工具0
  2. 02

    Kimi API怎么用:API Key获取、Python调用、K3价格与429报错处理

    Kimi API Key 在哪里获取、怎么用 Python 调用 K3、价格怎么算、429 和 401 报错怎么办?本文按 Kimi API 开放平台官方文档讲清注册认证、创建 Key、base_url 与模型名、计费规则和常见错误排查。

    Kimi0
  3. 03

    Cursor Agent 模式怎么用:Agent、Plan、Ask 三种模式,检查点回滚与消息排队

    Cursor Agent 模式是什么、和 Plan / Ask 模式怎么选?按官方文档讲清 Agent 能调用哪些工具、Shift+Tab 切换模式、Plan 模式先出方案再动手、用检查点撤销改动、任务进行中排队或插话,以及 /goal 长目标。

    Cursor0
  4. 04

    Gemini 聊天记录怎么导出:导出到文档 / 表格、生成 PDF 与用 Takeout 批量导出完整对话

    Gemini 没有「一键导出全部对话」的按钮,但有三条官方路径:单条回答导出到 Google 文档、Gmail、表格;让 Gemini 直接生成 PDF、Word、Markdown 文件;用 Google Takeout 批量下载全部活动记录。本文给出每种方法的步骤和限制。

    Gemini0
  5. 05

    ChatGPT 生成图片中文乱码、文字错误怎么办:7 个按顺序试的办法

    让 ChatGPT 做海报、封面、信息图,中文总是缺笔画、错字、乱码?本文按 OpenAI 官方图像提示指南,给出从写法、字数、局部修改、质量档位到后期排版的 7 个办法,以及什么时候干脆别让 AI 写字。

    ChatGPT0
  6. 06

    OpenCode Skills 使用指南:技能目录、命名规则、权限配置与不加载排查

    OpenCode 的 Skills 放在哪个目录、怎么控制哪些技能能用?按 OpenCode 官方文档讲清六个扫描位置、name 的正则规则、skill 工具的工作方式、在 opencode.json 里用 allow / deny / ask 配置权限、按智能体覆盖,以及技能不出现时的五项检查。

    其他 AI 工具0

同产品的其他教程

  1. 01

    Cursor、Claude Code、Codex、GitHub Copilot 有什么区别:按形态、账号、计费和规则文件对比

    Cursor 和 Claude Code 的区别是什么、和 Codex、GitHub Copilot 怎么选?只用各家官方文档的事实对比:产品形态、用什么账号、怎么计费、能选哪些模型、规则文件与 MCP、权限模式、代码审查;不做「谁更强」的排名,给出按场景选择的思路。

    ClaudeCursor0
  2. 02

    如何让大模型稳定输出 JSON:结构化输出、JSON 模式与提示词写法(OpenAI / Claude)

    怎么让大模型稳定输出 JSON?本文按 OpenAI 和 Anthropic 官方文档讲清只靠提示词、JSON 模式、结构化输出三种做法的可靠程度,两家的写法与 Schema 限制,以及拒答和截断两种例外。

    ChatGPTClaude0
  3. 03

    npx skills add 怎么用:从 GitHub 安装 Skill、skills.sh 是什么与常用命令

    网上的 Skill 安装命令大多是 npx skills add 开头,它是什么、装到哪去了?按官方 README 讲清 skills 命令行工具支持的来源写法、项目与全局两种范围、-a 指定工具、list / find / update / remove 等命令、软链接与复制的区别,以及怎么关掉遥测。

    Claude其他 AI 工具0
  4. 04

    提示词里的角色设定有用吗:「你是一位专家」该怎么写才有效(官方文档怎么说)

    提示词开头写「你是一位资深专家」到底有没有用?本文按 Anthropic、OpenAI、Google 官方文档讲清角色设定管什么、不管什么,一句话角色和详细人设各自适合什么场景,角色应该放在哪里,以及比「你是专家」更有效的四个写法。

    ChatGPTClaude0
  5. 05

    提示词链(Prompt Chaining)怎么用:把复杂任务拆成几步,前一步的输出交给后一步

    提示词链是什么、什么时候该把大提示词拆开?本文按 Anthropic 和 Google 官方文档讲清拆指令、串成链、分块聚合三种拆法,最常用的「起草 → 审查 → 修改」链,以及哪些情况不必拆。

    ClaudeGemini0
  6. 06

    Claude Code 切换模型:/model 命令、模型别名、effort 与 fast 模式

    Claude Code 怎么切换模型?讲清 /model 命令与选择器、opus / sonnet / haiku / fable / opusplan 等别名、默认模型、推理强度 effort 怎么调、ultrathink、fast 模式,以及换了模型下次又变回去的原因。

    Claude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~