CONTEXT
超长上下文
窗口大小取决于所选模型,部分模型可达 100 万 token,能一次读进大型代码库,不必人工挑文件喂给它。
同一个需求交给不同的人,改法会不一样;交给一个每次都从零读代码的助手,改法更不一样。所以第一件正事不是写提示词,是把项目的约定固定下来——命名、目录、提交规范、哪些文件不许动,写进仓库里的 CLAUDE.md,之后每一次会话都带着它。手册讲清了这个文件放在哪一级目录、多份怎么合并、优先级谁高。
第二件是权限。它把动作分成读、写、执行三类,配六种权限模式和 allow / ask / deny 三种规则;你可以让它自由读源码、改文件前问一次、永远不碰生产配置。规则语法在第五章,是整本书里最值得先读的一节。
第三件才是把重复劳动交出去:Hooks 在文件写完后自动跑 lint 与格式化,子代理带着各自独立的上下文并行处理不同的任务,MCP 把 GitHub、数据库、Slack 接进同一个会话。端到端实战一章用一个完整项目把这三件事按顺序走了一遍,五步分别对应立规矩、上权限、配钩子、先规划、再并行收尾。
WHAT IT DOES
八项能力,手册里各有专章:配在哪个文件、命令怎么写、什么时候该用。
CONTEXT
窗口大小取决于所选模型,部分模型可达 100 万 token,能一次读进大型代码库,不必人工挑文件喂给它。
PERMISSION
读、写、执行三类动作,六种权限模式,外加 allow / ask / deny 的细粒度规则。
MEMORY
CLAUDE.md 跨会话保留项目约定,按目录层级发现与合并,个人偏好与团队规范分开放。
PARALLEL
每个子代理有独立上下文,分头处理互不干扰,并行任务一章给了三种并行姿势。
AUTOMATION
编辑、提交等事件后自动跑 lint、格式化与校验,把「记得做」变成「自动做」。
INTEGRATION
外部工具按开放协议接进会话,另有可复用的 Skills 与官方插件市场。
WORKFLOW
VS Code 与 JetBrains 集成,提交、生成 PR,以及在 GitHub Actions 里自动做代码审查。
COST
上下文压缩、思考强度关键词与模型选择各有专节,最佳实践一章另给一节费用控制实战。
THE COURSE
三级各有一套实验、一件可见产物和一张验收清单。做不完上一级的清单,就不要开始下一级。
STARTER3–4 小时
在自己机器上把 Claude Code 装好、登录成功,跑通第一个真实任务,并能说清它每一步动了哪个文件。
前置一台 macOS 13.0+、Windows 10 1809+ / Server 2019+,或 Ubuntu 20.04+ / Debian 10+ / Alpine 3.19+ 的机器,4 GB 以上内存,x64 或 ARM64;一个 Claude Pro、Max、Team、Enterprise 或 Console 账号——免费版不含 Claude Code。会用 git 的基本命令。
curl -fsSL https://claude.ai/install.sh | bash;Windows PowerShell 跑 irm https://claude.ai/install.ps1 | iex。也可以 brew install --cask claude-code 或 winget install Anthropic.ClaudeCode。claude --version 应打印出形如 2.1.211 (Claude Code) 的版本号。claude doctor。它不启动会话,只打印安装健康度与设置文件校验结果。有报错先修完再往下。mkdir ~/cc-lab && cd ~/cc-lab && git init。所有第一天的实验都发生在这里。~/cc-lab 里跑 claude,按提示在浏览器里登录。浏览器打不开就按 c 复制登录链接;如果浏览器显示的是一串登录码,粘回终端的 Paste code here if prompted。/status,确认能看到当前的登录方式与组织。写一个 hello.py,打印当前目录下所有 .md 文件的文件名,然后运行它。/context,看这次会话的上下文由哪几块构成、各占多少。git status 与 git diff,逐行核对它究竟改了什么、有没有多改。做完你手上会多出~/cc-lab 里一个能在你自己终端跑通的 hello.py、一份 claude doctor 的输出、一次 git diff 的人工核对记录(哪几行是它写的、你是否同意)。
claude --version 打印出了版本号,不是 command not foundclaude doctor 没有报设置文件校验错误/status 里能看到当前登录方式git diff 的改动范围和你的预期一致,没有出现你没要求的文件claude: command not found~/.local/bin/claude,这个目录不在你的 PATH 里。把它加进 shell 配置后重开终端;仍不行就跑 claude doctor,它会列出安装诊断和建议的修法。EBADENGINE 警告git checkout . 回滚,再重开会话,用 Shift+Tab 切到 Plan 模式让它先说方案、你确认后再动手。安全第一天不要在有未提交改动的真实仓库里练。新建空目录 git init 之后再开始,任何时候都能 git checkout . 一键回到原点。权限提示是给你读的,不是给你点的——第一天每一次都读完再决定。
ADVANCED6–8 小时(建议拆成两天,规矩一天、交付一天)
把项目的约定写成 CLAUDE.md 与 .claude/rules/,把边界配成 allow / ask / deny 规则,然后独立完成一个从需求到 PR 的真实改动。
前置已完成入门级;手上有一个你有写权限的真实仓库,且这个仓库有可执行的测试或 lint 命令(后面配权限规则要用到具体命令名)。
/init 生成第一版 CLAUDE.md,然后**自己动手删**——官方建议每份控制在 200 行以内,越长越不被遵守。.claude/rules/testing.md,开头用 frontmatter 限定生效范围,例如 paths: 下写 "tests/**/*.ts"。这样它只在 Claude 读到匹配文件时才进上下文。.claude/settings.json(这份是要提交给团队的),写权限规则:permissions.allow 放 Bash(npm run lint)、Bash(npm run test:*);permissions.ask 放 Bash(git push:*);permissions.deny 放 Read(./.env)、Edit(./.github/workflows/**)。defaultMode 设成 "plan",让每个会话默认从只读规划开始。/permissions 核对规则真的被读进来了——克隆下来的仓库要先接受一次工作区信任对话框,否则项目设置不生效。npm run lint(应当不弹窗直接执行),再让它读 .env(应当被拒)。两条都验过才算配对了。default)、acceptEdits、plan 之间切一圈,记下各自放开了什么。/context,上下文过半时 /compact 一次,观察压缩之后哪些东西还在(项目根的 CLAUDE.md 会被重新读回来,子目录里的不会)。做完你手上会多出仓库里多出三份可以提交给团队的文件:CLAUDE.md、至少一个 .claude/rules/*.md、.claude/settings.json;外加一个由它改出来、你逐行审过的 PR。
/context 的 Memory files 一栏里能看到它.claude/rules/ 里至少有一条带 paths: 的规则,只在匹配文件被读到时才载入.env 确实读不到(反例验过,不是看配置文件推的)claude 并接受信任对话框,项目 .claude/settings.json 才会被采用;二是 JSON 写错了,claude doctor 会把设置文件的校验错误列出来。Read(./.env),父目录的 .env 还是能被读到Read(.env) 或 Read(**/.env) 只覆盖当前目录及其子目录;要覆盖整个文件系统得写 Read(//**/.env)。permissions.deny。/context 看构成,把大范围调研交给子 Agent(它的文件读取不占你的窗口),或者 /compact 一次;也可以用 /autocompact 500k 把自动压缩的触发点提前。claudeMdExcludes 按 glob 排除掉不相关的那些,写进 .claude/settings.local.json 保持只对你生效。安全.claude/settings.json 是要提交给全团队的,别把只对你成立的放行写进去——个人放行写 .claude/settings.local.json(默认被 gitignore)。bypassPermissions 会跳过几乎所有权限提示,包括写 .git 和 .claude 这类受保护路径,只在容器或虚拟机里用。
MASTERY8–10 小时
用 Hooks、子 Agent、MCP 与沙箱把重复劳动交出去,再用管理员设置给团队定下用户改不动的边界,并能说清哪些事该用设置强制、哪些事只能靠文档约束。
前置已完成进阶级;对目标仓库有 admin 权限(装 GitHub App 要用);Linux 或 WSL2 上能 sudo 安装 bubblewrap 与 socat;能找到公司里负责 MDM / 组策略的人对一次话。
.claude/settings.json 的 hooks 下加 PostToolUse,matcher 写 Edit|Write,handler 用 "type": "command" 指向 ${CLAUDE_PROJECT_DIR}/.claude/hooks/format.sh。改完文件自动跑格式化。PreToolUse + matcher Bash,脚本读 stdin 的 tool_input.command,命中 rm -rf 就输出 hookSpecificOutput.permissionDecision 为 "deny" 并给出理由。rm -rf 目标无害的命令,确认真的被挡下并显示了你写的理由。没跑过反例的护栏比没有护栏更危险。.claude/agents/reviewer.md,frontmatter 只需 name 与 description 两个必填字段,再按需加 tools、model。把代码审查派给它。/context——那些文件不应该出现在你的窗口里。claude mcp add --transport http <name> <url>,加 --scope project 会写进仓库根的 .mcp.json 供团队共用。claude mcp list 看状态,出现 ✔ Connected 才算通。/sandbox。macOS 用系统自带的 Seatbelt,不用装东西;Linux / WSL2 先 sudo apt-get install bubblewrap socat;**原生 Windows 不支持沙箱**,必须在 WSL2 里跑。sandbox.enabled 为 true,sandbox.filesystem.denyRead 写 ["~/"] 再用 allowRead 写 ["."] 把项目目录放回来,sandbox.network.allowedDomains 只留你真正需要的域名。~/.ssh 下的文件应被拒,读项目文件正常;curl 一个不在 allowedDomains 里的域名应当不通。/install-github-app,合并它生成的工作流 PR,然后在一个 issue 里 @claude 提一个小请求,看它是否回帖。permissions.deny、sandbox.enabled,以及 forceLoginOrgUUID 这类登录组织限制。做完你手上会多出.claude/hooks/ 下两个跑得起来(且反例验过)的钩子脚本、一个子 Agent 定义文件、一份 .mcp.json、一份收紧过的沙箱配置、一个能响应 @claude 的 GitHub 工作流,以及一份交给 IT 的 managed settings 草案。
rm -rf 真的被 PreToolUse 钩子挡下,并显示了你写的理由/context 里claude mcp list 里目标服务器显示 ✔ Connected~/.ssh 被拒、读项目目录正常、访问未放行域名不通@claude 能收到回复permissions.deny 与 sandbox.enabled 两项,且你能说清它们各自拦住了什么hooks 是三层嵌套:事件名 → matcher 组 → handler 数组,少写一层就不触发。另外 PostToolUse 的 exit code 2 只能把 stderr 报给 Claude,拦不住已经执行完的工具——要拦必须放在 PreToolUse。/sandbox 的 Dependencies 页会列出缺的是 ripgrep、bubblewrap、socat 还是可选的 seccomp 过滤器。要让缺依赖直接变成硬失败,把 sandbox.failIfUnavailable 设为 true——托管部署应当这么配。.mcp.json 里的服务器一直显示 Pending approvalclaude 批准即可;要重置这些选择用 claude mcp reset-project-choices。sandbox.filesystem.disabled 设为 true 之后,沙箱里的命令可以写 shell 启动文件、$PATH 上的可执行文件甚至 ~/.claude/settings.json,下一轮运行时就能给自己扩权。这是提权路径,不是降级保护。安全这一级每一项都在扩大它的自主范围,所以每一项都要配一个反例测试。managed settings 一旦下发,用户侧改不动——先在一台机器上完整验证再铺开,否则全公司一起卡住。启用 forceRemoteSettingsRefresh 这类「取不到设置就不启动」的开关前,先想清楚断网时你的团队还要不要干活。
SYLLABUS
小节顺序就是学习顺序。四本用同一份目录,读完一本,第二本可以直接跳到你要的那一节。
Anthropic 出的终端编程助手。它和「会写代码的聊天框」的差别不在生成能力,而在于它能在你的仓库里直接读文件、跑命令、改文件,并且把项目的约定带在身上——写进 CLAUDE.md 的规矩,每一次新会话都会重新读一遍。它跑在你自己的终端里,也有 VS Code 扩展、JetBrains 插件和桌面端。
三件事在敲安装命令之前就该确认完:系统够不够新、账号有没有、Windows 上打算走原生还是 WSL。第三件最容易返工——沙箱功能在原生 Windows 上不支持,如果你后面要用沙箱,一开始就该装在 WSL2 里。
官方推荐原生安装器,它会在后台自动更新;Homebrew、WinGet 和 Linux 包管理器装的不自动更新,要自己升。npm 装的是同一个原生二进制,只是外面套了个包——运行时不调用 Node,但 v2.1.198 起包本身要求 Node.js 22+。
第一个项目的目的不是做出什么东西,是让你看清它的工作方式:什么时候读文件、什么时候问你、改动落在哪。所以场地要干净——新目录、git init、没有别的东西会被它波及。
两套机制并存:CLAUDE.md 是你写给它的规矩,自动记忆是它写给自己的笔记。两者都在每次会话开始时载入,也都只是上下文——不是强制配置。必须被执行的事要写成 Hook,必须被拦住的事要写成权限规则。
六种权限模式 + allow / ask / deny 三类规则。模式决定「默认问不问」,规则决定「具体这一条问不问」。规则由 Claude Code 客户端执行,不是由模型自觉——写在提示词或 CLAUDE.md 里的话改不了它被允许做什么。
内建的读写与 Bash 之外,外部系统统一走 MCP(Model Context Protocol)接进来。判断标准很简单:如果你正在把另一个系统里的内容复制粘贴进对话框,那个系统就该接成 MCP。
上下文窗口是最硬的约束。这一节要建立的判断是:什么时候该压缩、什么时候该外包给子 Agent、什么时候该换一个更大窗口的模型。三者解决的是不同的问题,不能互相替代。
子 Agent 的价值是上下文隔离,不是并行速度。它有自己独立的窗口,读多少文件都不占你的主会话;回来的只有最终文本和一小段元数据。代价是它不继承你的对话历史,任务描述必须自带足够上下文。
Hooks 把「记得做」变成「自动做」,GitHub Actions 把它搬进 CI。两者的共同前提是:先有规矩和边界,再谈自动化——顺序倒过来,你会得到一个自动化的失控。
先分清故障发生在哪一层:装没装上、登没登上、设置有没有被读到、规则有没有生效。四个诊断入口各管一层,别一上来就怀疑模型。
沙箱和管理员设置是两条不同的边界:沙箱由操作系统强制,管住命令能碰什么;管理员设置由客户端强制,管住用户能配什么。都不是靠模型自觉,所以都能审计。
入门级过不过,看的是「你能不能复述它做了什么」,不是「它有没有把活干完」。以下六条全部为真才算过。
进阶级的验收对象是仓库里多出来的那三份文件,以及它们是否被真正读到、真正生效。反例必须真跑,看配置文件推断不算。
精通级验收的是自动化与治理,判定标准比前两级更严:每一条护栏都要有对应的反例记录,没跑过反例的一律不算通过。
下面 cheatsheet 与 glossary 两个字段是这一节的正文:命令按场景归组,生僻词用大白话解释一遍。所有命令名与路径都在 2026-08-15 对过官方文档。
INSIDE THE MANUAL
从装环境到端到端实战,收尾一章对照 Codex CLI。
装好、跑通、出了错知道去哪查
把规矩写成文件,把边界配成规则
把重复劳动交出去,再用一个完整项目验收
14 道题,答对才解锁下一题:入门 5 题、进阶 6 题、精通 3 题。每题都给解析,错在哪一节能直接翻回去。
WHERE TO START
按手册前四章的顺序来,一个小时之内能看到它真的在你机器上干活。
Node.js 18 以上(手册推荐 20 LTS),执行 npm i -g @anthropic-ai/claude-code;也可以用原生安装器或 Homebrew / WinGet。
手册 · 第 2 章
用 Claude 订阅账号登录,或填 API Key。两种方式的取舍与费用说明在认证一章。
手册 · 第 3 章
手册的第一个实战是让它写一个脚本并运行。看清它怎么读、什么时候问你、改动落在哪,再放它进正式代码。
手册 · 第 4 章
OPEN THE MANUAL
网页版手册,点开链接直接读,不用装任何东西。
NEXT STEP
带一个真实的业务问题来,我们和你的团队一起判断这些工具该落在哪一步。