Claude Code 这个终端里的 AI 编程 Agent,最近几乎把所有做开发的朋友都圈进来了。它跟 IDE 里那些只做代码补全的插件完全不同,是一个能真正看懂整个项目结构、自己动手改文件、跑测试、提交 Git 的智能体。过去大半年我把这个工具从安装、配置到深度定制完整过了一遍,中间踩了无数坑,才逐渐发现网上那些零散教程里讲的“技巧”,本质上可以整理成一套可复用的技能清单。
这篇文章我直接把这套清单里最值得掌握的 10 个技能拆开讲。新手可以按顺序往下看,从安装到上手再到进阶;已经用过一段时间的朋友,可以直接跳到“Skills 技能系统”和“Token 成本控制”那几节,这两块是决定你能不能真正把它当主力开发工具的关键。我尽量只讲实操中验证过的东西,每个技能都会解释为什么要这么做、能做掉什么问题,以及我踩过的坑。
1. 从零到一:让 Claude Code 先跑起来
1.1 技能1:三分钟完成官方安装配置
安装这件事听起来简单,但我在多个环境里装过之后发现,真正顺滑地把 Claude Code 跑起来,还是有几个容易被忽略的细节。
官方推荐的方式是通过 npm 全局安装,在终端执行:
npm install -g @anthropic-ai/claude-code装完之后直接执行claude命令就能进交互界面。首次启动会要求登录账号或者填入 API Key,这里有一个非常关键的判断:如果你用的是订阅账号,登录后可以直接走 Authentication 流程,系统会生成一次性验证码;如果你打算用 API Key 跑,那么初始化时选 “Skip” 跳过登录,之后在项目目录下手动配置环境变量。
Windows 上最容易翻车的点有两个。第一个是 Node.js 版本太老,官方要求 Node 18 及以上,我见过不少报ERR_PNPM_NO_GLOBAL_BIN_DIR或者模块找不到的错误,最后发现是 Node 版本的问题,直接用 nvm 切到最新 LTS 就解决了。第二个是 PowerShell 执行策略,npm 全局安装的脚本默认可能被拦,需要以管理员身份执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUsermacOS 上如果遇到权限报错,多半是系统自带 Node 和 nvm 装的 Node 路径不一致,建议直接用which node确认一下安装路径。
安装完成后先跑一个最小验证,在空目录里执行claude,然后输入一句 “帮我写一个 Python 快排函数”。这一步能同时确认网络连接、鉴权、上下文读写三条链路是否正常。实测下来,如果这个最简流程能通过,后面大多问题都是配置层面而非安装层面的。
1.2 技能2:跨编辑器使用——从终端到 VSCode 的协作模式
Claude Code 最早是纯终端工具,后来官方做了 IDE 插件,但很多人忽略了一个点:终端模式和 IDE 模式并不是“二选一”,而是两种互补的交互方式。
终端模式适合做整仓级操作:让 Agent 自己遍历代码结构、批量改文件、执行测试。这种场景下你只需要给一个高层指令,它会自己决定怎么拆解任务。
VSCode 模式适合做“局部对话”:你选中某段代码,右键呼出 Claude Code 面板,让它就当前选区给出解释或修改建议。这样不会把整个项目的上下文都灌给它,上下文窗口压力小,回答也更聚焦。
实操中我推荐的工作流是:先用 VSCode 模式做局部探索和重构建议,确认方向后切回终端模式放权执行。在 VSCode 里装插件时注意区分两个名字,官方的是 “Claude Code”,目前支持直接在侧边栏打开对话、在编辑器里显示 diff 预览。社区还有一个 “Claude Code for VS Code” 的第三方插件,功能类似但更新节奏不同,建议优先用官方版。
这里有个容易踩的坑:如果你在 VSCode 里用插件时发现命令面板找不到 Claude Code 选项,先确认扩展是否加载了,再看终端是否已经登录过。IDE 插件会复用终端 CLI 的鉴权信息,如果 CLI 没登录,插件就会一直转圈。另外在 VSCode 的settings.json里可以指定 CLI 路径:
{ "claude-code.path": "/usr/local/bin/claude" }Windows 用户则要填claude.cmd所在的完整路径。
2. 工作台定制:让工具“长”成你想要的样子
2.1 技能3:Settings.json 深度配置,打造顺手的工作台
Claude Code 的绝大部分行为都由配置文件控制,默认路径是~/.claude/settings.json(全局配置)和项目根目录下的.claude/settings.json(项目级配置)。项目级配置的优先级更高,这设计很实用——不同项目可以用完全不同的参数跑。
我自己的全局配置长这样:
{ "model": "claude-sonnet-4-20250514", "max_turns": 50, "autoCompactEnabled": true, "includeCoAuthoredBy": false, "permissionMode": "default", "allowedTools": [ "Bash", "Write", "Edit", "Read" ] }几个值得解释的字段:
model:指定默认模型。不同模型在编程场景下的表现差异很大,Sonnet 系列擅长代码生成,Opus 系列在复杂推理上更强。日常开发用 Sonnet 性价比最高。max_turns:单个任务里 Agent 最多执行多少轮操作。设太大容易失控,设太小又会让任务频繁中断。我试过 30 到 100 之间的几个档位,50 是一个比较稳的折中值。autoCompactEnabled:上下文窗口快满时自动压缩历史对话。这个我建议一直开着,否则长任务很容易中途“失忆”。allowedTools:白名单机制。Claude Code 能执行的工具有很多,包括Bash、Read、Write、Edit、Glob、Grep等。如果你担心它乱跑命令,可以在这里限制权限。
项目级配置通常还会加一个env字段,用来注入项目专属的环境变量,避免污染全局:
{ "env": { "ANTHROPIC_MODEL": "claude-sonnet-4-20250514" } }这个文件用的是 JSON 格式,但官方也支持在.claude/settings.local.json里写本地私有配置,并且该文件默认会被 .gitignore 忽略,适合放个人偏好的东西。
补充一个我调试时踩过的坑:如果改了配置但感觉没生效,先执行claude /status查看当前加载了哪些配置文件和模型参数。之前有朋友改了半天settings.json,最后发现是拼写错误——autoCompactEnabled少写了字母,配置不会报错但也不生效,这类静默失败是最烦的。
2.2 技能4:多模型接入——本地模型与第三方 API 共存
Claude Code 不只能跑官方模型。因为鉴权本身就支持自定义 Base URL,所以只要 API 接口兼容 Anthropic 格式,就能接入第三方模型或本地模型。这在热词里被大量搜索,说明是刚需,尤其是那些想省订阅费、或者有数据安全要求的朋友。
以接入 DeepSeek 为例,在项目根目录下配置:
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" export ANTHROPIC_API_KEY="你的DeepSeek API Key" export ANTHROPIC_MODEL="deepseek-chat"注意这里有一个硬性要求:第三方 API 必须兼容 Anthropic 的消息格式。DeepSeek 官方就提供了/anthropic的兼容端点,很多其他模型服务商也陆续跟进了。如果服务商没有 Anthropic 兼容协议,单纯改 BASE_URL 是跑不起来的,报错信息通常是Unsupported protocol或者404 not found。
如果想把本地模型(比如 Ollama)接进来,配置逻辑类似:
export ANTHROPIC_BASE_URL="http://localhost:11434/v1" export ANTHROPIC_MODEL="qwen2.5-coder:latest"不过说实话,本地模型的上下文长度和指令遵循能力跟云端模型差距还挺大。我做了一次对比测试:让同一段重构任务分别跑在 DeepSeek 和本地 7B 模型上,本地模型在单个文件的小改动上能胜任,但一旦涉及多文件联动、判断模块依赖关系,正确率断崖式下降。所以我的建议是:本地模型适合做脱敏环境下的简单任务,真正重活还是接云端 API 更靠谱。
顺带分享一个工具:cc-switch。这个开源小工具可以在多套 API 配置之间快速切换,适合同时用官方、第三方、本地多套环境的开发者。我通常是在.claude目录下维护多份配置,然后通过 cc-switch 一键切换,效率很高。
3. 让 Agent 更聪明的四个核心能力
3.1 技能5:玩转 Skills 技能系统
如果你的 Claude Code 还停留在“能跑起来、能对话”的程度,那只能算用到了它三成能力。真正把 Agent 质量拉开差距的,是官方在 2025 年推出的 Skills 技能系统。
什么叫 Skills?你可以把它理解成“预制的大脑插件”。每个 Skill 本质上是一个带SKILL.md描述文件的目录,里面写了一套针对特定任务的执行方法论。当你触发某个技能时,Claude Code 会读入对应的指令集,让模型按这套设定好的方式思考和工作。
这跟传统 Prompt 的核心区别在于:普通 Prompt 是“你告诉它怎么做”,Skills 是“你自己沉淀了一套最优做法,然后把它固化成工具”。这就好比同样是让一个厨师做菜,Prompt 是口头描述今天想吃啥,Skill 是把某个名厨的秘方直接装进他的脑袋。
使用 Skills 最常见的入口是/skill命令。在交互界面输入/skill会列出所有可用技能,选中后即刻生效。另外,在对话里如果任务描述和某个技能的场景高度匹配,Claude Code 也会自动加载对应技能,无须手动触发。
官方内置了一批通用技能,比如做安全审查、代码优化、依赖分析等。我个人的实际经验是:自从用上技能系统之后,重构类任务的输出稳定性提升非常明显,因为技能里把“先梳理调用关系、再改接口、最后跑测试”的步骤固化下来了,模型不会跳过关键验证环节。
3.2 技能6:开发属于自己的技能包
如果说使用官方技能是“站在巨人的肩膀上”,那么自研技能就是把你自己踩坑总结的经验变成可复用的资产。
技能目录的标准结构是这样的:
.claude/ skills/ sql-optimizer/ SKILL.md assets/ 示例文件.pngSKILL.md是技能的核心,由两段组成:开头是 YAML Frontmatter 元信息,后面是自由格式的 Markdown 指令正文。
以一个我常用的 SQL 优化技能为例:
--- name: sql-optimizer description: 用于分析并优化慢查询SQL,适用于MySQL场景。当用户提到SQL慢、查询超时、索引失效等问题时自动使用。 --- # SQL 优化流程 1. 先定位查询涉及的所有表,检查表数据量和索引情况。 2. 用 EXPLAIN 分析执行计划,重点看 type、key、rows 三列。 3. 如果出现全表扫描(type=ALL),检查 WHERE 条件列是否有索引。 4. 遇到 OR 条件导致索引失效时,建议改用 UNION 拆分为两条查询。 5. 所有优化建议必须附上“优化前/优化后”的执行计划对比。写技能指令集有几个关键心得:
- Description 一定要写得具体,最好带上触发场景的词。因为自动触发依赖语义匹配,描述太泛会导致该触发时没触发。
- 指令正文分“步骤 + 约束 + 输出格式”三层。步骤告诉它做什么,约束告诉它不能做什么,输出格式保证结果可以直接用。
- 不要写一大段概念性的废话,模型不缺概念,缺的是可执行的判断标准。
开发完技能后,在项目里执行/skill,如果看到自己的技能出现在列表里就说明加载成功了。我强烈建议每个团队都建一个共享技能仓库,把代码规范、发布流程、测试要求这些都做成技能包,新成员上手项目的时间能缩短一大截。
3.3 技能7:Context 管理与对话历史
Claude Code 有一个让很多新手困惑的设计:每次启动都是全新的会话,上次聊到哪它完全不记得。这不是 bug,而是刻意的架构设计——每个进程都是独立上下文,避免长期任务累积导致上下文爆炸。
那要保存任务进度怎么办?官方提供了明确答案:claude --resume。执行后会列出历史会话列表,选择对应的会话 ID 就能接着上次的进度继续跑。
但仅仅会--resume还不够,真正的 Context 管理是控制“喂给它什么信息”。Claude Code 会自动读取项目里的CLAUDE.md文件,把它作为“长期记忆”注入每轮对话。这是最容易忽略但最值得投入的一个文件。
我通常会在CLAUDE.md里写三类内容:
- 项目架构总览(目录结构、核心模块、技术栈)
- 代码规范约定(命名方式、错误处理模式、提交信息格式)
- 常用命令(开发启动、测试、构建)
这样 Claude Code 每次进入项目都能快速建立“项目认知”,不用你反复解释背景。实测下来,加了CLAUDE.md之后,Agent 给出的代码复用了项目已有工具函数,而不是自己新造一套,整体一致性好很多。
另外两个常用命令:/compact手动压缩上下文,/clear清空当前上下文但保留会话记录。任务做到一半发现 Agent 越来越迟钝,多半是上下文窗口快满了,先/compact压缩一下再继续,比推倒重来省事。
3.4 技能8:Token 成本控制三板斧
Token 消耗是 Claude Code 绕不开的痛点。我最早用的时候,跑一个小需求能烧掉不少钱,后来总结出三板斧,成本直降一大截。
第一板斧:控制输入信息量。Claude Code 确实会自己读取文件,但默认读哪些文件跟当前任务关联度有关。很多人无意识地把大文件拖进去或者让它读大量不相关的日志,Token 直接爆炸。我的习惯是先用定向指令缩小范围,比如明确说 “只查看 src/modules/user 下的文件,忽略其他目录”,Agent 就不会满仓库乱翻。
第二板斧:设置 max_turns 和权限限制。前面提到的allowedTools不只是安全用的,它还能避免 Agent 反复跑到无关目录执行无意义的操作。再配合max_turns限制最大轮数,防止它在某个死胡同里反复试错。
第三板斧:善用项目记忆,减少重复沟通。把项目背景、技术栈、编码规范都写进CLAUDE.md,Agent 第一轮就能给出高质量答案,省去了大量“解释背景-理解错-再解释”的往返消耗。这块省下的不仅仅是 Token,更是时间。
实测数据给大家一个参考:一个中等规模的 CRUD 项目,完成一个新模块开发(约 200 行代码),在我配置好CLAUDE.md和技能包之后,Token 消耗大概降低了 40% 左右。省钱的本质不是让它少干活,而是让它更聪明地干活。
4. 效率与成本的终极平衡
4.1 技能9:CLI 效率操作与自动化脚本
Claude Code 的终端模式有一个常被忽略的优势:可以完全脚本化。这意味着它不只是一个人机对话工具,还能融入自动化流水线。
最简单的用法是管道模式:
echo "给 src/utils/date.ts 里的 formatDate 函数添加单元测试" | claude这种方式很适合在 CI 或者本地脚本里调用,不需要进入交互式界面。
更进一步,我会把一些重复性任务封装成 shell 脚本。比如做一个code-review.sh,自动让 Claude Code 审查当前分支的改动:
#!/bin/bash git diff origin/main --name-only | while read file; do echo "请审查 $file 的改动,重点检查潜在 bug 和安全隐患" | claude done还有一个小技巧:通过alias给常用指令起缩写名。比如:
alias cc='claude' alias unreview='claude --resume'把这两个 alias 加到 shell 配置里,日常操作会顺手很多。我现在的习惯是,代码写完后不再肉眼扫一遍,而是直接引一条 “帮我复查这几次提交” 的管道命令,让它从整体视角重新审视一遍改动。这个流程在多人协作时尤其有用,等于多了一个不看人情世故的reviewer。
4.2 技能10:前端/全栈项目实战中的高杠杆用法
这套技能清单里,前 9 个都是偏工具能力的,最后一个我想讲偏实战的:如何把它用在完整项目开发里,而不是永远停留在“改个函数”的层面。
以我最近实践的一个中后台前端项目为例。整个项目开始前,我先在根目录下搭建好CLAUDE.md和技能包,把项目里要用的组件库、UI 规范、API 请求封装方式全部固化进去。随后让 Claude Code 生成一个核心页面,它会自动调用技能里的规范,产出的代码风格和团队现有代码高度一致,不需要我手动调整。
这个过程中最关键的实操点是:永远先提供骨架和边界条件,再让它补充内容。比如生成一个用户列表页,我会先描述清楚“路由路径、接口地址、表格字段”,剩下的交给 Agent 填充。而不是笼统地说“帮我做个用户管理页面”。后者虽然 Claude Code 也能做,但大概率跟你项目现有的技术栈和目录组织方式对不上。
另外一个实战技巧是“多 Agent 并行”:把项目拆成几个相对独立的功能块,开多个终端窗口各跑一个 Claude Code 实例,每个负责一块。前端页面、接口 mock、数据库脚本可以在三四个终端里同时推进。我第一次这么干的时候,原本预计一天的工作量,实际三个小时就出完了初稿。这个效率提升来自任务切分,而不是单个 Agent 的速度——切分之后的每个子任务都足够小,Agent 不需要频繁切换上下文,质量自然更稳定。
5. 避坑指南:高频问题与排查实录
5.1 技能10:问题诊断能力——乱码、断联、模型报错
用了这么久,我很清楚 Claude Code 不是没有问题。下面这些问题是我自己在不同电脑上逐个踩过、并且查了大量资料才搞明白的,整理成速查表直接送给大家。
高频问题速查:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| Windows PowerShell 中文乱码 | 终端编码不是 UTF-8 | 执行chcp 65001切换代码页,或改用 Windows Terminal |
报错"xxx" is not a model this version of Claude Code recognizes | 模型名与实际可用模型不匹配,或版本太旧 | 执行claude update更新到最新版,检查ANTHROPIC_MODEL环境变量 |
| 第一次运行卡在登录页面 | 网络或终端权限问题 | 确认 Node 版本 >= 18,测试 API Key 是否有效,Windows 用户检查 PowerShell 执行策略 |
| 运行一段时间后 Agent 突然“失忆” | 上下文窗口已满,触发自动截断 | 使用/compact手动压缩,或开启autoCompactEnabled配置 |
提示your organization has disabled claude subscription access | 企业域名限制了 Claude 订阅权限 | 联系管理员确认组织策略,或切换到个人账号登录 |
| 对话历史找不到了 | 误以为会话会自动保存 | 启动时用claude --resume选择历史会话,或主动将重要约定写进CLAUDE.md |
这条表格里我特别想强调的是第二行那个“模型名不被识别”的错误。这个报错出现频率极高,尤其是很多人配置了第三方模型后,在环境变量里写了ANTHROPIC_MODEL,但第三方模型名和 Claude Code 内置的模型名不在一个体系里,导致校验失败。解决办法就是要么升级 CLI 版本,要么把环境变量里的模型名改成官方支持的名字。
另外一个小技巧:当你觉得 Agent 行为异常时,用claude --debug启动,它会打印每个 API 请求的详细信息,包括请求头、Token 数量、模型名。排查问题的时候这个参数是神器。
5.2 实操心得:几个能救命的小技巧
最后分享几个我在实战中总结出的“保命技巧”,很多都是用教训换来的。
第一,不要在 Agent 正在大批量写文件的时候按 Ctrl+C 强制中断。Claude Code 执行写操作时是分步进行的,强制中断可能导致文件只写了一半,留下一个残缺的语法错误。如果需要停止,先发一条指令让它“停止当前操作并等待”,给它一个正常的刹车过程。
第二,给 Agent 的指令里一定要带“小步走,多验证”的意思。Claude Code 在执行多步骤任务时,有时会追求“一口气做完”,结果中途某一步出错了它还在继续。我习惯在复杂任务的指令末尾加上一句“每完成一个步骤就运行测试,确认通过后再继续”,输出稳定性立刻提升。
第三,涉及破坏性操作时,先让它输出命令,再手动执行。比如删除数据库、覆盖重要文件、强制推送 Git,这类操作我从来不给 Agent 直接执行权限,而是让它把命令放到代码块里给我看,我自己确认后粘贴执行。虽然麻烦了一点,但绝对值得。
第四,版本管理是最后一道防线。跑自动化重构任务之前,先确保git工作区是干净的,最好新建一个分支再做改动。Claude Code 再怎么聪明,偶尔还是会做出让人意外的操作,有分支保护心里就踏实。
写在最后的扩展建议
如果你把这 10 个技能都串起来,会发现 Claude Code 的能力边界拓展得比想象中大得多。从最基础的安装配置,到通过 Skills 把个人经验固化,再到用 Token 控制策略降低成本,这个工具已经从一个“聊天机器人”进化成了真正可以长期使用的开发搭档。
我个人最明显的改观发生在“技能5”和“技能6”落地之后。以前每次重构代码,我都得反复给模型解释项目背景和代码规范,现在只要把技能包放进去,它就能按团队标准直接干活。这种“把个人经验沉淀为团队能力”的做法,我认为才是 Claude Code 这类 Agent 工具最有价值的地方。
最后给读者的建议:不用急着把 10 个技能一次全学会。先按“安装 → 配置 → 写 CLAUDE.md → 控制 Token → 做第一个自研技能”的顺序走一遍,这个闭环完整走下来之后,你对工具的理解会完全不一样。剩下的技能会在这个过程中自然补全。