
先说个每天都在发生的场景我一边写着业务代码一边开着好几个AI聊天窗口反复粘贴报错信息、贴代码片段、重新解释项目背景。同一个“按团队规范生成组件”的需求换一个项目就要重新说一遍连带模型每次都要从零摸索一遍“该怎么做”。后来我把Claude Code装进了终端让它直接站在整个仓库里干活这个习惯才算彻底改掉。而真正让Claude Code从“一个能改代码的对话工具”变成“一个越用越懂我的干活搭子”的是它的Skills机制。Skills听起来有点抽象其实就是一个可以放进本地目录的“能力包”每个Skill是一个文件夹里面有SKILL.md描述文件加上可选的参考文档、模板和脚本。Claude Code安装好之后会自动扫描~/.claude/skills和项目里的.claude/skills目录遇到匹配的任务时把对应技能内容加载进上下文让模型用一种“我已经会这个技能”的状态来处理问题。这篇文章我会从Claude Code的安装开始把Skills的运行机制、GitHub上的Skills手动安装方法、常用技能推荐、自己开发技能的完整流程以及我在VSCode配置、接入DeepSeek这些场景里趟过的坑一次性写清楚。刚接触Claude Code、或者对Skills只闻其名不知道怎么上手的朋友可以直接照着操作。1. Skills为什么能“提升模型技能”先把运行机制看清楚1.1 同一个模型同一个问题结果为什么不一样我在没有装任何Skill的时候用Claude Code生成过一个PDF报告。流程是这样的模型先猜测用什么库然后写脚本执行报错修正再报错再猜。折腾了四五个来回出来的PDF格式还算能看但和我想的版式差了不少。后来我把一个现成的PDF Skill装进去同样一句“生成一份PDF报告”它直接进Skill目录读SKILL.md按里面的步骤选模板、调样式、生成文件一次就到位。差别不在模型本身而在“有没有一套已经验证过的方法”。模型的知识是广的但具体到某个细分任务它每次都在临时拼方案。Skill的本质就是把“会做”变成“做的方法对”——把验证过的步骤、模板、规范和脚本固化下来让模型照着执行。1.2 SKILL.md长什么样一个Skill的核心是SKILL.md结构非常简单--- name: pdf-report description: 当用户需要从Markdown或数据生成PDF报告时使用。包含模板、样式与转换脚本。 --- # PDF报告生成 1. 先读取 templates/report.md 作为基础框架 2. 按章节填充用户提供的内容 3. 用 scripts/convert.sh 转换为PDF 4. 生成后检查页数和格式如有异常再调整文件头部是YAML格式的元信息name是技能名字description是触发描述。模型正是靠description来判断“当前任务该不该加载这个Skill”。正文部分是操作指令写得越具体模型执行起来越稳定。目录里还可以放templates/、scripts/、references/这些辅助资源模型在加载Skill时会把它们一并纳入工作上下文。1.3 为什么说它是“按需加载”而不是普通prompt有人会问这不就是把一堆提示词塞给模型吗区别在于加载方式。把几万字的能力说明塞进系统提示词每次对话都会占用上下文窗口模型还要花力气区分哪段指令和当前任务相关。Skill是按需加载description匹配上了才读入正文匹配不上就完全不占用上下文。我用一个生活类比来理解普通prompt像是把所有工具都别在腰带上出门Skill则像工具箱——平时不背需要哪个拿哪个。这也意味着一个几十MB的技能库并不会让日常对话变慢、变贵只有真正用到它的时候才会生效。1.4 Skill、MCP和斜杠命令的分工很多刚接触Claude Code的人会把Skill和MCP、斜杠命令搞混它们其实是三个层面的东西机制解决什么典型场景MCP模型与外部系统/API的连接查数据库、调企业微信、读网页Skill让模型“做得专业”的程序性知识论文排版、前端组件规范、嵌入式调试套路斜杠命令固定指令的快捷方式/clear、/compact这类内置操作简单说MCP决定“模型能连上什么”Skill决定“模型把事做成什么样”斜杠命令则是操作上的快捷键。实际项目里它们常常搭配使用但概念上别混在一起否则排查问题时会找不到方向。2. 安装前先把三件事定下来Node环境、系统方案和支持区域2.1 第一步永远是检查Node版本Claude Code官方是作为Node.js命令行工具分发的所以先确认机器上有Node而且版本不能太老。我见过不少人直接在旧版Node环境上跑安装命令结果报一堆依赖错误最后才发现是版本问题。node -v如果提示命令不存在或者版本低于18我建议用nvm安装而不是直接用系统包管理器。Ubuntu上apt自带的Node经常是老版本而且升级麻烦。nvm可以按项目切换Node版本对前端、Agent开发都友好curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash export NVM_DIR$HOME/.nvm [ -s $NVM_DIR/nvm.sh ] \. $NVM_DIR/nvm.sh nvm install --lts node -v装完nvm后重新开一个终端node -v能正常输出版本号就说明Node环境没问题了。2.2 Ubuntu上安装Claude Code的直接命令环境准备好之后Ubuntu上的安装就是一条命令的事npm install -g anthropic-ai/claude-code安装完成后先验证一下claude --version能输出版本号就是装好了。第一次运行claude会进入登录流程支持用Anthropic账号走浏览器授权也支持直接用API Key环境变量。如果用API Key可以在启动前设置export ANTHROPIC_API_KEY你的密钥 claude提示全局安装会占用一个npm全局包的位置。不想用了卸载也很干脆npm uninstall -g anthropic-ai/claude-code。如果想把本地配置和登录态一起清掉再执行rm -rf ~/.claude但这样做会把所有已装的Skills一起删掉务必先备份。2.3 WindowsWSL2、原生PowerShell还是VSCode插件Windows上有三条路可以走我按推荐程度排一下。第一条路是WSL2里装Ubuntu再按上面Ubuntu的流程走一遍。这条路最省心因为终端环境、脚本权限、文件路径都和Linux一致Skills里那些Shell脚本不会因为路径分隔符问题出bug。第二条路是Windows原生安装。先去Node官网装LTS版然后直接在PowerShell里执行npm install -g anthropic-ai/claude-code。能用但要注意PowerShell和WSL的~目录不是同一个位置Skills放错目录会导致模型找不到。第三条路是用VSCode插件适合不太想碰命令行的朋友。插件市场里搜“Claude Code”官方扩展安装后左侧会出现对应的图标图形界面里就能管理Skills。关于VSCode的详细配置后面第6章单独展开。2.4 下载慢的处理和区域支持问题npm安装时如果速度感人可以先把registry切到镜像源npm config set registry https://registry.npmmirror.com这只是把npm包下载源换成镜像不影响Claude Code本身的账号体系和区域规则。装完之后如果想恢复官方源执行npm config set registry https://registry.npmjs.org就行。关于区域可用性这里说点实话。如果你在终端里看到note: claude code might not be available in your country. check supported countries...这行提示说明当前账号或所在区域不在官方支持列表里。我的建议非常直接以官方文档列出的支持区域为准在列表之外不要从来路不明的渠道下载安装包或者找共享账号既不稳定也有安全风险。真需要终端Agent能力可以换用同样支持本地配置的开源方案比如OpenCode而且很多Skills格式是通用的后面会讲怎么迁移。3. 从GitHub手动装Skills目录、下载方式和验证流程3.1 Skills该放在哪个目录Claude Code会扫描两个位置的Skills目录目录作用范围典型用途~/.claude/skills/当前用户所有项目个人常用的通用技能.claude/skills/项目根目录下仅当前项目团队共享、随仓库分发个人级Skills适合放“不管哪个项目都用得上”的能力比如PDF生成、报告模板。项目级Skills适合放和具体业务强绑定的技能比如某团队的前端组件规范、某套框架的调试流程放进Git仓库后队友clone下来就有。两个目录可以同时存在同名Skill以项目级的为准。3.2 三种下载方式按需求选第一种克隆整个仓库再拷贝。GitHub上很多仓库是“技能合集”里面塞了几十个Skill你要的只是其中之一。我一般这么干# 把整个仓库浅克隆到临时目录--depth 1只拉最新记录 git clone --depth 1 https://github.com/anthropics/skills.git /tmp/skills # 只要其中一个就单独拷这一个目录 cp -r /tmp/skills/document-skills/pdf ~/.claude/skills/第二种直接在GitHub网页端Download ZIP解压后把需要的Skill目录拖进~/.claude/skills/适合不常用命令行的朋友。第三种是给追求干净的人准备的用sparse-checkout只拉需要的子目录cd ~/.claude/skills git clone --depth 1 --filterblob:none --sparse https://github.com/某个用户的技能合集.git git sparse-checkout set 我需要的技能目录提示--depth 1和--filterblob:none都是减少下载体积的常用参数。技能合集仓库经常体积很大全量克隆既慢又占空间浅克隆加稀疏检出是我最常用的组合。3.3 最常见的坑把整个仓库当一个Skill这个坑我替你们踩过了。第一次装Skills的时候我把整个anthropics/skills仓库直接克隆到了~/.claude/skills/下面结构长这样~/.claude/skills/ └── skills/ # 仓库根目录 ├── SKILL.md # 不存在 ├── document-skills/ │ └── pdf/ │ └── SKILL.md └── developer-skills/问题就出在skills这个目录下面没有直接的SKILL.mdClaude Code根本不会把它当成一个Skill也就不会扫描它下面那些子目录。规则很简单——每个Skill目录里必须直接存在一份SKILL.md路径必须是~/.claude/skills/技能名/SKILL.md。装完之后我习惯跑一条命令检查结构find ~/.claude/skills -name SKILL.md看到输出的路径都是“技能名直接包含SKILL.md”才说明目录放对了。3.4 权限和验证流程Skills里如果带了脚本比如scripts/convert.sh还需要确保它有执行权限否则模型运行时会报Permission deniedchmod x ~/.claude/skills/你的技能/scripts/*.sh全部装完后启动claude在交互界面输入/可以看到命令列表新版界面右上角还有Skills按钮点进去能看到已加载的技能。我最常用的验证方式更直接提一个和该Skill匹配的需求比如装了PDF技能就问“帮我生成一份PDF报告”如果模型在回复中提到“我找到了pdf-report这个技能先看一下它的说明”就说明加载成功了。没提也没关系重点看它有没有按照SKILL.md里的步骤执行。4. 值得收藏的Skills来源和推荐清单4.1 去哪儿找官方仓库、GitHub话题和技能市场找Skill绝不是大海捞针我常用的来源就这几个来源说明怎么用官方仓库anthropics/skillsAnthropic官方维护质量最稳直接clone里面有PDF、PPT、DOCX、Excel等文档技能GitHub话题搜索claude-skills、agent-skills社区零散作品覆盖各种冷门场景按star排序读README确认结构Awesome清单awesome-claude-code聚合了工具、教程、技能链接顺着链接逐个看效率高各类技能市场站点有人专门做了“skills市场”支持网页浏览和下载先看预览页面的目录结构再说装不装社区技能市场这两年发展很快GitHub上甚至出现了codex-skills、opencode-skills这类话题。一个重要的判断标准大而全的“万能Skill”往往不好用反而那些描述精确、职责单一的Skill触发更准。4.2 按场景推荐的技能方向结合我平时在不同项目里的实际使用这几个方向的Skill价值最明显前端开发类。这类Skill一般包含设计稿转代码的规范、组件写法约定、Tailwind配置、可访问性检查清单。搜索关键词可以试试frontend skills、claude skills react。装了之后模型生成的代码会更贴合你团队的技术栈而不是每次都用它自己默认的那套结构。数学建模类。准备华为杯这类数模比赛时好用的Skills通常覆盖题目拆解、模型选型、LaTeX论文排版、数据预处理。搜索math modeling skills或者latex skills能找到不少。比赛时间紧这类技能能把“队友风格不统一”的问题压到最低。嵌入式类。STM32相关的Skills会把寄存器配置、时钟树分析、调试步骤固化成文档模型查起来比临时翻手册可靠得多。搜索stm32 skills、embedded skills。AI漫剧类。这类比较新Skills里一般包含角色人设卡模板、分镜脚本规范、文生视频提示词模板。团队做AI漫剧的都在收集搜索ai comic skills能看到一些。通用文档类。PDF、PPTX、DOCX的生成和处理官方仓库里就有现成的我建议人手必备。4.3 判断一个Skill能不能用的四条标准看到感兴趣的Skill别急着装。我花了几秒钟就能筛掉八成不靠谱的第一结构是否合法目录下有没有直接的SKILL.md没有就别装。第二描述是否明确如果description写的是“帮助用户做文档”这种大而空的话触发会非常混乱要么总被误触发要么永远不触发。第三仓库是否活跃看最近更新时间半年没动静的老技能里面的API用法大概率过时了。第四脚本是否敢执行第三方Skill会携带可执行脚本我不会一上来就跑先读一遍scripts/里的内容确认没有危险操作再启用。5. 自己开发一个Skill从目录骨架到调试上线5.1 最小可用的骨架定义一个Skill不需要任何特殊框架一个文件夹加一个SKILL.md就够了。我习惯把辅助资源也建好给模型留好发挥空间mkdir -p ~/.claude/skills/math-model-paper cd ~/.claude/skills/math-model-paper touch SKILL.md mkdir -p templates scripts目录建好之后结构是这样math-model-paper/ ├── SKILL.md ├── templates/ └── scripts/5.2 frontmatter是触发命门SKILL.md头部的name和description是整个技能最关键的部分尤其是description。Claude Code靠它决定“要不要加载这个技能”写得不好技能就等于不存在。我总结的写法要点描述里要包含触发场景、任务类型、什么时候不要用。举个例子--- name: math-model-paper description: 当用户需要数学建模竞赛的论文排版、题目拆解、模型选型建议时使用。仅在数模比赛场景下启用不处理纯代码Bug修复。 ---“仅在数模比赛场景下启用不处理纯代码Bug修复”这句是我强烈建议加上的。它能有效防止模型在普通编程任务里误加载数学建模技能干扰正常判断。5.3 一个完整的数学建模Skill示例下面是我给数学建模场景写的一个简化但完整的SKILL.md--- name: math-model-paper description: 当用户需要数学建模竞赛的论文排版、题目拆解、模型选型建议时使用。仅在数模比赛场景下启用不处理纯代码Bug修复。 --- # 数学建模论文辅助 ## 工作流程 1. 先读题提取约束条件、目标函数、数据类型输出一份题目拆解清单 2. 模型选型根据问题类型推荐模型列表对比优缺点 3. 论文排版按 templates/brief.tex 的章节结构组织内容 4. 自查用 scripts/check_structure.py 检查章节是否齐全 ## 排版规范 - 摘要控制在300字内写明用了什么模型、解决了什么问题 - 关键词不超过5个 - 正文图表必须编号并在第一次引用处说明 ## 引用模板 所有报告必须以 templates/brief.tex 为骨架不要自创LaTeX结构。配套的scripts/check_structure.py可以做一个最简单的章节检查脚本比如确认摘要、模型建立、模型求解、模型评价这些标题都存在。这样一个简陋但可用的Skill就成型了模型遇到数模任务时会按照这套规范干活而不是每次自由发挥。5.4 调试循环改了马上测Skill开发是个循环过程不是写一次就完事。我的调试流程是启动claude用一个明显匹配该技能的提问触发它。观察模型是否提到了“读取了xx技能”如果完全没反应多半是description里的关键词没覆盖住你的提问方式去改描述。如果触发了但没按SKILL.md执行就去改正文指令把步骤写得更明确。同一个问题多问两遍确认输出是稳定的而不是碰巧蒙对了。注意description太长或太散也不能用。我看到有人把几百字的说明书塞进description里结果模型触发时读到的全是模糊信息。描述要短、要准详细的步骤放在正文。5.5 共享发布到GitHub自己用得顺手的Skill值得共享出去。把Skill目录变成一个独立仓库推上GitHub其他人就能用第3章的方式克隆安装。如果你在公司团队里更好的做法是把Skill放进项目仓库的.claude/skills/目录所有开发者在项目里直接可用配合Git提交历史技能迭代也有迹可循。6. 进阶玩法VSCode配置、接入DeepSeek以及和Cursor互通6.1 VSCode里的Skills体验VSCode插件装好后左侧边栏会出现Claude Code相关的图标Skills的管理入口一般就在那里。图形界面的好处是直观能一眼看到所有已加载的Skills点开能查看SKILL.md内容不用像终端里那样靠/命令找。插件和命令行工具共用~/.claude/skills目录所以你在终端里装的Skills插件里也能看到反过来也一样。我个人的习惯是安装和管理Skills用命令行日常写代码用人机对话。插件的调试体验更好报错信息能直接在编辑器里看到遇到问题排查起来比纯终端舒服。6.2 把模型层换成DeepSeek合法的API配置方案Claude Code默认接Anthropic模型但它的环境变量设计得很开放支持通过兼容接口切换到其他模型提供商。DeepSeek官方就提供了Anthropic兼容端点配置方式如下export ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKENsk-你的DeepSeekKey export ANTHROPIC_MODELdeepseek-chat export ANTHROPIC_SMALL_FAST_MODELdeepseek-chat export ANTHROPIC_DEFAULT_OPUS_MODELdeepseek-chat这几个变量的作用分别是ANTHROPIC_BASE_URL指定兼容接口地址ANTHROPIC_AUTH_TOKEN换成你的DeepSeek密钥后面三个变量把模型路由指到DeepSeek的模型上。配置完后Claude Code的终端Agent骨架不变底层模型换掉了。这套方式适合什么场景比如团队有DeepSeek的API额度或者想把部分轻量任务交给成本更低的模型做。需要提醒的是不同提供商对工具调用的实现细节有差异有些Claude Code的高级功能在第三方端点上可能表现不一致。遇到异常先检查端点版本和返回信息别急着怀疑是Skills的问题。同理任何提供Anthropic兼容接口的服务商都可以用这套变量接入。6.3 Skills格式的横向迁移Skills这套“目录SKILL.md”的格式现在越来越像行业标准了。我在OpenCode、Codex、Cursor这些工具里都见过类似的结构OpenCode有自己兼容的技能目录Cursor支持项目级.cursor/skillsCodex也有基于规则文件的技能机制。写法逻辑几乎一致把Claude Code的Skill迁过去通常只需要微调目录位置和个别字段。这意味着你投入在Skills上的积累不会绑定在某一个工具上。哪怕哪天因为区域、授权或者其他原因换了工具技能资产照样能用。这点是我愿意持续往Skills库里投入内容的最大原因。7. 踩坑实录与Skills目录的日常维护7.1 我实际踩过的坑按排查链路整理坑一npm安装报错。现象是一大串依赖报错根部原因是Node版本太老。排查顺序是先node -v确认版本如果低于18就用nvm切到LTS。这个坑在Ubuntu上尤其常见因为apt默认源里的Node版本往往滞后。坑二区域不可用提示。终端打印note: claude code might not be available in your country说明账号或区域不在官方支持列表。我的处理办法前文说过不找非官方渠道直接看官方支持列表或者换OpenCode这类开源Agent。宁可换工具也不要牺牲稳定性。坑三Skill装了半天模型就是不触发。最典型的原因是description太笼统比如只写“帮助用户写论文”结果模型不知道该在什么时候加载。排查时先看SKILL.md的description把它改成带触发条件的精确表述。我遇到过最离谱的情况是description写成了“一个很有用的技能”这等于告诉模型“你自己掂量着办”。坑四脚本权限不足。Skill里的.sh脚本运行时提示Permission denied。原因很直白git clone下来的文件默认没有执行权限chmod x一下就好。Windows原生环境还要注意PowerShell的执行策略有些脚本会被拦建议直接放WSL里跑。坑五多个同名Skill冲突。我从不同仓库装了同名技能结果模型一会儿遵循这个的规范一会儿遵循那个的输出不稳定。排查后删掉旧版只保留最符合我习惯的那个。现在安装前我都会先ls ~/.claude/skills看一眼有没有重名。7.2 干净度就是战斗力定期清理的思路社区里有人专门分享过清理Skills的方法核心思路我很认同别让Skills库膨胀成一个垃圾场。Skills多了不一定更强反而会因为触发混乱拖累模型判断。我每隔一两个月会做一次“技能体检”翻一遍所有已安装的Skills看哪些半年没触发过、哪些description写得含糊导致频繁误触发、哪些和现在的工作已经不相关了。体检后按这个顺序处理把半年没触发过的移到一个backup目录先不删把描述写得差的重新改写而不是删掉重装最后留下5到10个真正高频使用的核心技能。清理前记得git commit一下错了随时能回滚。用Git管理~/.claude/skills目录是我强烈推荐的做法它让清理变成了一件零风险的事。7.3 我个人的习惯踩过这么多坑之后我现在有一套固定的管理习惯把~/.claude/skills初始化为Git仓库每个Skill升级时在SKILL.md末尾更新一行变更记录新装技能前先find ~/.claude/skills -name SKILL.md检查目录结构每次清理前先打一个tag。这套习惯看着琐碎但真正救过我一次——有一次批量清理时误删了一个还在用的建模技能一句git checkout就全部找回来了。所以我的最后一条建议是技能可以慢慢建备份和版本管理一定要提前做好别等丢了才后悔。