Claude Code Skills 使用指南:安装、创建与管理

去年我开始用 Claude Code 做代码审查,每次都要手动输入同样的检查项:错误处理、日志格式、注释完整性...一天下来能重复几十遍。后来发现了 Skills,把这些检查流程打包起来,现在说一句"审查这个分支",Claude 就自动按标准跑一遍。

这篇文章就是想把这套东西讲清楚。

快速上手(3 分钟)

先装个官方插件试试:

bash 复制代码
claude plugin install document-skills@anthropic-agent-skills

然后问 Claude:

arduino 复制代码
What skills are available?

接着直接用就行,比如:

arduino 复制代码
"帮我看看这个 PDF 里的表格"

不用记命令,也不用查文档,说人话就行。

Skills 有什么用?

我自己主要用在这几个场景:

代码审查:以前每次要手动检查十几个项目,现在描述需求就能自动跑完检查流程。

部署前检查:把环境变量、API Key、配置文件这些必查项打包成 Skill,不会漏。

问题排查:团队的排查步骤固化下来,新人不会两眼一抹黑。

团队协作:老员工的经验不会随着离职流失,Skills 变成可复用的资产。

说白了,就是把重复的工作流变成资产,用的时候直接调。

痛点

没有 Skills 之前,这些问题应该挺常见的:

  • 每次代码审查都重复同样的检查,费时又容易漏
  • 部署前总担心"我是不是忘了检查什么"
  • 团队里每个人有自己的 Checklist,质量参差不齐
  • 老员工离职,摸索出来的经验也带走了

有了 Skills,至少能把这些重复劳动自动化掉。

什么是 Skill?

Skill 是 Claude Code 的扩展机制。你可以把它理解成一个技能目录,里面放着一套指令,以及可选的模板、示例和脚本。

它遵循 Agent Skills 标准。对 Claude Code 来说,一个 Skill 至少要有一个 SKILL.md 文件;Claude 会根据 Skill 的名称和描述,判断要不要加载它。

Skill vs Slash Commands

Claude Code 自带一些 Slash Commands,比如 /help/compact。这些是固定入口。Skill 不是命令,而是一组可被 Claude 自动发现和加载的规则。两者的区别很简单:

  • Slash Commands:你手动输入后执行。
  • Skills:Claude 根据上下文自动判断是否使用。
  • 两者都能扩展 Claude Code,但不是同一套机制。

Skill 的核心特点

按需加载(Progressive Loading):

Claude Code 不会一次性加载所有 Skills。它采用渐进式加载策略:

  • 只加载与当前请求相关的 Skills
  • 通过匹配 description 字段来判断相关性
  • 避免将不相关的 Skill 内容加载到上下文中

这种设计的好处是:

  • 节省上下文预算
  • 提高响应速度
  • 减少无关信息的干扰

自动热重载:

Skills 修改后自动生效,无需重启会话:

  • 个人 Skills(~/.claude/skills/)修改后立即可用
  • 项目 Skills(.claude/skills/)修改后立即可用
  • 插件 Skills 安装/更新后自动加载

命名空间隔离:

  • 手动安装的 Skills 直接使用名称,如 my-skill
  • 插件提供的 Skills 使用命名空间前缀,如 document-skills:pdf
  • 避免不同来源的 Skills 产生命名冲突

标准化格式:

遵循 Agent Skills 标准:

  • 至少需要一个 SKILL.md 文件
  • 可选的模板、示例和脚本
  • 统一的 frontmatter 格式(namedescription

Skill 的存放位置

Skill 有三个存放位置:

位置 路径 适用范围 获取方式
个人 ~/.claude/skills/<skill-name>/SKILL.md 所有项目 手动创建
项目 .claude/skills/<skill-name>/SKILL.md 当前项目 手动创建
插件 ~/.claude/plugins/cache/<marketplace>/<plugin>/skills/ 所有项目 插件市场安装

核心原则:无论哪种位置,每个 Skill 都要有自己的文件夹,不是把 SKILL.md 直接扔进 skills/ 根目录。

关于插件 Skills

插件 Skills 是通过 Claude Code 插件市场安装的 Skill 集合。它们存储在 ~/.claude/plugins/cache/ 目录下,按市场和插件名组织。

插件 Skills 的特点:

  • 命名空间 :插件内的 Skills 使用命名空间前缀,例如 document-skills:pdf
  • 版本管理:每个插件安装后带有版本哈希,便于更新和回滚
  • 批量安装:一个插件可以包含多个相关 Skills
  • 自动发现:安装后自动被 Claude Code 识别和加载

示例路径结构:

bash 复制代码
~/.claude/plugins/cache/
└── anthropic-agent-skills/
    └── document-skills/
        └── <version-hash>/
            └── skills/
                ├── xlsx/
                ├── docx/
                ├── pptx/
                └── pdf/

插件 vs 手动 Skills:

特性 手动 Skills 插件 Skills
安装方式 手动复制/克隆 插件市场一键安装
版本管理 手动维护 Git 自动版本控制
更新方式 手动 git pull 插件更新机制
命名冲突 需自行避免 命名空间隔离

Skill 目录结构

一个完整的 Skill 目录结构如下:

text 复制代码
my-skill/
├── SKILL.md           # 主指令文件(必需)
├── template.md        # Claude 填写的模板
├── examples/
│   └── sample.md      # 示例输出
└── scripts/
    └── validate.sh    # Claude 可执行的脚本

SKILL.md 是入口文件。其他内容都可以按需加,用来放模板、示例或辅助脚本。

安装 Skill

安装他人的 Skill

Skill 本质上就是一个目录,所以"安装"的核心很简单:把完整的 Skill 目录放到 Claude Code 会扫描的位置。做法不止一种。

安装到个人技能库(所有项目可用):

bash 复制代码
mkdir -p ~/.claude/skills/<skill-name>
# 将 SKILL.md 和相关文件复制进去

安装到当前项目(仅当前项目可用):

bash 复制代码
mkdir -p .claude/skills/<skill-name>
# 将 SKILL.md 和相关文件复制进去

常见安装方式

除了手动复制,你也可以直接照着社区仓库的方式安装。常见有这几种:

方式 1:直接克隆整个仓库到技能目录

适合像 marketingskills 这种"一个仓库维护一组 Skill"的项目。

bash 复制代码
git clone https://github.com/coreyhaines31/marketingskills.git ~/.claude/skills/marketingskills

克隆下来以后,可以按仓库说明直接使用,也可以把其中你需要的 Skill 单独整理到自己的目录里。

方式 2:复制仓库中的单个 Skill 目录

如果你只需要其中一个 Skill,直接复制对应目录就行:

bash 复制代码
mkdir -p ~/.claude/skills/my-skill
# 将仓库中的某个 Skill 目录内容复制进来

方式 3:在项目内安装

如果这个 Skill 只服务当前项目,放到项目目录更合适:

bash 复制代码
mkdir -p .claude/skills/my-skill

方式 4:通过插件市场安装

对于官方或社区发布的插件包,可以通过插件市场安装:

bash 复制代码
# 安装插件(包含多个 Skills)
claude plugin install <plugin>@<marketplace>

# 示例
claude plugin install document-skills@anthropic-agent-skills

插件安装后,Skills 会出现在 ~/.claude/plugins/cache/ 目录下,并被 Claude Code 自动识别。实际使用时,通常直接在提示里点名 Skill 即可,例如 "Use the PDF skill..."。

查看已安装的插件:

bash 复制代码
claude plugin list

关于"市场安装"

Claude Code 目前支持两种"市场"安装方式:

1. 插件市场(官方)

通过 claude plugin install 安装官方或社区认证的插件包。插件会自动管理版本和更新。

2. 第三方目录网站

社区里有不少 Skill 仓库、集合仓库和第三方目录网站:

  • 在 GitHub 搜索公开 Skill 仓库
  • skills.sh 这类第三方 Skill 目录站里搜索
  • 使用像 marketingskills 这样的 Skill 集合仓库
  • 将常用 Skill 整理到自己的 ~/.claude/skills/ 或项目内 .claude/skills/

对于第三方网站找到的 Skills,通常需要手动克隆或复制到 skills/ 目录。

创建自己的 Skill

自己写一个 Skill 也不复杂,最小可用版本只要两步:

1. 创建 Skill 目录

bash 复制代码
mkdir -p ~/.claude/skills/my-skill

2. 编写 SKILL.md 文件

yaml 复制代码
name: my-skill
description: 技能的描述,说明什么时候使用


你的技能指令...

SKILL.md 格式

一个 SKILL.md 通常分成两部分:

  1. YAML frontmatter:定义名称和描述
  2. Markdown 内容:Skill 的具体指令

Frontmatter 常用字段:

字段 说明
name Skill 名称
description 描述,帮助 Claude 判断何时使用

示例:

yaml 复制代码
name: deploy
description: 部署应用到生产环境时使用


部署步骤:
1. 运行测试
2. 构建应用
3. 推送到部署目标

使用 Skill

自动触发

Skill 的主要价值在于自动触发。Claude 会根据你的请求和 Skill 的 description 自动匹配。

触发原理:

当你的请求与某个 Skill 的描述相符时,Claude 会自动加载该 Skill。比如一个 Skill 的描述是"解释代码工作原理",当你问:

text 复制代码
这段代码是怎么工作的?

Claude 就可能调用这个 Skill 来完成任务。

提高触发率:

  • description 中包含用户可能说的关键词
  • 描述要具体,避免过于宽泛
  • 清晰说明使用场景

手动触发

除了自动触发,你也可以在提示里直接点名某个 Skill。

例如:

text 复制代码
Use the PDF skill to extract the form fields from this file.

这种方式适合:

  • 你明确知道要使用哪个 Skill
  • 想降低自动匹配带来的歧义
  • 需要更明确地约束执行流程

如果你想要固定的 /xxx 入口,应该创建自定义 Slash Commands,而不是依赖 Skill 的自动触发。

更新 Skill

手动更新

直接编辑 Skill 文件是最直接的更新方式。

编辑个人 Skill:

bash 复制代码
# 使用你喜欢的编辑器
code ~/.claude/skills/my-skill/SKILL.md
# 或
vim ~/.claude/skills/my-skill/SKILL.md

编辑项目 Skill:

bash 复制代码
# 编辑项目内 Skill
code .claude/skills/my-skill/SKILL.md

手动更新的场景:

  • 修复 Skill 中的错误
  • 调整 description 提高触发率
  • 优化指令内容
  • 添加新的模板或示例

命令更新

如果 Skill 是从 GitHub 仓库克隆的,可以用 Git 命令更新。

更新单个克隆的 Skill:

bash 复制代码
# 进入 Skill 目录
cd ~/.claude/skills/marketingskills

# 拉取最新代码
git pull origin main

批量更新所有克隆的 Skill:

如果你克隆了多个 Skill 仓库,可以写个简单脚本批量更新:

bash 复制代码
# 在 skills 目录下遍历所有子目录
for dir in ~/.claude/skills/*/.git; do
  repo=$(dirname "$dir")
  echo "Updating $repo..."
  cd "$repo" && git pull
done

更新 Fork 的 Skill:

如果你 Fork 了某个 Skill 并做了自己的修改:

bash 复制代码
cd ~/.claude/skills/my-forked-skill

# 添加上游仓库(如果还没添加)
git remote add upstream https://github.com/original-owner/skill-repo.git

# 拉取上游更新
git fetch upstream
git merge upstream/main

插件更新

通过插件市场安装的插件可以使用插件管理命令更新:

bash 复制代码
# 更新指定插件
claude plugin update <plugin>@<marketplace>

# 示例
claude plugin update document-skills@anthropic-agent-skills

插件更新会下载最新版本并替换缓存中的旧版本,但更新后通常需要重启 Claude Code 才会生效。

更新生效

自动热重载:

手动编辑 Skill 文件时,通常会比插件更新更快生效;但插件升级与部分缓存刷新场景,仍应按"重启后生效"来理解更稳妥:

  • 个人 Skills(~/.claude/skills/)修改后通常很快可用
  • 项目 Skills(.claude/skills/)修改后通常很快可用
  • 插件 Skills 更新后建议重启 Claude Code

如果修改没有立即生效:

极少数情况下,如果修改没有自动重载,可以尝试:

text 复制代码
# 按 Ctrl+D 退出当前会话,然后重新启动
claude

验证更新:

text 复制代码
What skills are available?

确认你的 Skill 已出现在列表中,并且描述内容是最新的。

卸载 Skill

卸载手动安装的 Skill

直接删除对应目录:

bash 复制代码
# 删除个人 Skill
rm -rf ~/.claude/skills/<skill-name>

# 删除项目 Skill
rm -rf .claude/skills/<skill-name>

卸载插件

使用插件管理命令卸载:

bash 复制代码
# 卸载插件
claude plugin uninstall <plugin>@<marketplace>

# 示例
claude plugin uninstall document-skills@anthropic-agent-skills

卸载插件会自动清理 ~/.claude/plugins/cache/ 下的相关文件。

查找 Skill

查看所有可用 Skill

最稳妥的办法是先查看已安装插件,再在会话里直接询问 Claude:

bash 复制代码
claude plugin list

然后也可以在 Claude Code 里问一句:

text 复制代码
What skills are available?

从哪里找社区 Skill

现在比较常见的来源有:

  • 在 GitHub 搜索公开 Skill 仓库
  • skills.sh 这类第三方 Skill 目录站里搜索
  • 使用像 marketingskills 这样的 Skill 集合仓库
  • 将常用 Skill 整理到自己的 ~/.claude/skills/ 或项目内 .claude/skills/

用第三方目录网站找 Skill

如果你不想直接在 GitHub 里翻仓库,skills.sh 这种第三方目录站会更省事。

它的好处是:

  • 可以直接按关键词搜索 Skill
  • 能看到 Skill 的来源仓库和详情页
  • 通常会直接给出安装命令

这类网站本身不是 Claude Code 官方内置功能,但在开源 Skill 生态里已经很常见,拿来做发现入口很合适。

用元 Skill 先搜,再安装

除了自己去网站搜,另一种更顺手的方式,是先装一个专门"帮你找 Skill"的元 Skill。

比如你可以放一个类似 find-skills/find-skill 的 Skill,让 Claude 先根据你的需求去搜索相关 Skill,再把安装命令返回给你。一个典型流程是:

  1. 先描述你的需求,比如"帮我找一个适合做 SEO 审计的 Skill"
  2. 让这个元 Skill 去搜索 skills.sh 或其他 Skill 来源,比如调用 npx skills find <query>
  3. 根据返回结果执行安装,比如:
bash 复制代码
npx skills add <owner/repo@skill>

如果你希望直接让 Claude 帮你完成整个过程,也可以把这类元 Skill 设计成"两步走":

  • 第一步:搜索并列出候选 Skill
  • 第二步:确认后自动执行安装

要注意的是,这种 find-skills/find-skill 工作流通常是社区实践,不是 Claude Code 默认自带的官方命令。它好用的地方在于,把"找 Skill"这件事也变成了一个 Skill。

管理 Skill

限制 Claude 使用 Skill

如果你想完全禁用 Slash Commands,当前 CLI 提供的是 --disable-slash-commands。至于 Skill,本质上还是两件事:目录里有没有这个 Skill,以及 Claude 会不会在当前上下文里选中它。

高级使用建议

Skill 目录里除了 SKILL.md,还可以放示例、模板、脚本和参考资料。任务稍微复杂一点时,这样组织会顺手很多:

  • SKILL.md 里写清触发条件和步骤
  • 把长模板拆到单独文件
  • 把校验或辅助逻辑放到 scripts/ 目录

安全使用第三方 Skills

第三方 Skills 可以大幅提升效率,但也存在安全风险。安装前务必进行安全审查。

理解风险类型

风险类型 潜在危害 示例场景
数据泄露 Skill 脚本读取并上传敏感文件、API Key、环境变量 脚本扫描 ~/.ssh/ 并发送到外部服务器
命令注入 恶意脚本执行破坏性系统命令 rm -rf 删除项目文件、修改系统配置
供应链攻击 第三方仓库被植入恶意代码 流行 Skill 的维护者账号被盗
隐私追踪 Skill 记录用户使用习惯和 Prompt 内容 将用户请求发送到分析服务
依赖混淆 Skill 依赖的外部资源被劫持 模板中引用的外部 URL 被替换

安装前检查清单

在安装任何第三方 Skill 之前,按以下步骤逐一检查:

1. 验证来源可信度

bash 复制代码
# 检查仓库的 stars 数和维护者信誉
# 查看 GitHub 仓库的 stars、forks、最近活跃度
# 确认维护者是否有其他被认可的项目

评估标准:

  • ✅ stars 数 > 100,有持续更新
  • ✅ 维护者有其他高质量项目
  • ⚠️ stars 数 < 10,需额外谨慎
  • ❌ 长期未更新(超过 6 个月)

2. 阅读 SKILL.md 全文

  • 理解 Skill 的功能描述
  • 检查是否有可疑的外部链接
  • 注意是否要求敏感权限

3. 审查 scripts/ 目录

bash 复制代码
# 查看 Skill 中的脚本内容
cat ~/.claude/skills/<skill-name>/scripts/*.sh
cat ~/.claude/skills/<skill-name>/scripts/*.py

危险信号:

  • ❌ 包含 curlwget 下载外部文件
  • ❌ 包含 rmdelete 等删除操作
  • ❌ 尝试访问 ~/.ssh/~/.aws/ 等敏感目录
  • ❌ 尝试上传数据到外部服务器

4. 检查社区反馈

bash 复制代码
# 查看 GitHub Issues 和 Discussions
# 搜索 "<skill-name> security" 或 "<skill-name> malicious"

5. 验证插件来源

bash 复制代码
# 查看已安装插件的来源
claude plugin list

# 确认插件来自可信的市场
# 官方市场: anthropic-agent-skills

官方插件 vs 第三方 Skills

特性 官方插件 第三方 Skills
安全审查 ✅ 经过官方审核 ❌ 无审查机制
信任度 需自行评估
版本控制 严格版本管理 依赖维护者
问责机制 明确的支持渠道 缺失
更新频率 定期安全更新 不确定
命名空间 使用前缀隔离 可能冲突

建议: 优先使用官方插件。第三方 Skills 仅在充分验证后使用。

沙箱隔离策略

对于来源不明的 Skills,采用隔离策略降低风险:

1. 使用专用测试环境

bash 复制代码
# 在 Docker 容器中测试可疑 Skills
docker run -it --rm node:18 bash
# 在容器内安装并测试 Skill

2. 限制文件系统访问

bash 复制代码
# 为 Claude Code 创建专用的受限目录
mkdir -p ~/claude-sandbox
# 在该目录内运行 Claude Code
cd ~/claude-sandbox && claude

3. 定期审查已安装 Skills

bash 复制代码
# 列出所有已安装 Skills
ls -la ~/.claude/skills/
ls -la .claude/skills/

# 定期清理不用的 Skills

企业/团队安全策略

如果你在企业环境或团队中使用 Skills:

1. 建立 Skill 审批流程

复制代码
成员发现 Skill → 填写评估表 → 安全部审查 → 批准安装 → 定期审计

2. 维护团队 Skill 白名单

bash 复制代码
# 将团队认可的 Skills 放在共享仓库
# 团队成员从白名单安装,禁止自行安装第三方 Skills

3. 使用私有 Skill 注册表

bash 复制代码
# 搭建内部的 Skill 市场
# 所有 Skills 需通过安全审查才能上架

4. 监控 Skill 使用

bash 复制代码
# 记录 Skill 的安装、更新、卸载操作
# 定期审计 Skills 的使用情况

发现恶意 Skill 后的处理

如果你怀疑某个 Skill 是恶意的:

1. 立即卸载

bash 复制代码
# 卸载插件
claude plugin uninstall <plugin>@<marketplace>

# 删除手动安装的 Skill
rm -rf ~/.claude/skills/<skill-name>
rm -rf .claude/skills/<skill-name>

2. 检查系统痕迹

bash 复制代码
# 检查最近的文件修改
find ~/ -type f -mtime -1 -name "*"

# 检查网络连接
lsof -i -n -P | grep ESTABLISHED

3. 旋转敏感凭证

bash 复制代码
# 如果怀疑 API Key 或 Token 泄露,立即更换
# 旋转 SSH 密钥
# 更改密码

4. 报告问题

bash 复制代码
# 向 Skill 仓库提交 Issue
# 向 Claude Code 官方报告
# 通知社区

安全最佳实践

DO ✅:

  • 优先使用官方插件
  • 安装前完整阅读 SKILL.md
  • 审查 scripts/ 目录的所有脚本
  • 定期更新 Skills
  • 在隔离环境测试可疑 Skills
  • 建立团队的 Skill 管理规范

DON'T ❌:

  • 不要安装来源不明的 Skills
  • 不要跳过 scripts/ 审查
  • 不要在生产环境直接使用未测试的 Skills
  • 不要授予 Skills 不必要的权限
  • 不要使用长期未维护的 Skills

快速安全检查命令

bash 复制代码
# 一键检查 Skill 的安全性
check-skill-security() {
    local skill_path="$1"
    echo "🔍 检查 Skill: $skill_path"
    echo ""

    # 检查 SKILL.md
    echo "📄 SKILL.md 存在: $([ -f "$skill_path/SKILL.md" ] && echo '✅' || echo '❌')"

    # 检查 scripts 目录
    if [ -d "$skill_path/scripts" ]; then
        echo "⚠️  发现 scripts 目录,包含以下文件:"
        ls -la "$skill_path/scripts/"
    fi

    # 检查外部链接
    echo "🔗 外部链接:"
    grep -h 'http' "$skill_path/SKILL.md" 2>/dev/null || echo "无"

    echo ""
    echo "⚠️  请手动审查上述内容后再安装"
}

# 使用方法
check-skill-security ~/.claude/skills/my-skill

常见问题

Skill 不触发

如果 Claude 没按预期使用你的 Skill,优先检查这三件事:

  1. 检查 description 是否包含用户可能说的关键词
  2. 确认对应插件已安装,或 Skill 已放在正确目录下
  3. 尝试用更匹配描述的措辞

Skill 触发过于频繁

如果 Claude 老是误触发:

  1. description 更具体
  2. 避免使用过宽泛的描述词

看不到所有 Skill

Skill 的描述会被加载进上下文。如果你装得太多,可能会撞上字符预算限制。遇到这种情况,可以用 /context 看看有没有相关警告。

参考资料

相关推荐
荼锦4 小时前
Agentic 设计模式详解 - 提示词链 (Prompt Chaining)
aigc·agent·ai编程
ljq4 小时前
关于Agent开发的阶段性思考———从基础原理理解到高阶应用实践的谜思解构
agent·ai编程
gyx_这个杀手不太冷静5 小时前
OpenCode 进阶使用指南(第一章:Agent 模式)
前端·javascript·ai编程
草梅友仁6 小时前
OpenClaw AI 助手实测与墨梅博客更新 | 2026 年第 10 周草梅周报
开源·github·ai编程
vjmap16 小时前
全新唯杰WebCAD编辑平台发布:全面拥抱AI,WebCAD智能体(Agent)来了
前端·gis·ai编程
GitLqr17 小时前
AI - Antigravity 不认全局 skills 怎么办?
agent·ai编程·gemini
周末程序猿18 小时前
Veri-ReActAgent:让 AI 写代码前先学会写测试
aigc·agent·ai编程
Jackson__20 小时前
Agent Skill 是什么?
前端·agent·ai编程