Claude Code 使用指南
读完这一篇,你能自己把它装好、跑通第一个任务,并且知道它动手之前你到底要盯住哪几处。
📅 更新于 2026-09-13
本文校对于 Claude Code @ 2.1.269 · 官方源:docs.claude.com/en/docs/claude-code
0030 秒速览:三句话 + 按你的处境直接选
这一节不是目录。它给你三个结论、一张"我现在该看哪节"的对照表,和一条今天就能走完的上手路径。剩下的篇幅都在解释这三句话为什么成立。
① 它不是问答机器人——它会自己去读你的项目文件、改文件、敲命令、管 Git(Git 是记录代码改动历史的工具,也是你和它交接改动的地方);你说清楚要什么,它动手,最后你把关。
② 它默认每做一步都先问你——那个"要不要执行"的弹窗不是 bug,是你和它之间唯一的刹车,确认放心了再放开(见 07)。
③ 放行之前必须亲眼看一遍它改了什么(这个"改动对照"叫 diff,见 05)。它改得对不对,责任在你,不在它。
按你的处境,直接用这个
| 你现在的状态 | 直接跳到 | 你会拿到什么 |
|---|---|---|
| 刚听说它,还在犹豫要不要学 | 02 · 03 | 看清它省掉的是哪一段活、哪些活交给它最划算 |
| 决定用了,想马上跑起来 | 04 → 05 | 装好、跑通第一个任务,约 15 分钟 |
| 装好了,但每次它要改文件我都心慌 | 07 | 六种权限模式的区别,和一套新手起步组合 |
| 它给的结果总是不对味 | 06 | 一句能用的指令模板,和"贴报错"的正确姿势 |
| 每次开新会话都要重复交代项目规矩 | 09 | 用一份 CLAUDE.md 一劳永逸 |
| 感觉它话很多、账单涨得快 | 10 | 按任务选档的表格,和三个省用量习惯 |
| 同一套流程我每天要教它一遍 | 11 | 把这段流程打包成一条可调用的命令 |
| 想让它读 GitHub、Jira、数据库 | 13 | 三种接法,和"第三方代码"的风险边界 |
| 想让它进 CI,PR 一来自动审 | 15 | 一段能改改就用的 GitHub Actions 配置 |
| 它不听话了 / 报错了 | 20 | 按现象对表的排查清单 |
一条可执行的上手路径
四条路任选其一,不要两条都装——装了两份会互相抢,版本也对不上(见 04)。
复制一个小项目,或者随便建个空目录。别一上来就在你在意的仓库上试(见 05)。
这就是权限模式在起作用。先保持默认、每步都点确认,等你摸清它的脾气再说(见 07)。
CLAUDE.md(约 10 分钟)把"构建命令、命名约定、绝对不许碰什么"写进去,从此不用每次重复(见 09)。
用自己的话讲清它和聊天机器人的区别;独立装好并跑通一个任务;说得出六种权限模式分别在什么场合用;以及知道哪一件事它永远不会替你做(替你承担"这个改动对不对"的责任)。
01它到底是什么?(先破三个错想)
官方对它的定义只有一句:an agentic coding tool that reads your codebase, edits files, runs commands, and integrates with your development tools——一个会读你的代码库(代码库 = 你这个项目的全部代码文件)、改文件、跑命令、并且接进你现有开发工具的"编程代理"。把它翻成人话的难点不在"编程",而在代理这两个字。
先破三个错想
以为还是在网页里跟 AI 聊天,只是问的问题更专业。
你启动它的那个目录(连带下面的子目录)里的文件,它能读、能改、能新建;它还能在这个目录里敲命令。聊天窗口碰不到你的硬盘,它能。
以为交付物是一段贴在对话里的代码块。
它把文件改完,然后把"改了哪几行、从什么变成什么"摆给你看(这东西就叫 diff,读作"迪夫",意思是改动前后的逐行对照)。你点同意,改动才算数。
以为有个开关一开,任务从头跑到尾不用管。
它确实能连续工作很久(有专门的"放手模式",见 07),但前提是你能说清验收标准、并且事后看得懂它改了什么。这两件事它替不了你。
一句话版本:它是什么
它是一个跑在你终端里的编程代理。"终端"就是你敲文字命令操作电脑的那个黑框窗口(macOS 的 Terminal、Windows 的 PowerShell 都算);如果你从没用过终端,官方专门写了一篇给新手的终端入门,本文后面每个命令都会写清楚在哪儿敲。
它和你之间是一次分工:你负责"要什么"和"这样对不对",它负责"翻代码、动手改、跑一遍验证、把改动整理给你看"。整篇文章其实都在讲这条分工线画在哪里。
机制:它凭什么能"自己动手"
它没有魔法,靠的是三件普通的事:
- 它有一个工具箱——读文件、搜代码、改文件、执行命令、查网页之类的动作,各自是一个"工具"。它每走一步,就是挑一个工具来用。
- 它的每一步都要过一次闸——用哪个工具、为什么用,都摆在你面前(或摆给一个"审查模型"看,见 07)。这就是权限模式存在的原因。
- 它的记忆分两种——一种是你写给它的项目规矩(
CLAUDE.md),一种是它自己攒的笔记(自动记忆)。两种都是"每次开新会话重新读一遍",所以它并不是"记得你",而是"每次都被重新告知"(见 09)。
把它想成一个刚入职、能力很强、但对你的项目一无所知的同事:他会读代码、会改、会跑测试,但他不知道你们团队"上传前必须先跑 lint"、也不知道"这个目录是遗留代码别动"。你要么在入职说明里写清楚(CLAUDE.md),要么每次口头交代。
这个类比到这里就不准了:真人同事会自己观察、会记住一次教训,而他不会——每一次新会话,他都像第一天上班。这也正是"为什么必须写下规矩"的真正原因。
它和 ChatGPT、Copilot 差在哪
| 工具形态 | 它交付什么 | 什么时候该用 · 别当什么用 |
|---|---|---|
| 聊天机器人(ChatGPT 网页等) | 一段回答、一段代码片段 | 问思路、学概念、写一段孤立的小函数时用它。别指望它知道你的项目里到底有什么——它看不到你的硬盘。 |
| 编辑器补全(Copilot 这类) | 光标处的下一行、下一个片段 | 你已经想清楚要写什么、只想少敲几个字时用它。它不会跨文件改、不会跑测试、不会建分支。 |
| 编程代理(Claude Code) | 落到文件里的真实改动 + 跑过的验证结果 | 任务能用"改完之后我能验证它对不对"描述时用它。别把它当成一次问一句的搜索框——它一次能干一长串活,你给的上下文越完整,它越准。 |
它能碰到你项目里的哪些文件?
默认只碰你启动它时所在的那个目录,以及它下面的所有子目录。想让它在别处也动手,有两种办法:启动时加 --add-dir 路径,或者会话里敲 /add-dir 路径 临时补一个。这个默认值的用意很直白:别让它顺手改到你没打算让它碰的地方。
注意一个容易忽略的边界:官方文档明确说,从"补加进来的目录"里不会自动发现那套 .claude/ 配置(也就是权限规则、技能等)。所以补加目录只是"开了文件访问权",不是"把它当一个新项目接进来"。
它在哪几个界面里能跑?
同一套引擎,多个门面。你在终端里配好的项目规矩、权限规则、外部工具连接,换到别的界面照样生效——因为它们读的是同一批配置文件。
| 界面 | 它是什么 / 适合谁 | 什么时候选它 · 别当什么用 |
|---|---|---|
| 终端(命令行) | 功能最全的形态,本教程默认讲这个 | 想要最全能力、想接脚本和流水线时用它。别怕它——学会五个命令就够日常了(见 08)。 |
| VS Code 插件 | 在编辑器里就能看改动、指向文件 | 本来就在 VS Code 里写代码的人用它。它和终端读同一份配置,不是另一套东西。 |
| JetBrains 插件 | IntelliJ / PyCharm / WebStorm 等系列 | 用 Java / Kotlin / Python IDE 的人用它。 |
| 桌面 App | 不碰终端也能用,能并排开多个会话 | 不想学命令、或者要同时盯好几个任务时用它。功能上新版本有细微差异,追求最全还是回终端。 |
| 网页版 | 浏览器里跑云端会话,不用本地环境 | 手上没有合适的机器、或者想临时试一下时用它。 |
| 手机 App | 出门在外发起或续看任务 | 只想看看进度、或者在路上布置任务时用它。 |
官方还提供了 Chrome 扩展、Slack 集成、Remote Control(把本地会话转到另一台设备继续)等入口。记住一句就够:登录门槛按用户算,配置按目录算,所以换界面不用重配。绝大多数界面需要一份付费订阅或一个按量计费的 Console(API)账户——免费套餐不含 Claude Code。
02它到底替你省了哪一段活?
先说结论:它省掉的不是"写代码"那几分钟,而是一次改动从头到尾中间那一整段搬运和试错——找文件、对齐路径、装依赖、跑一遍、复制粘贴报错、再来一遍。
1. 在聊天窗口里描述需求
2. 把回复里的代码手动复制到对应文件
3. 手动装依赖、手动跑测试
4. 手动 git add / commit / push
5. 去网页上手动开一个合并请求(PR)
1. 在终端里说"修好这个 bug,改完跑测试"
2. 它自己定位、改文件、跑验证
3. 你把改动对照看一遍,放行
省掉的到底是哪一段
不是为了省打字,是为了省切换。每在"聊天窗口 → 编辑器 → 终端 → 浏览器"之间跳一次,你就丢一次上下文:刚才那段代码对应哪个文件、报错信息里说的是哪一行、上一次改完有没有真的跑过。它的价值就在这条链路上——把四个窗口收进一个会话,并且每一步都留下可回看的痕迹。
哪些活交给它最划算
| 活 | 为什么划算 | 怎么判断"它干完了" |
|---|---|---|
| 修重复性的报错 | 报错本身就把线索给全了,不需要你补充背景 | 测试从红变绿,而且你能看懂它改的那几行 |
| 给没测试的旧代码补测试 | 这是"照着现有风格再写一遍"的活,机械但费时 | 新用例真的跑起来了,不是只把文件写出来 |
| 批量改格式 / 改命名 | 规则统一、覆盖面大、人容易漏 | 构建和 lint 都过 |
| 看懂一段陌生日志 | 它读得比你快,而且能顺手把相关代码翻出来 | 它给出的根因你能自己复述一遍 |
| 从零搭一个一次性小工具 | 没有历史包袱,失败了删掉也不心疼 | 你真的按它写的说明跑起来了 |
| 起项目骨架 / 迁移目录结构 | 步骤多、判断少,适合交给它一口气做完 | 能编译、能启动、能跑通最基本的启动检查 |
哪些活别交给它
- 碰密钥和生产数据——不是因为它一定会做错,而是这类操作出错之后你没法"回退一下"。
- 需要多人对齐的架构决策——它能给你三个方案和各自的代价,但决定该由你们团队做。
- "你还没搞懂就让它反复重试"的活——先自己读一遍报错,往往比再试十次快。
- 你无法验证结果的活——它能给你一段你没能力判断对错的代码,那比没给更危险。
它不替你承担的那一件事
它不替你负责"这个改动对不对"。它写的每一条"我修好了"都是一个待验证的声称,不是一个已成立的结论。所以本文后面反复出现同一个动作:放行前看 diff。这不是不信任它,而是这类工具的固有分工——它有速度,你有判断。
适合:会用一点点终端、想加速日常开发的人;给旧项目补测试、批量改风格、解析报错、写一次性脚本。
不适合:完全不想看代码的人。它能替你写,但"写得对不对"仍然要你签字——没有能力签字的人,用它反而更容易出事。
03什么场景该用它、什么时候别用?
这一节回答一个具体的取舍:什么活值得交给它。判断标准只有一条——这件事有没有"我一眼能验的验收标准"。(该从哪个界面进,见 01 的界面表。)
一张"该不该用"的判断表
| 你现在的处境 | 该不该用它 | 为什么 |
|---|---|---|
| 有个报错,你能把错误信息贴出来 | ✅ 直接用 | 信息完整、结果可验证(测试过没过) |
| 一个模块没测试,你想补上 | ✅ 直接用 | 验收标准明确:测试跑过 |
| 想统一一个仓库的代码风格 | ✅ 直接用 | 规则是确定的,覆盖量大 |
| "这个项目性能有点差,帮我优化一下" | ⚠️ 先拆再说 | 没有验收标准它就会乱改。改成"给 getUsers 加分页,每页 20 条,改完跑测试" |
| "帮我设计整个后端架构" | ⚠️ 只让它出方案 | 用 plan 模式(见 07)让它先给方案,决定权留给人 |
| 要去改生产环境的数据库 | 🚫 别交给它 | 没有安全的回退路径 |
| 代码里有你还没看懂的加密逻辑 | 🚫 先读懂再说 | 你无法验证它的改动 |
什么时候它反而不划算
- 改动只有一行,而且你比它清楚——描述给它的时间比你自己改还长。
- 涉及你必须亲身判断的取舍(比如"这个需求到底要不要做")——它只能给你选项,不能给你立场。
- 你对结果完全没有验证能力——这类活你应该先学,而不是先外包。
- 网络不通——它的推理发生在云端,断网就用不了。它不是本地软件。
04怎么把它装到你机器上?
四条安装路线,任选一条。它们的区别只在"谁来管更新"和"你习惯用哪个包管理器",装出来的是同一套东西。
装之前先确认三件事
- 系统:macOS 13.0 以上 / Windows 10 1809 以上(或 Windows Server 2019 以上)/ Ubuntu 20.04 以上 / Debian 10 以上 / Alpine Linux 3.19 以上。Intel 和 Apple 芯片、以及 ARM 架构都支持。
- 硬件与网络:至少 4 GB 内存,x64 或 ARM64 处理器,必须能联网——它的推理在云端完成。
- 账户:需要一份付费订阅(Pro / Max / Team / Enterprise),或者一个按量计费的 Console(API)账户。免费套餐不含 Claude Code(官方套餐对照表里 Claude Code 一栏,Free 是 No,其余都是 Yes)。
需要先装 Node.js 吗?
原生安装(方式一)完全不需要 Node.js。只有"用 npm 装"这条路要求 Node.js 22 或更高(从 v2.1.198 起),而且即使你的 Node 版本不够,它也只是打印一条警告、并不会装失败——因为 npm 装下来的其实是一个原生程序,运行时根本不调用 Node。所以"Claude Code 要装 Node 才能跑"这个说法,只对一半、而且已经过时。
四条路线,任选一条
# macOS / Linux / WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
# Windows CMD(如果你在 CMD 里,不是 PowerShell)
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
怎么分辨自己在 PowerShell 还是 CMD?提示符前面有 PS C:\> 就是 PowerShell,只有 C:\> 就是 CMD。上面这几行是从官网下载一个安装脚本并直接运行,curl 是下载工具、irm 是 PowerShell 自带的下载命令。
# stable 通道:约比官方慢一周,会跳过有严重问题的版本
brew install --cask claude-code
# latest 通道:新版本第一时间就有
brew install --cask claude-code@latest
brew 装的不自动更新,升级要自己敲 brew upgrade claude-code(装的是 latest 就敲 brew upgrade claude-code@latest)。
winget install Anthropic.ClaudeCode
winget upgrade Anthropic.ClaudeCode # 升级
同样不自动更新,隔段时间自己敲一下 upgrade。
# npm(需要 Node.js 22+,装的是原生程序,不用 sudo)
npm install -g @anthropic-ai/claude-code
# Debian / Ubuntu 用 apt(要按官方文档先配好签名仓库)
sudo apt install claude-code
npm 是 JavaScript 生态的包管理器,-g 表示装成全局命令;apt 是 Debian 系 Linux 的包管理器。Fedora / RHEL 用 dnf,Alpine 用 apk,命令形式类似。
图省心选方式一(原生):装完自动在后台更新,你什么都不用管。如果你本来就用 brew 或 winget 管所有软件,就跟着走。装完第一件事是跑下面的"验证安装"。
装完怎么确认装对了
claude --version
# 会打印类似:2.1.269 (Claude Code)
claude doctor
# 只读的体检:检查安装、设置文件、登录状态;有问题会给出具体修复建议
--version 是"只打印版本号然后退出"的开关。本文校对时官方最新版是 2.1.269,稳定通道是 2.1.236——版本号只用来对账,不用背。
怎么升级、怎么切通道
| 你的安装方式 | 升级怎么做 | 要不要管它 |
|---|---|---|
| 原生安装 | 默认自动后台更新;想手动就 claude update | 基本不用管。想更稳可以切到 stable 通道 |
| Homebrew | brew upgrade claude-code | 要自己记得。也可以设环境变量让它自动升 |
| WinGet | winget upgrade Anthropic.ClaudeCode | 要自己记得 |
| npm | claude update(npm 全局目录可写时会自动更新) | 目录不可写时会提示你,照 claude doctor 的建议办 |
| apt / dnf / apk | 用对应的包管理器升级 | 默认不自动更新 |
stable 和 latest 是两条发布通道:stable 大约比官方慢一周,会跳过有严重问题的版本;latest 是第一时间拿到新功能。原生安装在设置里(敲 /config)可以切通道;brew 靠包名区分(claude-code 是 stable,claude-code@latest 是 latest)。
想让 brew / winget 这类"本来不自动更新"的安装也自动升,可以设一个环境变量 CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1(环境变量就是你在终端里预先设定的一个值,程序启动时自己去读)。
登录账户
# 第一次运行 claude,它会引导你在浏览器里登录(推荐)
claude
# 或者你已经有 API Key,先设好环境变量再运行
export ANTHROPIC_API_KEY="sk-ant-..."
如果你设过 ANTHROPIC_API_KEY(Console 账户的密钥),它会跳过浏览器登录,改成问你"要不要用这个 Key"。要留意一件事:订阅套餐的额度和按量计费的 API 账单是两套独立的账,互不抵扣。
- 会话里想换账户:
/login;登出:/logout。 - 不想进会话:
claude auth login、claude auth status。 - 企业环境还支持 Amazon Bedrock、Google Cloud、Microsoft Foundry 这类入口,本文不展开。
装完就卡住的三个常见情况
| 现象 | 原因 / 怎么办 | 怎么确认修好了 |
|---|---|---|
敲 claude 提示找不到这个命令 | 系统的"可执行文件查找清单"(PATH)还没刷新。重开一个终端窗口,或者退出再登一次 shell;原生装的可以看看 ~/.local/bin/claude 在不在清单里 | 重新敲 claude --version 有输出 |
| 安装脚本报 403、或者卡在"找不到版本" | 网络或代理问题。原生安装对代理和证书比较挑,先确认能打开 claude.ai;必要时换 brew 那条路 | claude doctor 不再报网络错误 |
| 装了两份,版本对不上 | 原生和 brew 各装了一份会互相抢。只留一种,用 which claude 看当前用的是哪一份 | claude --version 和你以为装的那份一致 |
怎么卸干净
# 原生安装:删掉命令和版本目录
rm -f ~/.local/bin/claude
rm -rf ~/.local/share/claude
# 或者用包管理器卸
brew uninstall --cask claude-code # 装的是 latest 就用 claude-code@latest
winget uninstall Anthropic.ClaudeCode
npm uninstall -g @anthropic-ai/claude-code
你的个人设置、允许过的操作、外部工具连接、会话历史都在 ~/.claude/ 这个目录里,卸载命令不会动它——通常你正希望如此。要连设置一起清掉,得额外删 ~/.claude 和 ~/.claude.json,以及项目里的 .claude/ 和 .mcp.json。删了就真没了,除非你确定要归零,否则别动。
还有一条容易踩的:VS Code 插件、JetBrains 插件、桌面 App 都会往 ~/.claude/ 里写东西——只要它们还装着,这个目录下次运行就会被重新建出来。想彻底清干净,得先卸掉它们。
05最小例子:让它完成第一个任务
装好并登录之后,用一件结果看得见的小事把整条链路验证一遍。全程大概一分钟、三步。
第一步:进一个不重要的目录,启动它
先在随便哪个目录里练,别一上来就在你在意的仓库上试。复制一个小项目、或者新建一个空目录都行:
# 打开终端,进入你的练习目录
cd ~/my-test-project
# 启动交互式会话(第一次会引导你登录)
claude
cd 是"进入某个目录"的命令,~ 代表你的个人主目录。敲完 claude 后,提示符会变成它的输入框,之后你说的话就是给它的指令。
第二步:下一句"结果能验证"的指令
# 例一:让它补一行注释,并要求它总结改了什么
在 index.js 的 add 函数里补一行注释说明它的用途,然后总结你的改动
# 例二:验证它真的能读你的代码
这个项目依赖了哪些第三方库?分别用在哪里?
第一次跑通,你会看到它按顺序做四件事:读文件 → 思考 → 改文件 → 汇报。改之前它通常会停下来问你一句"要不要允许"——那个弹窗就是权限模式,见 07。你要看的是它给出的改动对照:哪一行删了、哪一行加了。
① 安装和登录成功——否则它会提示你没授权;② 它能读到你的目录——否则它会说找不到那个文件;③ 权限交互正常——它改文件前会征求你的同意。这三点齐了,它就能正式干活了。
第三步(可选):试试"无人值守"的跑法
如果你想把 Claude Code 接进脚本或流水线,用 -p 参数跑一次性任务:回答完就退出,不会停下来跟你互动。-p 是 print 的缩写。
claude -p "解释一下 package.json 里 scripts 这一段是干什么的"
# 用管道把别的命令的输出喂给它(管道符号 | 的意思是"把左边命令的输出,当作右边命令的输入")
cat src/app.js | claude -p "指出这段代码可能抛异常的地方"
这种跑法适合自动化:一次请求、用完就退,通常也比长会话省用量。更多用法在 15。
第一次跑不顺利?对照这几条
| 症状 | 该检查什么 | 为什么 |
|---|---|---|
| 没弹出登录浏览器 | 你是不是设过 ANTHROPIC_API_KEY? | 设了就走"确认使用这个 Key"的流程,不弹浏览器,属于正常行为 |
| 提示未授权 / 没额度 | 确认套餐里包含 Claude Code | 免费套餐不含;API 账户要看余额和地区支持 |
| 它说找不到那个文件 | 先让它 ls 看一下目录(ls 是列出当前目录文件列表的命令) | 可能是文件名写错,也可能是它没有那个目录的读写权 |
| 它一直问、迟迟不动手 | 看提示符上的权限模式标记 | 默认的 Manual 模式每步都要你确认,这是安全行为不是故障(见 07) |
06怎么跟它说话,它才不跑偏?
它不读心。它判断"做完了没有"的唯一依据,是你给的验收标准。同一件事,两种说法出来的结果差别巨大。
"给这个网站加个后台"
"① 建 src/api/admin.ts,提供文章列表接口;
② 建管理页 src/pages/admin.tsx 调它并展示;
③ 跑通 npm run build 之后再让我看。"
为什么差别这么大?因为它一次只消化一两个小步时,每一步都能自己验证,出错范围也小;而"加个后台"这种目标,它只能自己猜边界,猜错你还得从头解释。你的改动对照也会更好审。
一个"贴报错"的模板(照填就行)
遇到报错时别只甩一句"程序坏了"。报错信息本身就是最好的线索,把它原样贴进去:
# 目标:让用户注册接口在邮箱格式错误时返回友好提示,而不是 500。
# 报错(原样贴):
TypeError: Cannot read properties of undefined (reading 'match')
at validateEmail (src/api/register.js:23:14)
# 我试过:把注册请求发到 /api/register 就能复现,别的接口正常。
# 请:先讲清楚根因,给最小改动方案,我确认后再动手,改完跑相关测试。
这段话里每一行都在替它省事:目标给它验收标准,原样的报错给它文件与行号,我试过帮它排除你已经走过的弯路,请那一段规定了它的动作顺序(先说原因、再改、最后验证)。
把上下文喂准:用 @ 指名文件
在消息里写 @文件路径,等于明确告诉它"先看这个文件"。比让它自己满仓库找更准,也更省用量。
@src/components/Button.tsx 帮我把它改成用 Tailwind 实现
@src/lib/auth.ts 修复这里在 token 过期时不报错的 bug
会话里的"纠错三件套"
| 你遇到的问题 | 怎么做 | 为什么这样做 |
|---|---|---|
| 它跑偏了 | 直接说"不要这么做,改成……" | 会话里它还记着前因后果,纠正比重开省事;默默自己改掉,它下一轮还会照错的来 |
| 改错了想退回 | 用 /rewind 回退到之前的存档点 | 它会在会话里自动存"检查点"(checkpoint,即可以回退到的存档点) |
| 想换个大方向 | 用 /clear 开一个新会话 | 旧上下文留着只会干扰它;不是同一件事就别硬绕着聊 |
| 想把这段对话存下来 | 用 /export 导出成纯文本 | 发给同事、或者留着复盘都方便 |
它给的答案你要怎么听
它汇报时常见的三类措辞,含义不同,别混:
| 它说 | 实际含义 | 你该做什么 |
|---|---|---|
| "已修改 X 文件" | 文件动了,但没有任何验证发生过 | 让它跑测试或构建 |
| "测试通过" | 它跑过的那些测试通过了 | 问一句"跑的是哪条命令、跑了几个用例",或者自己再跑一遍 |
| "这应该能解决" | 它的判断,没有证据 | 按验收标准自己验一遍 |
07它会不会乱动我的东西?
它真的会跑命令、真的会改文件,所以官方给它设计了一道闸:权限模式——决定"哪些动作不用问你就能做"。默认档位是每一步都问。会话里按 Shift+Tab 循环切换,或者启动时用 claude --permission-mode 模式名 指定。
六种模式,各自放开什么
| 模式 | 不问你就能做什么 | 什么场合用它 · 别当什么用 |
|---|---|---|
Manual(默认档,配置里叫 default) | 只读:读文件、搜代码 | 不熟的项目、敏感仓库。别嫌它烦——你正在用最便宜的方式摸清它的脾气 |
| acceptEdits | 读 + 改文件 + 常见文件操作(mkdir、touch、mv、cp 这类) | 写代码迭代、想事后统一看改动时用它。别在你不打算审 diff 的时候开 |
| plan(规划模式) | 只读调研,改文件被锁住 | 大改动之前先让它出方案。别拿它干小活——多绕一圈 |
| auto(自动) | 基本都放开,但有一个后台"审查模型"逐条把关 | 长任务、不想被反复打断。Pro / Max / Team 套餐的新会话默认就是它。别以为它替你把关就等于你可以不看结果 |
| dontAsk | 只跑你事先白名单批准的;其余一律拒绝 | CI、脚本这类"锁死"环境。别在交互式开发里用它——它会把所有请求都判成拒绝 |
| bypassPermissions | 全部放开,不做任何检查 | 🚫 只应在隔离的容器或虚拟机里用(见下面的警告) |
claude --dangerously-skip-permissions 等价于 bypassPermissions 模式:它会在你的真机上跳过全部检查。官方对它的定位写得很直白——Isolated containers and VMs only(只用于隔离的容器和虚拟机;容器 / 虚拟机 = 一个用完就丢、碰不到你真实电脑的隔离环境),并且在 Linux / macOS 上以 root(系统最高权限账户)身份运行时会被直接拒绝。记住一句:它是给一次性沙盒准备的开关,不是省事的快捷方式。
plan 模式:先出方案,你审完它再动手
涉及多个文件的大改动,先让它"只调研不动手"。三种进法:会话里按 Shift+Tab 切到 plan、单条消息用 /plan 开头、启动时加 --permission-mode plan。它调研完会给你一份方案,你在方案上选:
- 采用方案,开始改——可以顺手切到 auto,让它一口气做完。
- 不采用,继续规划——告诉它哪里不对,让它出第二版。
按 Ctrl+G 可以把方案拉进你自己的编辑器直接改文字。这是"大改之前先对齐"最省事的一个习惯。
auto 模式:让另一个模型替你把关
Pro / Max / Team 套餐的新会话默认就是 auto:大部分命令不再弹窗,改由一个独立的分类器(classifier,就是一个专门判断"这个动作危不危险"的小模型)逐条裁决。官方列出的默认拦截项包括:下载并直接执行代码(比如 curl | bash)、把敏感数据发到外部、生产环境部署与数据迁移、云端批量删除、授予权限、强制推送、以及删除本次会话开始前就已存在的文件。
注意这里有个容易误解的地方:它信任的是"会话启动那一刻"的工作目录和 git 远程仓库。会话进行中你新加的、或者改指向的远程仓库,它不信任,会按"外部"处理。
不管你选哪种模式,写入一组"受保护路径"都不会被静默放行(唯一的例外是 bypassPermissions 模式)——包括 .git、.claude、.vscode、.npmrc、以及 shell 的启动配置(.zshrc、.bashrc 这些)。
顺便更正一个流传很广的说法:.env* 并不在这份受保护清单里。官方文档明确把"读取 .env 并把凭据发往它对应的 API"列在默认允许的行为里;真正列进清单的是 .envrc(一个叫 direnv 的工具的配置文件)。所以别指望"它不敢动 .env"——把密钥排除在工作目录之外,或者写一条 deny 规则,才是靠谱做法。
另外,在支持的系统上还能再叠一层沙箱:用 /sandbox 给命令加上文件与网络隔离。可以这样理解分工——模式决定"问不问",沙箱决定"能碰什么"。沙箱只在 macOS、Linux、WSL2 上可用。
再给它立几条"铁规矩"
除了模式,你还能在 .claude/settings.json 里写具体规则。这个文件是项目的配置文件,用的是 JSON 格式(一种用花括号和引号表达数据的写法)。规则优先于模式:deny 里的东西任何模式都拦得住(包括 bypassPermissions),ask 里的东西一定弹窗问你。
// .claude/settings.json
{
"permissions": {
"allow": ["Bash(npm test)", "Bash(npm run lint)"],
"ask": ["Bash(git push *)"],
"deny": ["Bash(rm -rf *)", "Bash(git reset --hard)"]
}
}
这段的意思是:跑测试和 lint 免问;git push 一律先问;rm -rf(递归强删)和 git reset --hard(丢弃未提交改动)直接禁止。会话里敲 /permissions 可以看全部规则,也能看到最近被分类器拦下的操作——如果发现是误拦,可以在那里手动重放一次并把它加进 allow。
新手推荐的起步组合
Manual 每步确认虽然啰嗦,但能逼你看清"它到底会做什么"。写代码迭代时按 Shift+Tab 切到 acceptEdits,让文件编辑免问、命令仍然问你。
比如把 ask 设成 ["Bash(git push *)", "Bash(gh pr create *)"]——凡是"会把东西发到外面去"的动作一律先问,其余交给分类器。
bypassPermissions 只在隔离容器或虚拟机里用;任何模式下都不把密钥贴进对话;大改之前先用 plan 出方案。
08命令那么多,我该记住哪几个?
命令分两类:在终端里敲的(启动它、给它参数),和在会话里敲的(以斜杠 / 开头)。下面把真正高频的挑出来,其余随时用 /help 看全量——命令会随版本增删,以它为准。
终端里敲:只需要这几个
| 命令 | 作用 | 什么时候用 |
|---|---|---|
claude | 启动交互式会话 | 日常都从这条开始 |
claude "任务描述" | 启动并直接带上第一条指令 | 你已经想好第一句要说什么 |
claude -p "问题" | 问一次就退出,不进入交互 | 写脚本、做流水线、或者只想快捷问一句 |
claude -c | 继续当前目录里最近那次会话 | 关掉终端又回来了,不想重讲背景 |
claude -r | 打开历史会话选择器(加会话 ID 可以精确恢复) | 想找几天前那次对话 |
claude --model sonnet | 启动时指定模型(档位见 10) | 这次活明显偏简单或偏难 |
claude --permission-mode plan | 启动时指定权限模式 | 这次只想让它出方案 |
claude --add-dir ../lib | 额外授权一个目录给它读写 | 代码分散在两个仓库里 |
claude --bg "任务" | 丢到后台跑,立刻把终端还你 | 编译很久、你想边做别的边等 |
claude update | 升级到最新版本 | 发现功能对不上文档时 |
claude doctor | 只读的安装与设置体检 | 出任何怪问题之前先跑它 |
claude mcp … | 管理外部工具连接(见 13) | 要接 GitHub、数据库这类外部系统 |
会话里敲:这十几个覆盖九成场景
| 命令 | 作用 | 什么时候用 |
|---|---|---|
/help | 列出全部可用命令与技能 | 忘了名字、或者想看这版又加了什么 |
/clear | 清空对话历史,重新开始 | 换一件不相干的事做 |
/compact | 把前面的对话总结压缩,腾出空间 | 会话变慢、或者它开始"忘事" |
/context | 看上下文被什么占满了 | 定位"它为什么好像忘了刚才说的话" |
/model | 切换模型(直接回车存为默认,按 s 只对本次生效) | 这活明显偏简单或偏难 |
/effort | 调节思考深度(low / medium / high / xhigh / max) | 难题想让它多想一会儿,简单活想让它快点 |
/permissions | 管理 allow / ask / deny 规则,看最近被拦的操作 | 老是弹窗、或者有动作被误拦 |
/config | 打开设置界面(含升级通道、默认模型等) | 要改长期生效的偏好 |
/memory | 查看和编辑 CLAUDE.md 与自动记忆 | 想确认规矩有没有真的被读进去 |
/init | 让它扫一遍项目,自动生成一份 CLAUDE.md 草稿 | 第一次给一个项目立规矩 |
/usage | 看这次会话用掉多少(订阅用户看到的是套餐用量条) | 感觉账单涨得有点快 |
/resume | 回到之前某次会话继续 | 接着上次的活干 |
/login · /logout | 登录 / 换账户 / 登出 | 换机器、换账号 |
/bug · /feedback | /bug 上报问题(可选带上多少会话历史,发送前有确认页);/feedback 发产品建议,弹的是同一个对话框 | 真遇到它自己坏了、或者想提改进建议时 |
/exit | 退出(快捷键 Ctrl+D) | 收工 |
/copy · /desktop | /copy 复制它最近一条回复;/desktop 把当前会话搬到桌面 App 继续(只在 macOS / x64 Windows + 订阅下出现) | 想把它的话拿去别处贴、或者想换个界面接着干时 |
它下面还挂着一批子命令
| 子命令 | 作用 | 什么时候用 |
|---|---|---|
claude update / claude install | 更新;或装指定版本(install stable、install 2.1.236) | 想退回到某个已知稳定的版本 |
claude doctor | 安装与设置体检,给修复建议 | 排错第一步 |
claude auth login / status / logout | 在终端里完成登录 / 查状态 / 登出 | 不方便进交互界面时 |
claude mcp … | 增删查外部工具连接 | 见 13 |
claude agents | 查看和管理后台会话 | 见 12 |
claude attach <会话ID> / claude stop <会话ID> | 接管 / 停止一个后台会话 | 后台任务跑完了想接手,或者跑歪了想掐掉 |
claude setup-token | 生成一个长期有效的登录令牌(需要订阅) | 给 CI 用,见 15 |
claude plugin … | 管理插件:浏览市场、安装、启停 | 想给团队统一装一批技能或工具时 |
claude auto-mode defaults | 打印 auto 模式内置的拦截规则清单 | 想知道它到底会拦什么 |
按需用的启动参数
# 补加目录 / 追加系统提示词 / 预批准某些工具
claude --add-dir ../shared
claude --append-system-prompt "多用中文注释"
claude -p "…" --allowedTools "Bash(npm test)" "Read"
# 输出与会话控制
claude -p "…" --output-format json # 输出成 JSON,方便脚本解析
claude -c --fork-session # 继续上次,但开一个新会话 ID,不污染原记录
claude -r "2026-09-13-…" # 用会话 ID 精确恢复
--allowedTools(也写作 --allowed-tools)是"这些工具不用问就直接用"的白名单;如果你想限制的是"它总共能用哪些工具",那是另一个参数 --tools。两者别搞混:一个管"要不要问",一个管"有没有"。
几个值得记的快捷键
| 按键 | 作用 | 什么时候按 |
|---|---|---|
Shift+Tab | 切换权限模式(Manual → acceptEdits → plan → auto…) | 想放开或收紧权限时 |
Option/Alt+T | 开关"扩展思考"(让它回答前多想一会儿) | 遇到难题时临时打开 |
Ctrl+D | 退出会话 | 收工 |
Ctrl+G | 把待审方案拉进编辑器改文字 | plan 模式下要手改方案 |
↑ / Tab | 翻历史命令 / 自动补全 | 重复敲上一句时 |
09怎么让它记住你的项目规矩?
它每次开新会话都是从零开始——没有"上次的记忆"。想让它不用你反复交代,靠两套机制:一份你写的项目说明书,和一份它自己攒的笔记。
先分清:你写的 vs 它自己攒的
| 机制 | 谁写的 | 装什么内容 · 别当什么用 |
|---|---|---|
CLAUDE.md(项目说明书) | 你(或团队) | 写长期有效的事实:构建命令、命名约定、目录结构、"永远 X / 绝不 Y"。别把多步骤流程塞进来——那属于技能(技能 = 把一段流程打包成一条可按需调用的命令,见 11) |
| 自动记忆(auto memory) | 它自己 | 记你纠正过它的点、你的偏好。别指望它精确——它会自己判断什么值得记 |
两套都是"每次会话开始时读进上下文",但官方特别提醒了一句:它把你的说明当上下文,不当强制配置。想要"无论如何都不许做",得用 Hooks(见 14)。
CLAUDE.md 放哪、谁生效
CLAUDE.md 就是一个纯文本的 Markdown 文件(Markdown 是那种用 # 表示标题、- 表示列表的写作文本格式)。它放的位置决定谁能看到:
| 放哪 | 作用范围 | 什么时候用 |
|---|---|---|
| 公司统一下发的策略文件(由 IT 部署) | 全组织的所有人 | 公司级编码标准、安全合规要求 |
~/.claude/CLAUDE.md | 你自己的所有项目 | 个人偏好,比如"提交信息用中文" |
./CLAUDE.md 或 ./.claude/CLAUDE.md | 当前项目,随 Git 共享给全组 | 项目架构、编码规范、常用流程——这是最常写的一个 |
./CLAUDE.local.md | 只有你,在这个项目里 | 你自己的本地环境信息(记得加进 .gitignore,别提交) |
子目录/CLAUDE.md | 只有当它读到那个目录的文件时才加载 | 大项目按目录分层,避免一上来就塞满上下文 |
加载顺序是从宽到窄:组织 → 你 → 项目 → 本地,所以项目里的规定会出现在个人偏好之后,也就是更靠后、更具体。工作目录上层的 CLAUDE.md 在启动时就加载;子目录里的则等它真去读那个目录时才加载。
里面写什么
# 项目名:xx SaaS(Next.js + TypeScript + Prisma)
# 代码规范
- 组件用函数组件 + hooks,不用 class
- 状态管理用 Zustand,不用 Redux
- 提交前先跑:npm run lint && npm test
# 架构决策
- API 路由放 app/api/ 下
- 数据库统一走 lib/db.ts
# 绝对禁止
- 不修改 .env 文件
- commit message 用中文
判断"该不该写进去"有一个很好用的标准:同一句纠正你说了第二遍,或者代码评审抓到它本该知道的事——那就是该写下来的时候。写的时候尽量具体:"用 2 空格缩进"远好过"格式写规范点"。
三个进阶能力,建议会用
@导入——在CLAUDE.md里写@README、@docs/api.md,就能把别的说明文件一并带进来,不用重复粘贴。.claude/rules/按路径加载——把规则拆成一个个小文件放在这个目录里。带paths字段的规则只在它碰到匹配的文件时才加载,比如只对src/api/**/*.ts生效,这样能省下大量上下文。/init自动生成——让它先扫一遍项目自动产出草稿,你再补。想确认哪些文件真的被加载了,用/context看。
一套"进化完整"的项目配置长什么样
不用一步到位。先用 CLAUDE.md,等用得多了再逐层加,理想终态是这样:
your-project/
├── CLAUDE.md # 项目说明书(规范 / 架构 / 绝对禁止)
├── CLAUDE.local.md # 只属于你的补充(记得加进 .gitignore)
├── .mcp.json # 团队共用的外部工具配置
└── .claude/ # settings.json(权限规则/钩子) · rules/(按路径生效的规则) · skills/(技能) · agents/(子代理)
自动记忆:不用你动手的那本笔记
除了你手写的文件,它还会在干活过程中把"你纠正过它的点、你的偏好"记到本机的一个目录里:~/.claude/projects/<项目>/memory/。这个目录的路径是按 git 仓库算出来的,所以同一个仓库的不同分支、子目录共用一份。它放在你本机,不上传。想浏览或关掉它,用 /memory。
同一个纠正你说了第二遍、或者代码评审抓到它本该知道的规范时,就写下来。诀窍是只放稳定的事实:构建 / 测试命令、命名约定、"永远 X / 绝不 Y"这类。一次写好,长期省事。
关于它的三个高频疑问
CLAUDE.md,但它好像没遵守?/context,看"记忆文件"里到底有没有加载这个文件——没加载说明位置不对或路径没对上。加载了却不遵守,多半是规则太笼统:把"格式写规范点"改成"用 2 空格缩进"。最后要接受一个前提:它是强引导不是硬强制;真必须执行的事,交给 Hooks(14)。@docs/api.md 导入;或者拆进 .claude/rules/ 并加 paths:,只在它碰到相应文件时才加载。AGENTS.md(别的 AI 工具在用),要维护两份吗?CLAUDE.md 里写一行 @AGENTS.md 把那份导进来即可,两边共用一份说明;也可以直接做软链接。10该选哪个模型、怎么不让账单失控?
模型有强弱档,也有快慢和贵贱之分。别一上来就研究型号——用官方给的别名,它会自动指向"当前那一代"的最新版本,你不需要记带日期的型号名。
四个别名,比写死型号更稳
| 别名 | 指向什么 | 什么场合用它 · 别当什么用 |
|---|---|---|
sonnet | 当前最新的 Sonnet,官方定位"日常写代码" | 默认的日常主力,性价比最均衡。别因为"它不够聪明"就无脑升档 |
opus | 当前最新的 Opus,官方定位"复杂推理" | 架构设计、疑难 bug、长链路排查。它更慢更贵,别拿它干格式化这种事 |
haiku | 当前最新的 Haiku,官方定位"快而省" | 改注释、重命名、跑格式化这类小活 |
fable | Fable 5.1,官方说它是目前最强的档,适合"一次坐下干不完的大活" | 超长自主任务。官方明确:Fable 在任何套餐、任何服务商那里都不是默认档,必须你主动选;部分套餐下用它还会走"用量点数"计费 |
另外还有几个:sonnet[1m] / opus[1m] 是打开百万级上下文窗口的版本,opusplan 是"规划时用 opus、执行时用 sonnet"的混合档,default 是"清掉我的选择、回到账户默认"。
切换方式:会话里敲 /model sonnet(回车表示"以后都默认",按 s 表示只对本次生效);启动时 claude --model sonnet;想永久改默认,敲 /config。
思考深度:让它多想还是少想
- 扩展思考——按
Option/Alt+T开关,让它回答前先想一段。难题值得打开;日常小事打开只是更慢更贵。 /effort调档——可选low/medium/high/xhigh/max。这个档位控制的是"自适应推理"的强度:模型会自己判断这一步值不值得多想,你用这个档给它定上限。普通问题用 low 或 medium 就够快够省。- 官方也说明了:不是所有模型都支持全部档位。老一些的模型最高只到
max或high;如果你设了一个它不支持的档,它会自动退回"不高于你设的那个最高可用档"。
上下文窗口和自动压缩
"上下文窗口"是一次会话里它能同时记着多少内容的上限,单位是 token(可以粗略理解成"字词的碎片",一句话大约几十到上百个)。当前主力模型都支持百万级 token——读一个中型仓库不成问题。
- 窗口快满时它会自动压缩(把前面的对话总结成更短的版本)。
- 想自己定"填到多满才自动压缩",用
/autocompact 500k(接受500k、1M、200000这类写法,范围 100K 到 1M);想恢复成"按你的模型自动调好的值",用/autocompact auto。 - 会话很长、用量吃紧时:
/context先看被什么占满了 →/compact手动压缩,或者干脆/clear开新会话。
一张"按任务选档"的速查表
| 手头的活 | 建议 | 为什么 |
|---|---|---|
| 改注释、重命名、跑格式化 | haiku,配合 effort low | 最便宜最快,用大模型是浪费 |
| 日常写代码、修普通 bug | 默认档 | 能力和成本的平衡点 |
| 架构设计、疑难 bug、长链路排查 | opus,配合 effort high 或 xhigh | 推理更强,值这个钱 |
| 一次会话干到底的大重构 | fable | 专门为"长时间不跑偏"设计 |
| 只是问一句概念 | 默认档,别开思考 | 打开高级档对答案质量几乎没有提升 |
三个立刻能省下钱的动作
- 先看用量再决定——
/usage随时能看这次会话花掉多少(订阅用户看到的是套餐用量条)。 - 该清就清——长会话每一轮都会把你前面的全部上下文再算一遍,越拖越贵。做完一件事就
/clear。 - 把重复的说明挪出
CLAUDE.md——官方给的省用量建议里有一条就是"把指令从常驻上下文挪到技能里",因为技能只在用到时才加载。官方也提到,给项目装代码智能插件、把啰嗦的操作用 Hooks 或子代理处理,都能省。
模型越强通常越贵,思考深度越高也越耗用量。养成两个习惯:难度不明的活先用默认档跑一版;/usage 随时看一眼,发现失控就 /compact 压一下,或者换个更小的档继续。
顺带给个量级参考:官方文档给出的企业部署数据是——平均约每人每个活跃日 13 美元、每人每月 150 到 250 美元,90% 的用户单日低于 30 美元。个体差异极大(取决于模型选择、代码库大小、是否同时开多个实例),所以先用小范围试跑建立你自己的基线,再谈全面铺开。
11怎么把重复流程变成一句话?
技能(Skill)是把"一段操作手册"打包成一个可以按需调用的单元。它和项目说明书的区别在于什么时候加载:说明书每次会话都读,技能只在用到时才读。所以官方给的分工是——一句事实写进 CLAUDE.md,一段多步骤流程做成技能,只对某类文件生效的规矩放进 .claude/rules/。
它自带的一些技能
| 技能 | 干什么 | 什么时候用 · 别当什么用 |
|---|---|---|
/code-review | 审查当前改动,找正确性 bug 和该清理的地方,可以带 --fix 直接改 | 提交前过一遍。别把它当人工评审的替代品——它盖不住"这个需求本身该不该做" |
/security-review | 专门检查改动里的安全漏洞 | 碰了鉴权、输入校验、密钥相关代码时 |
/debug | 诊断运行时问题 | 环境相关、复现不了的问题 |
/loop | 按间隔重复跑一条指令 | "每 5 分钟看一眼部署状态"这类 |
/run · /verify | 把你的项目真的跑起来 / 构建并验证改动生效 | 想知道"改完到底能不能跑",而不只是"测试过没过" |
/batch | 把一个大改动拆成 5 到 30 个独立单元,各自在一个隔离副本里做 | 大规模迁移。需要 git 仓库 |
/doctor | 设置体检:诊断安装、路径、配置问题,并能直接修 | 环境出问题时 |
/feedback | 发产品反馈,和 /bug 走同一个对话框 | 想提改进建议时 |
登录态下直接敲 /help 会看到你这一版实际有哪些——上面这些随版本有增删。
怎么自己写一个技能
在项目里建一个目录 .claude/skills/技能名/SKILL.md,文件开头用一段固定格式的元数据写明名字和用途,正文就是步骤:
# .claude/skills/review-pr/SKILL.md
---
name: review-pr
description: 团队默认的 PR 检查清单,遇到"review 这个 PR"时使用
---
按这个顺序检查每个改动文件:
1. 有没有把密钥、路径硬编码进代码
2. 有没有处理空值与报错
3. 命名是否遵守项目的 camelCase 规范
4. 最后用 npm test 跑一遍相关用例
开头那两行被三条短横线夹住的写法是 YAML 格式的元数据(一种专门用来写配置的文本格式)。description(用途描述)很关键——它不是写给人看的说明书,而是决定"Claude 什么时候会自己想起这个技能"的触发条件,写得越具体越准。
想让团队共用,把 .claude/skills/ 提交进 Git;只想自己用,放 ~/.claude/skills/。不想手写的话,直接对它说"把上面这套审查流程做成一个技能",它会替你建。
一个技能具体长什么样:拆开 /code-review
--fix 直接把发现的问题改掉。它能在未提交的改动、一个 PR、或者一个分支上跑。# 审当前还没提交的改动
/code-review
# 审出问题后顺带修掉
/code-review --fix
# 审某个 PR(编号 1234)
/code-review 1234
- 它盯的是这份差异里的正确性问题,不等于人工评审的全部。合规红线、业务判断、需求本身该不该做,仍然要人来核。
- 它盯的是"对不对",不是"写得够不够漂亮"。想让代码更简洁,那是另一件事。
- 它读的是差异本身。如果改动散落在没提交的文件里,先确认这些改动真的在 git 的工作区里。
技能怎么被触发:两种开关
| 触发方式 | 含义 | 你要注意什么 |
|---|---|---|
| 你来点火(用户可调用) | 你敲 /名字 它才执行 | 危险或昂贵的流程应该设成这种。它的用途描述是写给人看的 |
| 模型自己取用(模型可调用) | Claude 判断你的需求跟它相关时自动加载 | 用途描述要保留"什么时候用"的措辞,否则它想不起来用 |
自定义技能默认属于哪一种,取决于你把用途描述写得像"给用户的指令"还是"给模型的能力说明"——技能文件里有专门的字段控制这件事,写的时候可以显式指定。另外一条实用规则:一条消息里最多可以叠加 6 个技能,比如 /skill-a /skill-b 做某事,两个技能都会加载,后面的文字当作参数传给它们。
12怎么让它同时干几件事?
有两种"并行",别混:一种是把你手上这个会话丢到后台去跑,另一种是让它再派几个小助手分头干活。
后台任务:把整个会话丢到后台
# 丢到后台,终端立刻还给你
claude --bg "运行全部测试,把失败项整理成清单"
# 看有哪些后台会话 / 接管一个 / 停掉一个
claude agents
claude attach <会话ID>
claude stop <会话ID>
适合"编译很久""想边做别的边等"的活。会话里也可以用 /background 把当前会话直接甩到后台,终端腾出来干别的。
子代理:让它派几个"专职小助手"
子代理(Subagent)是它自己调度的小助手,各自带独立的工作说明、独立的工具清单,甚至可以指定不同的模型。你可以把分工写在一个配置文件里,它在需要时按描述派出去并行处理,主会话负责汇总。
配置文件放在 .claude/agents/ 目录下,长这样:
# .claude/agents/security-reviewer.md
---
name: security-reviewer
description: 项目专属的安全审查员。当需要检查改动里有没有注入、越权、密钥泄露时使用
tools: Read, Grep, Glob
model: opus
---
你是本项目的安全审查员,重点检查:
1. SQL / 命令注入与越权(本项目用 Prisma,手写 SQL 拼接是红线)
2. 有没有把密钥、内网地址硬编码进代码
3. 日志里是否打印了敏感字段
只输出发现与修复建议,不要直接改代码。
tools这一行限制了它能用哪些工具——只管"看",不给"写",它就改不了代码。model可以单独指定:让审查这种需要推理的活用更强的档。description写得越具体,Claude 越知道"什么时候该派它出去"。
两种并行怎么选
| 你的需求 | 用哪个 | 为什么 |
|---|---|---|
| 活很长,但只是一个连续任务 | 后台任务(--bg / /background) | 不需要新角色,只是不想被它挡着手 |
| 活能拆成几种不同的专业视角 | 子代理 | 每个子代理有自己的工具和职责,互不干扰 |
| 一个跨全仓库的大改动 | /batch 技能 | 它会拆成独立单元、各自在隔离副本里做、各自开 PR |
| 只是想让一个子任务别污染主对话 | 子代理 | 它的过程不进主会话的上下文 |
并行不等于放开权限。auto 模式下,子代理的每一步动作同样要过那个后台审查模型;派任务之前,还会先看这条任务描述本身安不安全。所以"派了子代理"不是绕过检查的捷径。
什么时候别并行
- 任务之间会改到同一批文件——两个代理各改一半,合并起来就是一团乱。
- 你还没验证过单线程能不能做对——先跑通一遍,再谈加速。
- 结果你根本来不及看——开五个后台任务、最后只打开一个,等于白花钱。
13怎么让它连上外面的工具?
默认情况下它只能看你机器上的文件、跑你机器上的命令。想让它读 GitHub 上的工单、查数据库、更新 Jira,需要一个统一接口——这就是 MCP(Model Context Protocol,模型上下文协议)。可以把它理解成一个"插座标准":外部工具只要按这个标准做一个"服务",Claude Code 就能接上。
三种接法,按需要选
| 方式 | 怎么接 | 什么时候用 · 别当什么用 |
|---|---|---|
| 远程 HTTP 服务 | claude mcp add --transport http 名字 https://…/mcp | 连云端服务(Notion、Sentry 这类)首选。别把它当本地工具用——它可能随时改远端数据 |
| 本地命令服务(stdio) | claude mcp add 名字 -- npx -y 某个-mcp-server | 工具本身要跑在你机器上时用它。注意这是在运行陌生人的代码 |
| 官方预置连接器 | 官方目录里已审核的那批,同样用 claude mcp add 添加 | GitHub、Slack 这类常见服务,省得自己找服务端 |
# 加一个远程 HTTP 服务(推荐形态)
claude mcp add --transport http notion https://mcp.notion.com/mcp
# 加一个本地 stdio 服务(跑一个本地命令来提供能力)
claude mcp add airtable -- npx -y airtable-mcp-server
# 需要密钥的,用请求头带进去
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header "Authorization: Bearer 你的令牌"
# 查看 / 移除
claude mcp list
claude mcp remove airtable
几个细节:默认作用范围是"用户级"(对你所有项目生效),加 --scope project 可以写进项目、随 Git 共享给团队;项目级的配置也可以直接写在 .mcp.json 这个文件里。需要登录的服务可以走网页授权:claude mcp login 名字;靠环境变量读密钥的服务,可以在 claude mcp add 时用 --env 变量=值 把值传进去(别把密钥写进会提交进 Git 的配置文件)。
还有一条容易记错的细节:配置文件里的类型字段,官方标准叫 streamable-http,Claude Code 也接受 http 这个简写——你从别的服务文档里复制的配置,一般能直接用。
npx 某个-mcp-server 这条命令的意思是"从网上临时下载并运行一个别人写的程序"。它拿到什么权限,取决于你授权了什么;它能读到什么,取决于你让它接什么。所以:只装你信得过的来源,能不接公司内部系统的就先别接。官方也提醒,会去抓取外部内容的服务,可能把"提示注入"(有人把恶意指令藏在网页或文档里,诱导 AI 去执行)的风险带进来。好消息是,Claude 每次调用这类外部工具之前,通常仍会先问你。
接上之后,实际能做什么
它和别的东西怎么区分
| 名字 | 它解决什么 | 什么时候你会用到 |
|---|---|---|
| MCP | 让 AI 能读写你机器外面的系统和数据 | 要接 GitHub、Jira、数据库时 |
| 技能(Skill) | 把一段流程打包成可按需调用的指令 | 要固化"怎么做一件事"时 |
| 权限规则(allow / ask / deny) | 拦住某条具体命令,或者强制先问你 | 要"这条命令绝对不许跑"时(见 07) |
| Hooks | 在固定时刻强制执行你的命令 | 要"改完文件必须跑 lint"这类确定性动作时(见 14) |
| 子代理 | 把一部分活分给一个专职小助手 | 要分工并行时(见 12) |
14怎么让某件事"一定会发生"?
前面讲的 CLAUDE.md 和技能都是引导——它读到了、理解了就照做,偶尔也会忘。想让它必须发生,得用钩子(Hooks):由 Claude Code 在固定时刻替你执行命令,不经过模型判断。它和权限规则的分工是——权限规则管"某条命令许不许跑",钩子管"到了这个时刻要做什么"。
一个能直接抄的例子
配置写在 .claude/settings.json(项目级,随 Git 共享)或 ~/.claude/settings.json(个人全局):
// .claude/settings.json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command",
"command": "npm run lint 2>&1 | head -30" }
]
}
],
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command",
"command": "grep -q 'rm -rf /' && exit 2 || exit 0" }
]
}
]
}
}
这段配置干了两件事:
PostToolUse+matcher: "Edit|Write"——每次它改完或写完文件之后,自动跑一次代码检查(lint,就是检查代码风格和明显问题的工具),只打印前 30 行。问题当场暴露,不用等你自己想起来跑。PreToolUse+matcher: "Bash"——每次它要执行命令之前,先检查里面有没有rm -rf /(把整个磁盘递归强删)。命令里的exit 2就是"拒绝执行"的信号,exit 0是"放行"。
matcher(匹配器)支持用竖线连多个工具名,比如 "Edit|Write"、"Bash"。想随时看当前挂了哪些钩子,敲 /hooks。
常用事件有哪些
官方定义的事件比下面这张表多得多,但这几个是你最可能用到的:
| 事件 | 什么时候触发 | 典型用法 |
|---|---|---|
SessionStart | 会话开始或恢复时 | 打个招呼、拉一下最新状态 |
UserPromptSubmit | 你发出消息、它还没处理之前 | 记录提问、注入团队的检查清单 |
PreToolUse | 某个工具即将被调用之前(可以拦住) | 拦危险命令、强制二次确认 |
PermissionDenied | auto 模式拒绝了一个动作时 | 记录被拦了什么,便于回头调规则 |
PostToolUse | 某个工具执行成功之后 | 改完文件自动跑 lint / 格式化 |
Stop | 它结束一次回复时 | 汇总"这次做了什么",提醒你去审 |
SubagentStart / SubagentStop | 子代理被派出 / 结束时 | 记录并行任务的分工与产出 |
PreCompact / PostCompact | 上下文压缩前 / 后 | 压缩前把关键结论落盘 |
Notification | 需要通知你的时刻 | 发到终端横幅,或者推到你的聊天工具 |
SessionEnd | 会话结束时 | 清理临时文件、写一行日志 |
给 Edit|Write 挂一个"改完自动跑你项目的 lint"。这一条几乎零成本,而且能立刻减少一类最常见的返工:它写出来的代码风格和你项目不一致。第二值得加的是 PreToolUse 拦 rm -rf 这类不可逆命令。
15怎么让它在没人看着的时候干活?
用 -p 这种"问完就退"的模式,它能直接接进脚本和流水线。关键不是"能不能跑",而是怎么把它限定在一个你事先想清楚的范围内。
三个立刻能用的组合
# 1) 让改动自己生成提交信息
git diff | claude -p "为这次改动写一个简洁的 commit message"
# 2) 定时分析日志(配合系统的定时任务工具 cron)
tail -200 app.log | claude -p "发现异常就列出来,并给修复建议"
# 3) 输出成机器能读的格式,方便脚本处理
claude -p "审查这些文件" --output-format json
在 CI 里跑,必须锁死三件事
CI(持续集成)指的是"每次提交代码,服务器自动跑一遍构建和测试"的那套流水线。把 Claude Code 放进去,你要做的是把它的活动范围锁到最小:
-p 跑一次性任务它会执行完就退出,不会停下来等人输入——流水线里没有人在。
--permission-mode dontAsk + --allowedTools 白名单dontAsk 的意思是"凡是会弹窗的一律拒绝";再加上白名单,它就只剩你点名的那几个工具能用。宁可少给一个工具,也别让它裸跑。
拿一个长期令牌用 claude setup-token 生成(需要订阅),然后放进 GitHub Secrets 这类地方。
# 只允许它"跑测试"和"读文件",其他一律拒绝
claude -p "运行测试套件并报告失败项" --permission-mode dontAsk \
--allowedTools "Bash(npm test)" "Read"
一段最小可用的 GitHub Actions 配置
# .github/workflows/claude-pr-review.yml(示意:PR 一来就自动审改动)
name: claude-pr-review
on: pull_request
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: 让 Claude Code 审这次改动
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
git diff origin/${{ github.event.pull_request.base.ref }}...HEAD \
| claude -p "审查这份 PR 改动的安全问题与明显 bug,逐条给出文件与行号" \
--permission-mode dontAsk --allowedTools "Read" "Grep"
当一个合并请求(PR)被提出来,这个工作流会:把"目标分支到当前改动"的差异取出来 → 通过管道喂给 claude -p → 权限设成 dontAsk 且只允许读文件和搜索,保证它在流水线里只能看,不能改 → 密钥从流水线的密钥仓库注入,不进代码库。跑完把结论发回 PR 评论,闭环就成了。
官方还提供 GitHub Actions 和 GitLab CI/CD 的现成集成,可以直接用来做"PR 自动审查""Issue 自动归类"。除了 CI,想"定时自动跑"还有几条路:桌面 App 有定时任务、云端有 routines、会话里可以用 /loop 按间隔重复——按你的东西放在哪来选。
① 会改生产环境、或迁移数据库的步骤;② 任何"发到外部系统"的操作(合并 PR、发消息、推送含密钥的文件)——哪怕分类器默认会拦,也别指望万无一失;③ 你自己都还没搞懂的活——先自己读一遍报错,再决定要不要让它反复重试。
自动化真正擅长的是:输入明确、过程可复现、失败之后可以安全重来的任务。三条里缺一条,就别无人值守。
16四个场景,从零走一遍
下面四件事是新手最常遇到的。它们共用同一套节奏,练熟一遍,别的场景都能套。
场景 A:修一个报错
别翻译成"程序出错了"。把终端里的红字、文件路径、你刚才做了什么整段贴进去,信息越全它定位越快。
直接用这句话:"先讲清楚根因,再给改动方案,等我确认后再动手。"——这能挡住它没搞懂就乱改。
放行之后用 git diff 扫一遍它到底改了什么,再让它跑一遍相关测试确认没修出新问题,最后才提交。
场景 B:给旧代码补测试(单元测试 = 针对单个函数写的小测试,跑一遍就知道有没有改坏)
"给 src/utils/format.js 补单元测试,覆盖空值、超长文本、中英文混排三种情况,用项目现有的测试框架,跑到全绿为止。"
先问一句"这个项目现在用什么测试框架?已有的测试长什么样?"——保持风格一致,比新加一堆花哨写法重要得多。
确认它真的执行了 npm test 并且新用例通过,而不是只把测试文件写出来就算完。
场景 C:审查一批还没提交的改动
claude --permission-mode plan "用 /code-review 审查我现在的改动,重点看有没有安全问题和明显 bug"
让它以只读的 plan 模式跑,审完给你结论,全程不碰文件——纯审查,零风险。觉得它漏了,就追问一句"再看看数据校验那部分"。
场景 D:从零搭一个一次性小工具
这是新手最容易获得成就感的一步:让它在空目录里"从无到有造出一个能跑的东西"。
mkdir ~/csv-tool && cd ~/csv-tool
claude "这个文件夹还是空的。帮我:1) 用 Node 写一个脚本 csv-stats.js,读同目录的 data.csv,输出每列的平均值和总行数;2) 造一份 5 行的 data.csv 用来测试;3) 写一份 README 说明怎么跑。做完运行给我看结果。"
它通常会:建文件 → 造样例数据 → 执行脚本 → 把输出贴给你。你验收三点:目录结构是否合理、脚本是不是真的跑起来了、README 能不能让你照着复现一遍。
四个场景的共同套路
说清验收标准 → 让它先解释再动手 → 亲自看改动对照 → 让它跑真实验证。把这四步养成习惯,它基本不会给你添乱。
一条七天上手路线
每天 20 分钟,从"会启动"走到"接进日常工作":
Day 2 · 写下你的第一份项目说明书
挑一个你常碰的小项目,用 /init 生成草稿,再补上你自己的"绝对禁止"清单,然后让它按规范改一段代码。
Day 3 · 学会"先规划、再审改动"
练一次 plan 模式出方案 + 放行前看 git diff,把安全习惯固定下来。
Day 4 · 玩一次 -p 和管道
用 git diff | claude -p "写 commit message" 这种组合,体会"脚本化"是什么感觉。
Day 5 · 加一个技能,或者一个子代理
把你自己的评审习惯做成一个技能(见 11)——比如一个"按我们团队的清单审 PR"的命令。
Day 6 · 接第一个外部工具
按官方快速上手接一个 MCP 服务,让它读到一份真实的外部数据(比如一个 GitHub Issue)。
Day 7 · 接进真实工作流
给自己定一条规矩:每天收工前用 /code-review 审一遍当天的改动。从这天起,它才算从"玩具"变成"队友"。
17最容易踩的六个坑
这些坑的共同特征是:踩之前都觉得自己不会踩。
/init 生成草稿,再补上你们真正的"绝对禁止"。/clear。git diff / /diff,这一步没有替代品。claude --version 对一下版本,再拿本文的表去核。--dangerously-skip-permissions 只在隔离容器里用。这两条都是硬事实,不是建议。同一件事,两种说法
最后再对照一次——这是所有坑里最常见的一个:
"修一下那个 bug"
"加个分页"
"优化一下性能"
"修复 src/api/users.ts 里 getUsers 在分页
参数为 0 时返回空数组的 bug,改完跑测试
并修复失败项"
"给 UserList 加前端分页,每页 20 条,
显示页码导航,改完把界面截图给我确认"
18速查表:打印出来贴在旁边
装 / 升级
curl -fsSL https://claude.ai/install.sh | bash # macOS / Linux / WSL(原生,自动更新)
irm https://claude.ai/install.ps1 | iex # Windows PowerShell
brew install --cask claude-code # Homebrew(stable 通道)
claude update # 手动升到最新
claude doctor # 只读体检(排错第一步)
启动与会话
claude # 交互模式
claude -p "问题" # 问完就退(脚本 / CI)
claude -c # 继续最近的会话(-r 恢复历史会话)
claude --permission-mode plan # 以只读的 plan 模式启动
claude --bg "任务" # 丢到后台
会话里最常用的
/help 全部命令 /clear 重开
/compact 压缩上下文 /context 看占用
/model 切模型 /effort 思考深度
/config 改设置 /permissions 权限规则
/memory 记忆 /init 生成 CLAUDE.md
/usage 用量 /rewind 回退到检查点
/plan 进规划模式 /diff 看改了什么
/code-review 审当前改动 /sandbox 开关命令沙箱
/autocompact 自动压缩阈值 /exit 退出(Ctrl+D)
外部工具与后台
claude mcp add --transport http 名字 https://…/mcp # 加远程服务
claude mcp list # 看已配的
claude agents # 看后台会话
claude attach <会话ID> # 接管后台会话
四条能直接改一改就用的指令模板
# 1) 报错 → 修复
请先说明下面这段报错的根因,再给最小改动方案;
我确认后再动手,改完跑相关测试。
[把报错原文贴在这里]
# 2) 重构 → 带验收
把 src/auth.ts 的登录逻辑拆成两个纯函数,保持对外行为不变;
用现有测试验证,最后总结改动和所有调用点。
# 3) 补测试
给 src/utils/format.js 补单元测试,覆盖 空值 / 超长文本 / 中英文混排;
沿用项目现有测试框架,全部跑通为止。
# 4) 审查
用 /code-review 审我这次的改动,重点:安全漏洞、明显的 bug、
和 CLAUDE.md 里规范不符的地方,逐条给出文件与行号。
最小安全基线(写在最后,但最重要)
- 在
CLAUDE.md里写清"绝对禁止"清单(比如不许碰.env——注意它不在系统的受保护路径里,得你自己立规矩)。 - 默认不碰
--dangerously-skip-permissions,只在隔离容器或虚拟机里用。 - 每次放行前看一遍
git diff或/diff。 - 不在会话里贴密钥、内网地址、客户数据。
- 会话越长越早
/compact或/clear,别硬撑到它开始"失忆"。
19术语对照表
这张表不是翻译字典。第三列回答的是"它在你实际用的时候重要在哪、什么时候会用到、最容易把它误当成什么"。
| 术语 | 用一句话说清 | 为什么重要 / 何时用 · 别当什么用 |
|---|---|---|
| 终端 / CLI | 用敲文字命令操作电脑的那个界面(Zsh、Bash、PowerShell 都算) | Claude Code 的主战场,本文所有 claude … 都在这里敲。别把它当成点点鼠标的图形软件——它没有按钮。 |
| 编程代理(agentic) | 会自己挑工具、连续动手完成任务,而不是只回一段话的程序 | 这是它和聊天机器人的根本区别。你给的是目标和验收标准,不是逐步指令。别以为"代理"等于"不用人管"。 |
| token(令牌/词元) | AI 读写内容的基本计件单位,一句话大约几十到上百个 | 用它估费用、估上下文占用(/usage 能看)。别去逐字换算,看量级就够。 |
| 上下文窗口 | 一次会话里它能同时"记着"的内容上限 | 决定它一次能看多少代码。满了会自动压缩,也可以手动 /compact。别当成无限内存——越满越贵。 |
| diff(改动对照) | 改动前后逐行的差异对比 | 验收任何改动的唯一凭据(git diff / /diff)。别只凭它的口头总结就放行。 |
| CLAUDE.md | 你写给它的项目说明书,每次会话自动加载 | 放长期事实:构建命令、命名约定、绝对禁止。多步骤流程别堆这里,做成技能(11)。 |
| 自动记忆(auto memory) | 它自己攒的笔记,记你的偏好和纠正 | 跨会话减少重复交代。别指望它精确,重要规矩还是要你手写。 |
| 权限模式 | 决定哪些动作不用问你就能做 | 按你对项目的信任度切(Shift+Tab)。绝不要在真机上开 bypassPermissions。 |
| plan 模式 | 只读调研、锁住改动、先给方案 | 大改动前先对齐。小任务也走它只是多绕一圈。 |
| auto 模式 | 放开门槛,由一个后台审查模型替你逐条把关 | 长任务省打断。它省掉的是弹窗,不是你的审查责任。 |
| 分类器(classifier) | auto 模式里专门判断"这个动作危不危险"的那个模型 | 你想知道"什么会被拦"时看它的默认规则(claude auto-mode defaults)。别把它当成万无一失的保险。 |
| 沙箱(sandbox) | 给命令加的文件与网络隔离层 | 想再收一圈权限时打开(/sandbox)。只在 macOS / Linux / WSL2 上可用,Windows 原生不支持。 |
| MCP | 让 AI 连上外部数据源和工具的开放协议 | 要它读 GitHub、Jira、数据库时用。别装来路不明的服务——那等于运行陌生人的代码。 |
| Hook(钩子) | 在固定时刻强制执行你写的命令 | 做"硬护栏":改完必跑 lint、危险命令必拦。软性偏好别用钩子,写进 CLAUDE.md。 |
| Skill(技能) | 把一段流程和提示词打包成可按需调用的命令 | 重复的多步骤流程做成技能(/名字 调用)。一句话的规则别做成技能。 |
| Subagent(子代理) | 带自己的工作说明、工具清单、可选模型的专职小助手 | 适合能拆开的"专家活",或者不想污染主对话的子任务。小任务派子代理反而更费钱。 |
| 检查点(checkpoint) | 会话过程中可以回退到的存档点 | 改乱了一路 /rewind 退回去。别以为它能撤销一切——已经推送到远端的提交、云端改动,它回不去。 |
后台会话(--bg) | 在后台独立跑的会话,不占你的终端 | 长任务、批量活丢给它,用 claude agents 看进度。别开一堆然后不看结果。 |
| 输出格式 JSON | 让 -p 的结果变成结构化数据 | 给脚本或流水线解析时用(--output-format json)。纯人机对话不需要。 |
| git 工作区 | 你当前仓库的状态和未提交的改动 | 它的改动对照、回退能力都建立在这上面。没有 git 仓库它也能干活,但"看改动、退回去"会弱很多——建议项目先 git init。 |
| 工作树(worktree) | 同一个仓库同时检出的另一份工作目录 | 并行任务各占一份、互不打架时用它(/batch 会自动这么做)。别指望两份工作树共享未提交的改动。 |
20遇到问题怎么排查?
大多数"它怎么不听话"都能一两步定位。第一件事永远是跑一次 claude doctor 看安装与配置的体检结果,然后按现象对表:
| 现象 | 先查什么 | 怎么修 |
|---|---|---|
| 越聊越慢,像"失忆" | /context 看上下文被什么占满了 | /compact 压缩,或 /clear 开新会话;还慢就把模型档降一级 |
| auto 模式总在拦我的操作 | /permissions 里"最近被拒"的原因 | 确认无害的操作可以手动重放并加进 allow;连续被拦多次它会自动退回手动询问,这是保护机制 |
它不遵守 CLAUDE.md | 先 /context 确认文件真被加载了 | 把规则写具体、删掉互相矛盾的条目;必须执行的改成 Hook |
| 方向跑偏、改错文件 | 它有没有先说方案 | 切 plan 模式让它讲清方案再动手;补上下文(@文件、贴报错);一条指令别塞太多目标 |
| 权限弹窗太多嫌烦 | 当前是哪种模式 | Manual → acceptEdits 让文件编辑免问;再进一步用 auto(有后台审查)。别直接上 bypassPermissions |
| 提示未授权 / 没额度 | claude auth status 看登录状态 | 确认套餐包含 Claude Code;API 用户看余额和地区支持 |
| 版本旧、文档里的功能找不到 | claude --version | 原生装用 claude update;brew 用 brew upgrade claude-code |
| 敲 claude 提示找不到命令 | which claude | 重开终端刷新 PATH;如果装了两份,只留一种 |
| MCP 连不上 | claude mcp list / claude mcp get 名字 看配置和作用范围 | 确认服务本身在跑、令牌没过期;远程服务的 --transport 写对没有 |
| 桌面版 / 网页版少了点功能 | 对比终端里的同名命令 | 各家界面能力有细微差异,个别命令只在特定平台出现;想要全功能就回终端 |
| 它改坏了,想撤回 | 有没有可回退的检查点 | /rewind 回退,或用 git diff / git checkout 手动还原;不放心就退回 Manual 逐步审 |
都不管用的时候:用 /bug 上报,并附上复现步骤——这是最有效的方式(/feedback 走的是同一个对话框,用来提产品建议)。
21常见问题
~/.claude/;企业版有单独的合规与管理策略。具体条款见官方隐私与数据使用说明。/autocompact 500k 自己定阈值。想看清楚到底被什么占满了,用 /context。/model 切换。日常用默认档就好;明显简单的活 /model haiku 省时间省钱;明显难的活 /model opus;一次坐下干不完的大活才考虑 fable(它不是任何套餐的默认档,需要主动选)。详见 10。-p 跑一次性任务;用 --permission-mode dontAsk 加 --allowedTools 白名单把工具限死;密钥走流水线的密钥管理。官方还提供现成的 GitHub Actions / GitLab CI 集成。CLAUDE.md 或项目文档里最稳。CLAUDE.md、.claude/ 下的设置与技能、子代理、.mcp.json 提交进 Git 就随项目走,团队共享。个人全局的(~/.claude/)只在你自己的机器上生效,换电脑要自己拷。公司统一管控走管理策略文件。98参考来源与证据边界
这是一篇讲工具的文章,所以"校对到哪一天、依据哪一版"比结论本身更重要。下面每一条都标了口径。
一手来源(官方文档,逐页读取)
- Claude Code Overview——它是什么、有哪些界面、各安装方式与自动更新行为。
- Advanced setup——系统要求、四条安装路线、Node.js 版本要求(npm 安装自 v2.1.198 起需 Node 22+)、卸载与清理配置。
- CLI reference——终端命令与启动参数(
-p、--add-dir、--fork-session、setup-token、--autocompact等)。 - Commands——全部斜杠命令与内建技能,含各自的最低版本要求。
- Choose a permission mode——六种权限模式、分类器默认拦截清单、受保护路径清单。
- Model configuration——模型别名、各档位指向的版本、
/effort档位、自动压缩窗口。 - Memory——
CLAUDE.md的五个位置与加载顺序、.claude/rules/的paths机制、自动记忆的存放路径。 - Extend Claude with skills——技能的定义、加载时机、内建技能与"最多叠加 6 个"。
- Subagents——子代理配置文件的字段(
name/description/tools/model)。 - Hooks reference——事件列表与配置结构。
- Connect Claude Code to tools via MCP——三种接法、
--transport、--scope、streamable-http别名。 - Manage costs——用量查看、省用量建议、企业部署的平均成本数字。
- Models overview与官方定价页——当前模型名称(Fable 5.1 / Opus 5 / Sonnet 5 / Haiku 4.5),以及套餐对照表里"Claude Code 是否包含"一栏。
- anthropics/claude-code——官方仓库与问题反馈入口。
本文自己做的核对
- 版本号:从 npm 官方仓库的发布记录里取
@anthropic-ai/claude-code的标签,校对时为 latest2.1.269、stable2.1.236。文中出现的每一个功能都对着它自己的最低版本要求核过(例如/autocompact需要 v2.1.221 以上、Fable 5.1 需要 v2.1.257 以上)。 - 模型名称:以官方模型总览页为准,逐个对过 Fable 5.1 / Opus 5 / Sonnet 5 / Haiku 4.5,以及各家服务商下别名指向的版本差异(正文只写了 Anthropic 官方 API 这一列)。
- 受保护路径:逐条抄自权限模式页的清单,并据此修正了旧版的一处错误(见下)。
证据边界与时效
- 版本口径。本文校对于 Claude Code @ 2.1.269(2026-09-13)。这是个每周都在发版的工具,命令名、默认值、模型别名都可能变——这也是本文把时效标为
evolving的原因。发现对不上时,以/help和官方文档为准,并跑一次claude --version看看自己落后了多少。 - 本文没有做的事。没有在你的机器上逐条实测每条命令;没有覆盖 Amazon Bedrock / Google Cloud / Microsoft Foundry 这些第三方入口的差异;没有展开企业级的管理策略、监控与合规配置;也没有评测各模型的真实能力差距(那需要系统性实验,不是读文档能得出的)。
- 一处刻意的"不写死"。套餐价格一律不写具体金额,只写"免费版不含、付费版包含",因为价格随时可能调整——要用时请查官方定价页。
- 本文相对旧版更正的一处事实。旧版把
.env*列进了"受保护路径"。官方清单里没有.env(有的是.envrc),而且"读取.env并把凭据发往对应 API"明确列在默认允许的行为里。所以这一条已经从"系统会帮你挡住"改成了"你得自己立规矩"。
99一句话总结
Claude Code 是 Anthropic 的编程代理:你说清目标和验收标准,它去读代码、改文件、跑命令、管 Git,然后把改动摆给你看——它替你省掉的是"聊天窗口 → 编辑器 → 终端 → 网页"之间那一整段搬运和试错,而不是替你承担"这样改对不对"的责任。
新手只要抓住三件事就够用:① 写好项目根目录的 CLAUDE.md,它才知道你们的规矩(多步骤流程做成技能,别堆在说明书里);② 先搞懂权限模式再谈放开——默认每步都问,Pro / Max / Team 套餐的默认档是带后台审查的 auto,而 --dangerously-skip-permissions 只属于隔离容器,另外要记住 .env 并不在系统受保护路径里;③ 每次放行前看一遍改动对照,这一步没有任何替代品。
工具类文章会随版本过时:本文校对于 2.1.269(2026-09-13),遇到对不上的地方,以 /help 和官方文档为准。