Claude Code 是 Anthropic 于 2025 年推出的官方命令行编程代理(CLI Agent),运行在 macOS、Linux 与 Windows(WSL)终端内,把「读代码、改文件、执行命令、运行测试、提交变更」整条研发循环交给一个可审计的 AI 代理。与网页聊天工具不同,它不再是「人类复制报错、模型返回片段、人类手工应用」的循环,而是在你的仓库内自主读取与修改,每次有副作用的操作都先征求批准。它使用 Claude 订阅账号 OAuth 登录或 Anthropic API 密钥认证,并支持通过 MCP(Model Context Protocol,模型上下文协议,一种让 AI 代理连接外部工具与数据源的开放标准)扩展任意外部工具与数据源。 本篇基于官方文档整理,按「速览卡 → 安装 → 快速上手 → 核心能力 → 生产部署 → 选型对比 → 应用场景 → 常见误区 → 面试题 → 学习资源」的顺序展开。读完你可以在本机跑通第一个任务,并评估它在团队与 CI 中的落地方式。
掌握 Claude Code,等于把可审计、可脚本化、可嵌入 CI 的自主编码代理纳入个人工具链,这是 2025 年 AI 工程与 DevOps 岗位的高频实操技能。
目录
速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。
为什么需要 Claude Code:聊天窗无法触及仓库,终端代理接管研发循环
传统 AI 辅助开发依赖浏览器聊天窗口,模型看不到完整项目结构,无法执行测试验证自己的改动。工程师要手工复制报错信息、粘贴要修改的文件片段,再把模型回复的代码合并进项目。涉及跨文件重构、跑完测试看结果再迭代的场景时,这套「复制—粘贴—手工应用」的循环严重拖慢节奏,上下文也随对话增长而失真。
Claude Code 以终端为驻地,直接获得当前目录的文件系统与命令执行能力。它自己读文件、做定点编辑、跑 bash、执行测试,看到失败再迭代修复,整个过程不需要人工搬运信息。它遵循权限模型:默认每个有副作用的操作(改文件、跑命令)都先征求你同意;会话上下文可通过 -c/--resume 跨多次启动继续,CLAUDE.md 文件则沉淀项目特定的规范与约定,让新会话自动继承。
与 LangChain、LlamaIndex 这类「构建 Agent 的框架」不同,Claude Code 是一个开箱即用的 Agent 产品:你不需要写编排代码,只需要下指令。它的定位介于「个人结对编程助手」与「可在 CI 中运行的自动化代理」之间,这也是它与编排框架最本质的气质差异——前者消费模型能力,后者让你生产模型应用。
安装与环境配置:3 步就绪
前置条件:npm 方式需要 Node.js 18+;支持 macOS 10.15+、Ubuntu 20.04+/Debian 10+;Windows 在 WSL 2 中运行。
步骤一·安装:使用 npm 全局安装官方包,或运行官方原生安装脚本(脚本会自动处理 Node.js 运行时,适合版本较旧的机器)。
步骤二·认证:个人开发环境直接运行 claude,首次启动会输出一个浏览器授权链接,用 Claude 账号(Pro/Max/Team)完成 OAuth 登录;CI 或脚本环境没有浏览器交互,改用 ANTHROPIC_API_KEY 环境变量注入 API 密钥。
步骤三·验证:执行 claude --version 确认版本,再运行一条非交互提示词验证认证链路是否打通。
# 前置检查node -v # 需要 18.0 及以上 # 方式一:npm 全局安装(推荐)npm install -g @anthropic-ai/claude-code # 方式二:官方原生安装脚本(自动管理运行时)curl -fsSL https://claude.ai/install.sh | bash # 登录方式 A:交互式 OAuth(个人开发)claude # 首次运行会输出浏览器授权链接 # 登录方式 B:环境变量注入 API 密钥(CI/脚本)export ANTHROPIC_API_KEY="sk-ant-api03-..."claude -p "你好,用一句话说明你的能力" # 非交互验证
快速上手:5 分钟跑通第一个任务
最小可用流程的思路:选一个真实的小项目,先用交互模式完成一次「提问—批准—看到结果」的完整闭环,再切换到非交互模式验证脚本化调用。
步骤一:cd 进入项目目录,运行 claude 启动交互式 REPL。步骤二:输入自然语言任务,例如「描述这个仓库的功能与模块划分」,代理会提出读取文件的请求,按回车批准即可。步骤三:让它执行一个小改动,并跑测试验证,例如「把日志输出改为 JSON 格式,然后运行 go test」。步骤四:在会话中执行 /init 生成 CLAUDE.md 沉淀项目规范,之后新会话自动加载。步骤五:退出后体验会话管理——claude -c 继续最近会话,claude --resume <会话ID> 恢复指定会话。
进阶技巧:Claude Code 提供官方 SDK,可在 Node.js 服务里以代码方式调用代理能力,适合把终端能力嵌入自研工具链。
cd ~/workspace/my-serviceclaude "这个仓库怎么启动?入口在哪里?" # 交互模式直接带问题启动claude # 或进入 REPL 后输入任务claude -p "统计本仓库 Go 文件行数并输出 top5" # 非交互一次性任务claude -c # 继续最近一次会话claude --resume 2f4a... # 恢复指定会话
// Claude Code SDK:在 Node 服务中以代码方式调用import { query } from "@anthropic-ai/claude-code"; const res = await query("Review the latest commit and list potential bugs", { options: { cwd: "/path/to/repo", // 工作目录 permissionMode: "acceptEdits", // 允许自动编辑 model: "sonnet", // 指定模型 },});console.log(res.text); // 终端文本输出
核心能力详解:5 大支柱
支柱一·代理式编码循环。代理内置 Read(读文件)、Edit(定点编辑)、Bash(执行命令)、Glob/Grep(检索)等工具,能在「读代码→改代码→跑测试→看报错→再修」的循环里自主迭代。遇到编译错误时,它会自己查看日志定位原因并重试,不需要人把报错粘贴给模型。
支柱二·CLAUDE.md 项目记忆。放在项目根目录的记忆文件,每个会话启动时自动加载,可用 @other.md 语法引用仓库内其他文档。适合写入架构约定、启动命令、测试命令与代码风格要求;/init 命令会扫描仓库自动生成初始版本。
支柱三·MCP 扩展生态。通过 claude mcp add <名称> <启动命令> 一条命令接入 MCP 服务器,将浏览器、数据库、工单系统、监控平台等外部能力接入代理;项目级配置写入 .mcp.json,claude mcp list 查看已接入服务器,claude mcp remove 移除。
支柱四·权限与安全模型。--permission-mode 支持 default(逐项询问)、acceptEdits(自动接受文件编辑)、plan(只读规划)、bypassPermissions(跳过确认)四种模式;支持工具级 allowlist/denylist;Hooks 体系(PreToolUse、PostToolUse、Notification 等)可在工具调用前后插入自定义脚本做审计与拦截。
支柱五·自动化与嵌入。-p 非交互模式配合 --output-format text/json/stream-json 供脚本与程序解析;SDK 的 query 接口可在 Node 服务内调用;官方 GitHub Action 把代理接入 PR 流程;ANTHROPIC_BASE_URL 环境变量可指向企业网关,统一计量与管控。
生产部署与监控:从上线到运维
部署方式一·GitHub Actions 集成。anthropics/claude-code-action 可在 PR 打开或更新时自动审查变更、修复失败的测试并提交修复 commit,开发者只做最终 review。CI 中通过 ANTHROPIC_API_KEY 密钥注入认证:
部署方式二·自建调度与服务嵌入。定时任务或事件触发时执行 claude -p "任务描述" --max-turns 40 --output-format json,通过退出码判断成功失败,失败由调用方重试;需要长期运行的场景用 SDK 的 query 嵌入 Node.js 服务,--append-system-prompt 注入企业规范。
可观测性。非交互模式用 --output-format stream-json 消费逐条事件流,实时跟踪代理行为;会话内执行 /cost 查看 token 消耗;用 CLAUDE_CODE_MAX_OUTPUT_TOKENS 限制单次输出上限防止失控;通过 SessionStart/SessionEnd Hook 把会话元数据推送到日志平台,实现成本与行为的统一审计。
<p class="para-label">避坑清单:</p>
<ul class="dash-list"><li>Node 版本过低会导致 CLI 直接启动失败:npm 方式需 Node.js 18+,安装前先执行 node -v;版本过旧时改用官方原生安装脚本,脚本会自动处理运行时。</li><li>CI 中裸用 --dangerously-skip-permissions 等于把任意命令执行权交给模型:应先以 plan 只读模式做审查,或配置工具 allowlist/denylist 与 Hooks 审计,再考虑放宽权限。</li><li>不要把 ANTHROPIC_API_KEY 写进代码或镜像:本地个人环境用 OAuth 登录即可免密钥,CI 用平台 Secrets 注入;必要时设置 ANTHROPIC_BASE_URL 指向公司网关统一计量。</li><li>大仓库一次性全量读入会迅速耗尽上下文与费用:在 CLAUDE.md 中圈定模块边界,用 Glob/Grep 定向检索,按需打开文件,并用 --max-turns 限制代理循环轮数。</li></ul>
# .github/workflows/claude-review.ymlname: Claude Code PR Reviewon: pull_request: types: [opened, synchronize]jobs: review: runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Claude Code env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} uses: anthropics/claude-code-action@v1 with: claude_code_command: | claude -p "审查本次 PR 的变更,修复发现的 bug 并输出审查结论。" github_token: ${{ secrets.GITHUB_TOKEN }}
| 维度 | Claude Code | GitHub Copilot CLI | OpenAI Codex CLI | Aider |
|---|---|---|---|---|
| 定位 | Anthropic 官方终端代理,Claude 全系模型深度集成 | GitHub 生态终端代理,多模型可选(GPT/Claude/Gemini) | OpenAI 开源的终端编码代理 | 开源结对编程 CLI,多模型后端 |
| 编排范式 | 交互 REPL + 非交互 print + 子代理委派(2.0) | 会话式 + exec 非交互执行模式 | 交互 REPL + codex exec 非交互模式 | 聊天式 + 每次改动自动 git commit |
| 类型约束 | 无强类型约束,工具驱动(读/写/bash) | 无 | 无 | 无(diff 编辑流程) |
| 学习曲线 | 中:slash 命令、CLAUDE.md、权限模式需适应 | 低:GitHub 账号即用 | 中:审批流与 config 文件 | 低:类聊天,自动提交 |
| 生态集成 | MCP、官方 SDK、GitHub Actions、VS Code/JetBrains 扩展 | GitHub 全家桶、VS Code、多模型 | OpenAI 模型、MCP、Codex 云代理 | 多模型、git 原生、可脚本化 |
| 生产部署 | 非交互 + GitHub Action + SDK 直接进 CI/服务 | exec 模式可用于脚本,CI 支持有限 | exec 模式与云端代理支持 CI | 可脚本化,主要面向个人 |
| License | 商业专有(CLI 免费,需订阅/API) | 商业专有(Copilot 订阅) | Apache 2.0(客户端开源) | Apache 2.0 |
| 适合谁 | 深度用 Claude、需权限审计与 CI 集成的团队 | 已购 Copilot 订阅的 GitHub 用户 | OpenAI 用户、偏好开源客户端 | 追求模型自由度的个人开发者 |
选型建议:已在 Claude 生态且需要把代理嵌入 CI 与内部工具链,优先 Claude Code——权限模型、Hooks 与 SDK 最完整;完全开源偏好或多模型切换选 Aider 或 Codex CLI;GitHub Copilot 订阅用户且需求偏轻量,Copilot CLI 零新增成本即可起步。
版本迭代
Claude Code 于 2025 年 2 月以研究预览(Research Preview)形式首次公开,5 月随 1.0 正式版转为 GA,9 月通过 2.0 完成从「单会话代理」到「Agent 原生」的架构升级。版本主线围绕 MCP 扩展、权限安全与多代理协作三条线演进。
| 版本 | 时间 | 变化 | 提升 |
|---|---|---|---|
| 0.1.x(Research Preview) | 2025-02 | 终端编码代理首次公开预览 | 提供读文件、编辑、执行命令的代理循环与权限询问机制 |
| 1.0(GA) | 2025-05 | 正式发布 | 完善 MCP 支持与 Hooks 事件,权限模式(acceptEdits/plan/bypassPermissions)固化,面向团队使用 |
| 2.0 | 2025-09 | Agent 原生重构 | 子代理委派与发现机制、SDK 2.0、知识门控、原生安装自动更新 |
Claude Code 未公布独立的第三方基准分数,版本差异主要体现在能力边界与工程化程度:1.0 解决「能否稳定用于日常开发」,2.0 解决「能否把代理能力嵌入团队工具链与多 Agent 协作」。需要 CI 内嵌、权限审计与团队级治理的团队应直接采用 2.0,其 CLI 命令与 1.x 基本兼容,升级成本主要在 Hooks 配置与新 Slash 命令的适配。
AI 应用场景
存量代码库理解与架构文档生成
阶段:代码理解与文档生成
解决的问题:接手陌生仓库时,人工梳理模块关系、启动链路与依赖边界通常需要数小时。Claude Code 直接在仓库内遍历结构、读关键文件、跑构建命令验证,再按你的模板产出文档。
具体案例:新成员对约 20 万行的中型服务执行 claude -p "分析仓库架构,输出 docs/architecture.md",原本 1~2 天的梳理工作压缩到单个会话(约 10~20 分钟),生成后可继续要求它补充模块边界与风险点,文档比人工整理更贴近实际代码。
CI 中的自动代码审查与测试修复
阶段:Agent 编排与自动化运维
解决的问题:测试失败或 PR 批注需要人在不同工具之间来回切换上下文修复,开发节奏被打断。把审查与修复委派给代理,人只做最终把关。
具体案例:用 anthropics/claude-code-action 在 GitHub Actions 中监听 PR,向代理传入「审查变更并修复失败的测试」,它会自动生成补丁并提交修复 commit,开发者只做 review。典型回归修复从单次 30 分钟级的人工处理降到 5 分钟级,且修复附带的解释说明降低了 review 成本。
内部系统查询与操作(MCP 扩展)
阶段:MCP 集成与 Agent 工具调用
解决的问题:故障排查需要在终端、监控、数据库、工单系统之间来回切换。通过 MCP 把内部系统接入代理会话,让它自己查单号、看流水线日志、定位失败步骤。
具体案例:执行 claude mcp add jira npx @your-team/jira-mcp 把工单系统接进会话,直接要求「查看 INC-2041 关联的构建日志,定位失败的测试并给出修复路径」,代理串联多个工具完成排查链路,减少人工上下文切换约三分之二的操作步骤。
常见误区
误区我以为它就是把 claude.ai 的对话框搬到命令行,本质还是我问它答,只是省去复制粘贴报错而已。
正解它是自主代理而非聊天界面:默认拥有读取仓库、编辑文件、执行 bash、运行测试的工具权限,能在「读代码→改代码→跑测试→看报错→再修」的循环里自主迭代。每次有副作用的操作会先征求批准,但决策与执行链路由模型自主完成。「只答不做」是普通聊天工具的定位,不是 Claude Code 的。
为何常见:首次使用时交互形式与聊天相似,容易忽略幕后它是通过工具调用而非纯文本回答来工作的。
误区每次批准太烦,CI 里用 --dangerously-skip-permissions 把所有弹窗关掉最省事。
正解该参数会跳过全部权限确认,等于把仓库读写与任意命令执行全权交给模型。一旦提示词被误导或模型在长循环中出错,可能执行强制推送、删除目录等破坏性操作。生产环境应组合使用工具 allowlist/denylist、plan 只读模式和 Hooks 审计,而不是一刀切关掉权限。
为何常见:本地个人项目「跑通优先」的心态,加上部分教程为演示方便直接使用该参数,弱化了它的风险等级。
误区200K 上下文这么大,把 monorepo 所有文件读一遍模型就完全理解了。
正解窗口再大也会被海量文件耗尽,且 token 费用与延迟随之上升。正确做法:在 CLAUDE.md 中说明模块边界,用 Glob/Grep 定向检索,按需打开相关文件;对长任务用 --max-turns 限制循环,避免它在无关文件上反复试探。
为何常见:「窗口大 = 不用管上下文」的直觉忽略了费用、准确率与速度之间的权衡,也忽略了模型的注意力在超长上下文下会稀释。
误区它是「写代码的工具」,不搞传统软件开发的人用不上。
正解它是通用终端代理:可用于生成运维脚本、解析日志、批量改配置文件、生成技术文档、审查 PR、编写 SQL、通过 MCP 查询内部系统。官方将其定位为终端里的多任务工作代理,「Code」只反映其最早落地的场景。
为何常见:工具名里的 Code 和大量编程示例形成了刻板印象,忽略了 MCP 扩展带来的能力边界外移。
误区Ctrl+C 退出后对话就丢了,下次得重新交代一遍项目背景和需求。
正解claude -c 可继续最近一次会话,claude --resume <会话ID> 可恢复指定会话;配合项目根目录的 CLAUDE.md,新会话启动即自动加载项目规范与约定,不需要重复口述背景。
为何常见:早期研究预览阶段会话持久化较弱,「关了就丢」的印象停留在旧版本,滞后于 1.0/2.0 的会话管理能力。
面试题
Q1. Claude Code 的官方 npm 包安装命令是?
- A.npm install -g claude-code
- B.npm install -g @anthropic-ai/claude-code← 正确答案
- C.pip install claude-code
- D.npm install claude-ai
答案:B。官方包名带 scope,为 @anthropic-ai/claude-code。A 的 claude-code 和 D 的 claude-ai 都不是官方包名;C 的 pip 属于 Python 生态,而 Claude Code 基于 Node.js 发行。
Q2. 本地运行 Claude Code 的最低 Node.js 版本要求是?
- A.14.x
- B.16.x
- C.18.x← 正确答案
- D.22.x
答案:C。官方要求 Node.js 18 及以上。14/16 过低会导致 CLI 启动失败;22 是更高版本但并非最低要求。本机 Node 过旧时,可改用官方原生安装脚本自动处理运行时。
Q3. 在 shell 脚本中执行一次性非交互查询,应该使用哪个参数?
- A.claude --print “任务描述”← 正确答案
- B.claude --repl “任务描述”
- C.claude --daemon “任务描述”
- D.claude --server “任务描述”
答案:A。--print(简写 -p)是官方非交互模式,执行完自动退出,适合脚本与 CI。--repl、--daemon、--server 都不是真实 CLI 参数;交互式 REPL 直接运行 claude 即可进入。
Q4. 在项目根目录放什么文件,可以让每个新会话自动继承项目规范与约定?
- A.AGENTS.md
- B.CLAUDE.md← 正确答案
- C.ANTHROPIC.md
- D.PROMPTS.md
答案:B。CLAUDE.md 是 Claude Code 的项目记忆文件,会话启动时自动加载,并可用 @path 语法引用仓库内其他文档。AGENTS.md 是通用 Agent 规范,不会被 Claude Code 自动读取;C、D 不是官方文件名。
Q5. 下列哪条命令能正确地把一个 MCP 服务器加入 Claude Code?
- A.claude mcp add db_server npx mcp/db← 正确答案
- B.claude plugin add db_server
- C.claude install mcp db_server
- D.claude --mcp add db_server
答案:A。claude mcp add <名称> <启动命令> 是官方 MCP 接入命令,添加后可用 claude mcp list 查看、claude mcp remove 移除。其余三个子命令均不存在于官方 CLI。
Q6. 关于会话管理,下列哪些操作是官方支持的?
- A.claude -c 继续最近一次对话会话← 正确答案
- B.claude --resume 会话ID 恢复指定会话← 正确答案
- C.claude --restart 重置后创建新会话
- D.claude --duplicate 复制最近会话
答案:AB。-c/--continue 与 --resume 分别对应「继续最近会话」和「按会话 ID 恢复」,是官方会话管理入口。--restart 与 --duplicate 不是真实参数,新建会话直接运行 claude 即可。
Q7. 在 CI 环境中运行非交互 Claude Code,通常优先使用哪种认证方式?
- A.OAuth 浏览器登录后复制 Token
- B.通过 ANTHROPIC_API_KEY 环境变量注入密钥← 正确答案
- C.在 GitHub Secrets 中存 OAuth 刷新令牌
- D.不认证直接调用本地模型
答案:B。CI 无浏览器交互,官方推荐以 ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN 环境变量注入凭据,配合平台 Secrets 管理。OAuth 适合本地交互使用;本地模型不在官方支持范围内。
Q8. claude -p 的输出格式参数 --output-format 支持哪些合法值?
- A.text 输出为纯文本← 正确答案
- B.json 输出结构化结果← 正确答案
- C.stream-json 流式事件← 正确答案
- D.yaml 输出键值数据
答案:ABC。官方支持 text、json、stream-json 三种输出格式。text 适合人读,json 适合程序单次解析,stream-json 以逐条事件流输出,适合长任务实时消费。yaml 不是合法取值。
Q9. 下列哪些属于 Claude Code 2.0 引入或强化的核心能力?
- A.Agents 子代理委派与发现机制← 正确答案
- B.官方发布全新 SDK 2.0← 正确答案
- C.知识门控约束子目标执行← 正确答案
- D.支持完全离线本地推理模式
答案:ABC。2.0 把架构迁移到 Agent 原生:CLI 与 SDK 支持发现和委派子代理,SDK 升级到 2.0 并提供新 API,同时引入知识门控控制子任务的执行条件。离线推理不在官方路线图中,Claude Code 依赖云端 Claude 模型。
Q10. 关于 CLAUDE.md 的加载与作用范围,下列说法正确的是?
- A.会话启动时自动加载,仅对当前仓库生效← 正确答案
- B.只在用户手动执行 /load 时被读取
- C.只能存放个人信息,不能包含技术规范
- D.文件内容每次使用后自动写回覆盖
答案:A。CLAUDE.md 放在项目根目录,会话启动自动注入;子目录也可放 CLAUDE.md 提供分模块规范。它不需要手动加载,也不限制内容类型;Claude Code 不会自动改写该文件。
参考来源
- webpageClaude Code 产品页官方介绍与能力更新公告