汉兴人工智能OPEN CAIO启动企业 AI 诊断
启动企业 AI 诊断

MANUAL 01 · CLAUDE CODE

让终端读懂整个代码库

Anthropic 的终端编程助手。差别不在于它会写代码,而在于它能一次装下整个仓库再动手——给出的修改是读过上下文之后的判断,不是照着片段猜的。

出品
Anthropic · 运行在 Node.js 环境
手册
20 章,分入门 / 进阶 / 精通三段
自测
14 道闯关题,答对才解锁下一题
适合
每天在终端里改代码的人

WHAT IT SOLVES

先立规矩,再交权限

手册把顺序讲得很硬:记忆、权限、自动化,一步都不能提前。

同一个需求交给不同的人,改法会不一样;交给一个每次都从零读代码的助手,改法更不一样。所以第一件正事不是写提示词,是把项目的约定固定下来——命名、目录、提交规范、哪些文件不许动,写进仓库里的 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

Hooks 钩子

编辑、提交等事件后自动跑 lint、格式化与校验,把「记得做」变成「自动做」。

INTEGRATION

MCP 与插件

外部工具按开放协议接进会话,另有可复用的 Skills 与官方插件市场。

WORKFLOW

Git 与 IDE

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 的基本命令。

跟做实验

  1. 01装:macOS / Linux / WSL 跑 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。
  2. 02验:claude --version 应打印出形如 2.1.211 (Claude Code) 的版本号。
  3. 03体检:claude doctor。它不启动会话,只打印安装健康度与设置文件校验结果。有报错先修完再往下。
  4. 04开一个干净的实验场:mkdir ~/cc-lab && cd ~/cc-lab && git init。所有第一天的实验都发生在这里。
  5. 05在 ~/cc-lab 里跑 claude,按提示在浏览器里登录。浏览器打不开就按 c 复制登录链接;如果浏览器显示的是一串登录码,粘回终端的 Paste code here if prompted。
  6. 06进会话后输入 /status,确认能看到当前的登录方式与组织。
  7. 07第一条任务原样输入:写一个 hello.py,打印当前目录下所有 .md 文件的文件名,然后运行它。
  8. 08它请求权限时,**先读清楚它要执行什么**,然后只选「这一次允许」,不要选「不再询问」。
  9. 09任务完成后输入 /context,看这次会话的上下文由哪几块构成、各占多少。
  10. 10退出会话,跑 git status 与 git diff,逐行核对它究竟改了什么、有没有多改。

做完你手上会多出~/cc-lab 里一个能在你自己终端跑通的 hello.py、一份 claude doctor 的输出、一次 git diff 的人工核对记录(哪几行是它写的、你是否同意)。

验收清单

  • claude --version 打印出了版本号,不是 command not found
  • claude doctor 没有报设置文件校验错误
  • /status 里能看到当前登录方式
  • hello.py 能在你自己的终端里直接跑出结果,不依赖会话
  • 你能说出这次会话里它一共请求了几次权限、分别要做什么
  • git diff 的改动范围和你的预期一致,没有出现你没要求的文件

常见错误

装完了但 claude: command not found
原生安装器把启动器放在 ~/.local/bin/claude,这个目录不在你的 PATH 里。把它加进 shell 配置后重开终端;仍不行就跑 claude doctor,它会列出安装诊断和建议的修法。
用 npm 装时冒出 EBADENGINE 警告
v2.1.198 起 npm 包要求 Node.js 22 及以上。这个警告不阻断安装——npm 包装的是原生二进制,运行时并不调用 Node——但要消掉就得升级 Node,或者干脆改用原生安装器。
登录后浏览器一直转,终端没反应
本地回调服务器不通,在 WSL2、SSH 会话和容器里很常见。按提示把浏览器上显示的登录码粘回终端即可。
第一次就让它改了一堆你没让它改的文件
多半是在没读懂权限提示的情况下点了「不再询问」。先 git checkout . 回滚,再重开会话,用 Shift+Tab 切到 Plan 模式让它先说方案、你确认后再动手。
免费 Claude 账号登不上
免费版不包含 Claude Code。需要 Pro、Max、Team、Enterprise 或 Console 账号,也可以走 Amazon Bedrock、Google Cloud Agent Platform、Microsoft Foundry 这类第三方供应商。

安全第一天不要在有未提交改动的真实仓库里练。新建空目录 git init 之后再开始,任何时候都能 git checkout . 一键回到原点。权限提示是给你读的,不是给你点的——第一天每一次都读完再决定。

ADVANCED6–8 小时(建议拆成两天,规矩一天、交付一天)

独立交付

把项目的约定写成 CLAUDE.md 与 .claude/rules/,把边界配成 allow / ask / deny 规则,然后独立完成一个从需求到 PR 的真实改动。

前置已完成入门级;手上有一个你有写权限的真实仓库,且这个仓库有可执行的测试或 lint 命令(后面配权限规则要用到具体命令名)。

跟做实验

  1. 01在仓库根目录跑 /init 生成第一版 CLAUDE.md,然后**自己动手删**——官方建议每份控制在 200 行以内,越长越不被遵守。
  2. 02把只在某一类文件上成立的规矩挪出去:新建 .claude/rules/testing.md,开头用 frontmatter 限定生效范围,例如 paths: 下写 "tests/**/*.ts"。这样它只在 Claude 读到匹配文件时才进上下文。
  3. 03新建 .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/**)。
  4. 04在同一份文件里把 defaultMode 设成 "plan",让每个会话默认从只读规划开始。
  5. 05重开会话,跑 /permissions 核对规则真的被读进来了——克隆下来的仓库要先接受一次工作区信任对话框,否则项目设置不生效。
  6. 06做两个反例测试:让它跑 npm run lint(应当不弹窗直接执行),再让它读 .env(应当被拒)。两条都验过才算配对了。
  7. 07用 Shift+Tab 在 Manual(default)、acceptEdits、plan 之间切一圈,记下各自放开了什么。
  8. 08挑一个你本来就要做的小需求。先在 Plan 模式让它出方案,你改完方案再切回执行模式动手。
  9. 09过程中跑 /context,上下文过半时 /compact 一次,观察压缩之后哪些东西还在(项目根的 CLAUDE.md 会被重新读回来,子目录里的不会)。
  10. 10自己 review 一遍 diff,提交,开 PR。

做完你手上会多出仓库里多出三份可以提交给团队的文件:CLAUDE.md、至少一个 .claude/rules/*.md、.claude/settings.json;外加一个由它改出来、你逐行审过的 PR。

验收清单

  • CLAUDE.md 在 200 行以内,且 /context 的 Memory files 一栏里能看到它
  • .claude/rules/ 里至少有一条带 paths: 的规则,只在匹配文件被读到时才载入
  • allow 名单里的命令执行时不再弹窗
  • deny 名单里的 .env 确实读不到(反例验过,不是看配置文件推的)
  • 你能一句话说清 default / acceptEdits / plan 三种模式各自放开了什么
  • PR 里每一处改动你都能解释为什么这么改

常见错误

规则写了但完全不生效
两种原因:一是工作区未被信任——克隆来的仓库要先在里面跑一次 claude 并接受信任对话框,项目 .claude/settings.json 才会被采用;二是 JSON 写错了,claude doctor 会把设置文件的校验错误列出来。
deny 了 Read(./.env),父目录的 .env 还是能被读到
路径规则是有锚点的。Read(.env) 或 Read(**/.env) 只覆盖当前目录及其子目录;要覆盖整个文件系统得写 Read(//**/.env)。
CLAUDE.md 写得很详细,它还是不照做
CLAUDE.md 是上下文,不是强制配置——官方明说它「不是硬性执行层」。必须在某个时点发生的事(提交前跑 lint、改完文件跑格式化)要写成 Hook;必须拦住的动作要写成 permissions.deny。
会话越到后面越糊涂,开始重复问已经答过的事
上下文被文件内容挤满了。/context 看构成,把大范围调研交给子 Agent(它的文件读取不占你的窗口),或者 /compact 一次;也可以用 /autocompact 500k 把自动压缩的触发点提前。
monorepo 里被别的团队的 CLAUDE.md 干扰
Claude 会沿目录树向上把每一层的 CLAUDE.md 都读进来。用 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 / 组策略的人对一次话。

跟做实验

  1. 01写第一个 Hook:在 .claude/settings.json 的 hooks 下加 PostToolUse,matcher 写 Edit|Write,handler 用 "type": "command" 指向 ${CLAUDE_PROJECT_DIR}/.claude/hooks/format.sh。改完文件自动跑格式化。
  2. 02写第二个 Hook:PreToolUse + matcher Bash,脚本读 stdin 的 tool_input.command,命中 rm -rf 就输出 hookSpecificOutput.permissionDecision 为 "deny" 并给出理由。
  3. 03**跑反例**:让它执行一条 rm -rf 目标无害的命令,确认真的被挡下并显示了你写的理由。没跑过反例的护栏比没有护栏更危险。
  4. 04建子 Agent:.claude/agents/reviewer.md,frontmatter 只需 name 与 description 两个必填字段,再按需加 tools、model。把代码审查派给它。
  5. 05验证隔离:让 reviewer 读十几个文件,然后在主会话跑 /context——那些文件不应该出现在你的窗口里。
  6. 06接一个 MCP 服务器:claude mcp add --transport http <name> <url>,加 --scope project 会写进仓库根的 .mcp.json 供团队共用。claude mcp list 看状态,出现 ✔ Connected 才算通。
  7. 07开沙箱:会话里跑 /sandbox。macOS 用系统自带的 Seatbelt,不用装东西;Linux / WSL2 先 sudo apt-get install bubblewrap socat;**原生 Windows 不支持沙箱**,必须在 WSL2 里跑。
  8. 08收紧沙箱:在设置里写 sandbox.enabled 为 true,sandbox.filesystem.denyRead 写 ["~/"] 再用 allowRead 写 ["."] 把项目目录放回来,sandbox.network.allowedDomains 只留你真正需要的域名。
  9. 09验证沙箱:让它读 ~/.ssh 下的文件应被拒,读项目文件正常;curl 一个不在 allowedDomains 里的域名应当不通。
  10. 10接 CI:跑 /install-github-app,合并它生成的工作流 PR,然后在一个 issue 里 @claude 提一个小请求,看它是否回帖。
  11. 11写一份 managed settings 草案交给 IT:至少包含 permissions.deny、sandbox.enabled,以及 forceLoginOrgUUID 这类登录组织限制。

做完你手上会多出.claude/hooks/ 下两个跑得起来(且反例验过)的钩子脚本、一个子 Agent 定义文件、一份 .mcp.json、一份收紧过的沙箱配置、一个能响应 @claude 的 GitHub 工作流,以及一份交给 IT 的 managed settings 草案。

验收清单

  • 改完文件后格式化确实自动跑了,而不是你手动跑的
  • 反例测过:一条 rm -rf 真的被 PreToolUse 钩子挡下,并显示了你写的理由
  • 子 Agent 读的文件没有出现在主会话的 /context 里
  • claude mcp list 里目标服务器显示 ✔ Connected
  • 沙箱开启时,读 ~/.ssh 被拒、读项目目录正常、访问未放行域名不通
  • 在 issue 里 @claude 能收到回复
  • managed settings 草案里至少包含 permissions.deny 与 sandbox.enabled 两项,且你能说清它们各自拦住了什么

常见错误

Hook 看着配好了,什么都没发生
hooks 是三层嵌套:事件名 → matcher 组 → handler 数组,少写一层就不触发。另外 PostToolUse 的 exit code 2 只能把 stderr 报给 Claude,拦不住已经执行完的工具——要拦必须放在 PreToolUse。
写了 deny 逻辑就以为安全了
没跑过反例的护栏只提供虚假安全感。每写一条拦截逻辑,必须构造一个应该被拦的输入真跑一遍,看到它被拦下才算数。
Linux 上沙箱似乎没起作用,也没有报错
依赖缺失时默认行为是「警告 + 不沙箱继续跑」。/sandbox 的 Dependencies 页会列出缺的是 ripgrep、bubblewrap、socat 还是可选的 seccomp 过滤器。要让缺依赖直接变成硬失败,把 sandbox.failIfUnavailable 设为 true——托管部署应当这么配。
项目 .mcp.json 里的服务器一直显示 Pending approval
项目级 MCP 服务器要在交互式会话里人工批准一次。在该目录跑 claude 批准即可;要重置这些选择用 claude mcp reset-project-choices。
把 managed settings 当成万能开关
managed settings 管的是技术强制——deny 规则、沙箱、环境变量、登录组织限制;行为层面的约束(代码风格、数据处理提醒)要走 managed CLAUDE.md。官方把这两张表分开列,就是因为经常有人拿错工具。
以为关掉文件系统隔离只是「少一层保险」
sandbox.filesystem.disabled 设为 true 之后,沙箱里的命令可以写 shell 启动文件、$PATH 上的可执行文件甚至 ~/.claude/settings.json,下一轮运行时就能给自己扩权。这是提权路径,不是降级保护。

安全这一级每一项都在扩大它的自主范围,所以每一项都要配一个反例测试。managed settings 一旦下发,用户侧改不动——先在一台机器上完整验证再铺开,否则全公司一起卡住。启用 forceRemoteSettingsRefresh 这类「取不到设置就不启动」的开关前,先想清楚断网时你的团队还要不要干活。

SYLLABUS

十六节,四本课程同一套骨架

小节顺序就是学习顺序。四本用同一份目录,读完一本,第二本可以直接跳到你要的那一节。

  1. 01

    这是什么,适合谁

    Anthropic 出的终端编程助手。它和「会写代码的聊天框」的差别不在生成能力,而在于它能在你的仓库里直接读文件、跑命令、改文件,并且把项目的约定带在身上——写进 CLAUDE.md 的规矩,每一次新会话都会重新读一遍。它跑在你自己的终端里,也有 VS Code 扩展、JetBrains 插件和桌面端。

  2. 02

    安装前检查

    三件事在敲安装命令之前就该确认完:系统够不够新、账号有没有、Windows 上打算走原生还是 WSL。第三件最容易返工——沙箱功能在原生 Windows 上不支持,如果你后面要用沙箱,一开始就该装在 WSL2 里。

  3. 03

    第一次成功运行

    官方推荐原生安装器,它会在后台自动更新;Homebrew、WinGet 和 Linux 包管理器装的不自动更新,要自己升。npm 装的是同一个原生二进制,只是外面套了个包——运行时不调用 Node,但 v2.1.198 起包本身要求 Node.js 22+。

  4. 04

    入门项目

    第一个项目的目的不是做出什么东西,是让你看清它的工作方式:什么时候读文件、什么时候问你、改动落在哪。所以场地要干净——新目录、git init、没有别的东西会被它波及。

  5. 05

    项目规则与上下文

    两套机制并存:CLAUDE.md 是你写给它的规矩,自动记忆是它写给自己的笔记。两者都在每次会话开始时载入,也都只是上下文——不是强制配置。必须被执行的事要写成 Hook,必须被拦住的事要写成权限规则。

  6. 06

    权限、安全与审批

    六种权限模式 + allow / ask / deny 三类规则。模式决定「默认问不问」,规则决定「具体这一条问不问」。规则由 Claude Code 客户端执行,不是由模型自觉——写在提示词或 CLAUDE.md 里的话改不了它被允许做什么。

  7. 07

    文件、工具与外部系统

    内建的读写与 Bash 之外,外部系统统一走 MCP(Model Context Protocol)接进来。判断标准很简单:如果你正在把另一个系统里的内容复制粘贴进对话框,那个系统就该接成 MCP。

  8. 08

    记忆与长期任务

    上下文窗口是最硬的约束。这一节要建立的判断是:什么时候该压缩、什么时候该外包给子 Agent、什么时候该换一个更大窗口的模型。三者解决的是不同的问题,不能互相替代。

  9. 09

    多 Agent 协作

    子 Agent 的价值是上下文隔离,不是并行速度。它有自己独立的窗口,读多少文件都不占你的主会话;回来的只有最终文本和一小段元数据。代价是它不继承你的对话历史,任务描述必须自带足够上下文。

  10. 10

    自动化和团队使用

    Hooks 把「记得做」变成「自动做」,GitHub Actions 把它搬进 CI。两者的共同前提是:先有规矩和边界,再谈自动化——顺序倒过来,你会得到一个自动化的失控。

  11. 11

    调试与高频故障

    先分清故障发生在哪一层:装没装上、登没登上、设置有没有被读到、规则有没有生效。四个诊断入口各管一层,别一上来就怀疑模型。

  12. 12

    生产使用边界

    沙箱和管理员设置是两条不同的边界:沙箱由操作系统强制,管住命令能碰什么;管理员设置由客户端强制,管住用户能配什么。都不是靠模型自觉,所以都能审计。

  13. 13

    入门项目验收

    入门级过不过,看的是「你能不能复述它做了什么」,不是「它有没有把活干完」。以下六条全部为真才算过。

  14. 14

    进阶项目验收

    进阶级的验收对象是仓库里多出来的那三份文件,以及它们是否被真正读到、真正生效。反例必须真跑,看配置文件推断不算。

  15. 15

    精通项目验收

    精通级验收的是自动化与治理,判定标准比前两级更严:每一条护栏都要有对应的反例记录,没跑过反例的一律不算通过。

  16. 16

    速查卡与术语表

    下面 cheatsheet 与 glossary 两个字段是这一节的正文:命令按场景归组,生僻词用大白话解释一遍。所有命令名与路径都在 2026-08-15 对过官方文档。

INSIDE THE MANUAL

20 章,分三段推进

从装环境到端到端实战,收尾一章对照 Codex CLI。

入门

装好、跑通、出了错知道去哪查

  1. 01什么是 Claude Code
  2. 02安装与环境准备
  3. 03认证配置
  4. 04第一次使用
  5. 05排错速查
  6. 06IDE 集成 · VS Code / JetBrains

进阶

把规矩写成文件,把边界配成规则

  1. 01权限配置
  2. 02CLAUDE.md 项目记忆
  3. 03上下文管理
  4. 0440+ 斜杠命令速查
  5. 05自定义 Skills 与命令
  6. 06Git 工作流集成

精通

把重复劳动交出去,再用一个完整项目验收

  1. 01子代理 Subagent
  2. 02Hooks 钩子
  3. 03MCP 与插件
  4. 04并行任务与多代理编排
  5. 05技巧与快捷键
  6. 06最佳实践
  7. 07端到端实战
  8. 08与 Codex CLI 的对照

答题闯关

14 道题,答对才解锁下一题:入门 5 题、进阶 6 题、精通 3 题。每题都给解析,错在哪一节能直接翻回去。

WHERE TO START

第一天做这三件事

按手册前四章的顺序来,一个小时之内能看到它真的在你机器上干活。

01

装环境

Node.js 18 以上(手册推荐 20 LTS),执行 npm i -g @anthropic-ai/claude-code;也可以用原生安装器或 Homebrew / WinGet。

手册 · 第 2 章

02

接上账号

用 Claude 订阅账号登录,或填 API Key。两种方式的取舍与费用说明在认证一章。

手册 · 第 3 章

03

先别碰主干

手册的第一个实战是让它写一个脚本并运行。看清它怎么读、什么时候问你、改动落在哪,再放它进正式代码。

手册 · 第 4 章

NEXT STEP

手册解决怎么用,现场解决用在哪

带一个真实的业务问题来,我们和你的团队一起判断这些工具该落在哪一步。