CLAUDE CODE 完全手册

Claude Code 使用手册
与能力全景

Anthropic 官方终端 AI 编程代理 —— 从安装、日常交互、权限与记忆系统,到 Skills、Hooks、子代理、MCP、无头模式与 Agent SDK,每项能力附具体操作教程与可复制示例。

编制日期 2026-07-20 · 基于官方文档 (code.claude.com/docs) 核对 · v2.1+ 口径

目录

  1. Claude Code 是什么 · 能做什么
  2. 安装与登录
  3. 基本交互:REPL 与命令行参数
  4. 键盘快捷键与输入技巧
  5. 内置斜杠命令大全
  6. 记忆系统:CLAUDE.md 与自动记忆
  7. 权限系统与 settings.json
  8. 权限模式与 Plan Mode
  9. 自定义命令与 Skills
  10. Hooks:确定性自动化
  11. Subagents 子代理与并行
  12. MCP:连接外部工具
  13. 无头模式与脚本化 / CI
  14. Git / GitHub 工作流
  15. IDE、桌面与 Web 集成
  16. Checkpoint 与 Rewind 回滚
  17. 上下文管理与成本控制
  18. Agent SDK(Python / TS)
  19. 安全模型
  20. 场景速查:20 个典型用法
  21. 附录:环境变量

00Claude Code 是什么 · 能做什么

Claude Code 是 Anthropic 官方的终端 AI 编程代理(agentic coding tool)。它不是聊天窗口,而是一个能直接在你的电脑上读写文件、执行命令、搜索代码、操作 Git、调用外部服务的智能体。你用自然语言描述目标,它自己规划步骤、调用工具、验证结果。

写代码 / 改代码从描述直接生成功能、跨文件重构、修 Bug、写测试、生成文档 —— 会先读懂你的项目再动手。
理解陌生代码库丢给它一个新项目问"这个项目怎么组织的",它会自己 grep、读文件、画出架构说明。
执行与调试能运行 shell 命令:跑测试、装依赖、启动服务、看日志,失败了自己分析报错再改。
Git / GitHub 全流程写 commit、开分支、发 PR、回复 review 意见、处理 merge 冲突,配合 gh CLI 使用。
连接外部世界(MCP)通过 MCP 协议接数据库、Slack、Jira、Sentry、浏览器等 100+ 服务,让代理直接查数据、发消息。
自动化与流水线无头模式 claude -p 可嵌入脚本和 CI;Hooks 在关键节点强制执行 lint / 校验;定时任务可跑例行工作。
多代理并行子代理(Subagents)在隔离上下文中并行搜索、审查、分析,主会话只收结论。
可编程(Agent SDK)Python / TypeScript SDK 把同一套代理能力嵌进你自己的产品。
不止写代码数据分析(喂 CSV / 日志)、写报告、批量文件整理、网页抓取自动化 —— 凡是"终端 + 文件 + 命令"能做的事都能委托。
心智模型把它当成一位坐在你终端里的结对工程师:你说目标,它动手;每一步敏感操作(改文件、跑命令)默认都会先征求你同意 —— 信任程度由你通过"权限模式"逐步调高。

01安装与登录

系统要求

macOS 13+ / Windows 10 1809+ / Ubuntu 20.04+ / Debian 10+,4GB 内存以上,需联网。Shell 支持 Bash / Zsh / PowerShell / CMD。

教程:四种安装方式

# 方式1:官方安装器(推荐,自带自动更新)—— macOS / Linux / WSL
curl -fsSL https://claude.ai/install.sh | bash

# Windows PowerShell
irm https://claude.ai/install.ps1 | iex

# 方式2:Homebrew(macOS)
brew install --cask claude-code

# 方式3:npm
npm install -g @anthropic-ai/claude-code

# 验证安装 + 健康检查
claude --version
claude doctor

教程:两种登录方式

# CI / 脚本用:生成一年期长效 token
claude setup-token
export CLAUDE_CODE_OAUTH_TOKEN=<生成的token>

02基本交互:REPL 与命令行参数

教程:第一次使用

cd 你的项目目录
claude                          # 进入交互式会话

# 会话里直接说人话:
> 这个项目是做什么的?入口在哪?
> 给 src/auth.ts 加上登录失败次数限制,并补测试
> 跑一下测试,失败的话修到通过为止

它会自动读文件、搜代码、提出修改;每次要写文件或跑命令时弹出确认,你按回车批准或拒绝。

常用命令行参数

参数示例说明
-p, --printclaude -p "总结这个项目"非交互模式:输出结果后退出,适合脚本
-c, --continueclaude -c继续最近一次对话
--resume <id>claude --resume abc123恢复指定会话
--modelclaude --model opus指定模型(opus / sonnet / haiku / fable)
--permission-modeclaude --permission-mode plan以指定权限模式启动
--allowedTools--allowedTools "Read,Edit,Bash"预批准工具列表(无头模式常用)
--output-format-p --output-format json输出 text / json / stream-json
--add-dir--add-dir ~/other-repo授予当前目录之外的目录访问权
--max-budget-usd-p --max-budget-usd 5为本次运行设花费上限
--bareclaude --bare -p "..."裸模式:禁用 hooks / skills / MCP / 记忆,快速启动

03键盘快捷键与输入技巧

四个改变效率的输入前缀

前缀作用示例
/打开斜杠命令 / skill 菜单/model/compact
!直接执行 shell 命令,输出进入对话! npm test
@文件引用自动补全(可带行号)@src/auth.ts#1-50
#快速把一句话存进记忆(CLAUDE.md)# 本项目一律用 pnpm

核心快捷键

快捷键功能
Esc随时打断 Claude(已完成的工作保留)
Esc Esc输入为空时双击:打开 Rewind 回滚菜单(见第 15 节)
Shift+Tab循环切换权限模式(default → acceptEdits → plan → …)
Ctrl+R反向搜索历史输入
Ctrl+O展开 Transcript 视图,看工具调用细节
Ctrl+T显示 / 隐藏 Claude 的待办任务列表
Ctrl+B把当前长任务丢到后台继续跑
Ctrl+V / Cmd+V粘贴剪贴板里的截图 / 图片给 Claude 看
Ctrl+G调用外部编辑器写长 prompt
Ctrl+L重绘屏幕
Ctrl+C×2 / Ctrl+D退出

多行输入

行尾 \ + 回车(所有终端通用);或 Shift+Enter(iTerm2 / Warp / Ghostty / Windows Terminal 等);或 Ctrl+J

Vim 模式

/config 里把 Editor mode 设为 vim,输入框即支持 NORMAL / INSERT / VISUAL 模式,h j k lddciw 等常用操作可用。

04内置斜杠命令大全

会话中输入 / 即可唤出菜单。以下按用途分组,均可输入 /help <命令名> 查看详情。

会话与上下文

命令作用
/clear清空对话开新会话(记忆保留)。可命名:/clear 调试会话
/compact [指示]把长对话压缩成摘要释放上下文,如 /compact 只保留代码改动
/context可视化当前上下文窗口被什么占用了多少 token
/resume交互式选择并恢复历史会话
/rewind打开回滚菜单,回退代码 / 对话到某个检查点
/rename给当前会话命名,方便日后 resume
/export把对话导出为文本文件
/cd / /add-dir切换工作目录 / 增加可访问目录

模型与推理

命令作用
/model切换模型:/model opus/model sonnet/model haiku
/effort调思考深度:low / medium / high / xhigh / max
/fast切换 Fast 模式(Opus 更快输出,不降级模型)
/plan进入计划模式:先出方案、批准后再动手

配置与状态

命令作用
/config交互式设置面板(主题 / vim 模式 / 默认模型等)
/permissions查看与编辑权限规则
/status / /usage / /cost会话状态 / 用量与配额 / 花费
/doctor诊断安装与配置问题
/login / /logout切换账号 / 登出
/memory编辑 CLAUDE.md 与自动记忆
/statusline自定义底部状态栏

代码质量与工程

命令作用
/init扫描项目自动生成 CLAUDE.md
/review审查一个 GitHub PR
/code-review [级别]审查当前分支改动,如 /code-review high;ultra 级别启动多代理云审查
/security-review对当前改动做安全审查
/simplify对改动做简化 / 复用 / 效率清理(不找 bug)
/diff查看当前改动 diff

扩展与集成

命令作用
/mcp管理 MCP 服务器(连接 / 认证 / 启停)
/agents查看与管理子代理定义
/ide把终端会话接到 IDE(diff 在 IDE 里看)
/plugins安装 / 管理插件
/loop定时重复执行某个命令,如 /loop 5m /check
/tasks查看后台任务与子代理运行状态

05记忆系统:CLAUDE.md 与自动记忆

CLAUDE.md 是每次会话开始时自动加载的"项目说明书",用来告诉 Claude 你的规范和习惯;自动记忆(Auto-Memory)则是 Claude 自己跨会话记笔记。

CLAUDE.md 的层级(由宽到窄)

位置作用域
~/.claude/CLAUDE.md用户级 —— 你的所有项目
./CLAUDE.md项目级 —— 提交 git 全队共享
./CLAUDE.local.md本地个人配置(加 .gitignore)
子目录 CLAUDE.md进入该目录工作时按需加载

教程:三步建立项目记忆

# 1. 在项目根目录运行,自动扫描生成初版
/init

# 2. 工作中随手补充 —— # 前缀一句话入库
# 测试一律用 vitest,不要用 jest

# 3. 定期整理
/memory     # 打开编辑界面

CLAUDE.md 写法示例

# 项目概览
- TypeScript + React,pnpm monorepo

# 构建与测试
- 构建:pnpm build   测试:pnpm test   Lint:pnpm lint

# 代码规范
- 2 空格缩进;用 async/await 不用裸 Promise
- API handler 统一放 src/api/handlers/

# 引用其他文档(@ 导入语法,启动时自动展开,最多递归4层)
@docs/git-workflow.md
@README.md
经验CLAUDE.md 控制在 200 行以内最有效 —— 越长遵循度越低。大项目改用 .claude/rules/*.md 目录,并用 frontmatter 的 paths: 让规则只在匹配的文件上生效。

自动记忆(Auto-Memory)

Claude 会把跨会话有用的事实(调试结论、你的偏好、项目约束)写进 ~/.claude/projects/<项目>/memory/,其中索引文件 MEMORY.md 每次开新会话自动载入。无需配置,可在 /memory 或 settings 里关闭。

06权限系统与 settings.json

Claude Code 的安全基石:每个工具调用都要经过权限规则。规则写在 settings.json 里,支持用户级、项目级、项目本地级、企业管控级四层。

配置文件位置(优先级从高到低)

  1. 企业管控 managed-settings.json(IT 下发,不可覆盖)
  2. 命令行 --settings
  3. .claude/settings.local.json(项目·个人,gitignore)
  4. .claude/settings.json(项目·团队共享)
  5. ~/.claude/settings.json(用户全局)

教程:一份典型的项目 settings.json

{
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": [
      "Bash(npm run lint)",      // 精确匹配
      "Bash(npm test *)",        // 前缀通配
      "Bash(git diff *)"
    ],
    "deny": [
      "Read(./.env)",            // 保护密钥文件
      "Read(./secrets/**)",
      "Bash(curl *)"
    ]
  },
  "env": { "NODE_ENV": "development" },
  "model": "claude-sonnet-5"
}

规则语法为 工具名(模式):Bash(git commit *) 放行所有 git commit;Edit(src/**) 允许编辑 src 下所有文件;Read(~/.ssh/*) 可用于 deny 保护敏感路径。

省事技巧被反复询问同一类安全命令时,在弹窗里选"Always allow",或运行 /permissions 直接编辑;也可以让 Claude 自己帮你改 settings("把 npm 命令加进允许列表")。

07权限模式与 Plan Mode

模式一览(按 Shift+Tab 循环切换)

模式免确认范围适用场景
default只读操作敏感项目、初学阶段
acceptEdits读 + 文件编辑 + 常规文件命令日常迭代自己的代码
plan只读 + 出方案,不改任何东西大改动前先看计划
auto基本全部(有独立安全分类器兜底)长任务、减少打断(需较新模型与订阅)
dontAsk仅预批准工具,其余直接拒绝CI 里跑确定性脚本
bypassPermissions全部放行,无检查只能在隔离容器 / VM 里用

教程:用 Plan Mode 做大重构

claude --permission-mode plan        # 或会话内 Shift+Tab 切到 plan

> 把项目的鉴权从 session 改成 JWT,先给我完整方案

# Claude 只读代码 → 输出分步计划(改哪些文件、什么顺序、风险点)
# 你批准后它自动切回可执行模式开始动手;不满意就继续讨论方案
注意.git/.claude/.env.local.zshrc 等受保护路径在任何自动模式下都不会被免确认修改。bypassPermissions 请只在一次性容器里使用。

08自定义命令与 Skills

Skills 是可复用的工作流包:平时不占上下文,输入 /名字 调用(或 Claude 判断相关时自动加载)。适合把团队的固定流程(审片、发布、部署、review 清单)固化成一条命令。

教程:创建一个 /deploy 技能

# 目录结构
.claude/skills/
└── deploy/
    ├── SKILL.md        # 技能定义
    └── checklist.md    # 附属资料(按需被读取)
---
description: "部署当前项目到 staging,含构建、检查、通知全流程"
---

# Deploy 流程

1. 运行 `pnpm build`,失败则停止并报告
2. 运行 `pnpm test`,全绿才继续
3. 执行 `./scripts/deploy-staging.sh`
4. 部署后 curl 健康检查接口,贴出结果
5. 按 @checklist.md 逐项确认

## 注意
- 永远不部署 main 以外的分支到 production
- 部署失败时收集最近 50 行日志一并报告
# 使用
/deploy
# 无头模式同样可用:
claude -p "/deploy" --allowedTools "Bash,Read"
Skills vs CLAUDE.mdCLAUDE.md 是"每次都要遵守的规范"(常驻);Skill 是"需要时才展开的流程"(按需加载)。长流程写成 Skill 更省 token、执行更稳定。

09Hooks:确定性自动化

Hooks 是在生命周期节点必定执行的 shell 命令 —— 不依赖模型"记得做",适合强制 lint、格式化、审计、拦截危险命令。

事件类型

事件触发时机典型用途
PreToolUse工具执行前校验 / 拦截 / 改写命令
PostToolUse工具执行后编辑后自动 lint、格式化
StopClaude 结束回合前收尾检查、通知
SessionStart / SessionEnd会话启停环境检查、清理

教程:每次编辑后自动 lint

// .claude/settings.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "npm run lint --silent" }
        ]
      }
    ]
  }
}

教程:拦截危险命令(PreToolUse)

#!/bin/bash
# hook 从 stdin 收到 JSON,含 tool 与 tool_input
input=$(cat)
cmd=$(echo "$input" | jq -r '.tool_input.command // empty')
if [[ "$cmd" == *"rm -rf /"* ]]; then
  echo '{"hookSpecificOutput":{"permissionDecision":"deny","reason":"危险命令已拦截"}}'
  exit 0
fi
echo "{}"

hook 输出 JSON 可以三选一:放行(allow)、拒绝(deny + 理由)、改写输入(updatedInput)。配置可放用户级或项目级 settings。想让 Claude 帮你配,直接说"每次改完文件自动跑 prettier"即可。

10Subagents 子代理与并行

子代理是运行在独立上下文里的专职 Claude 实例:主会话把任务委派出去,只收回结论摘要 —— 既能并行加速,又避免海量搜索结果污染主上下文。

什么时候用

教程:自定义一个审查子代理

# .claude/agents/code-reviewer.md
---
name: code-reviewer
description: 专职代码审查,检查 bug 与最佳实践
tools: Read, Grep, Glob
model: sonnet          # 可选:给简单任务配便宜模型
---
你是资深代码审查员。只读不改,输出:问题列表(带文件行号)+ 修复建议。
# 使用:直接在对话里点名
> 用 code-reviewer 审查 src/pay/ 目录

# 或者让 Claude 自主并行:
> 同时从安全、性能、可读性三个角度审这次改动,各起一个子代理
省钱技巧信息收集类子代理指定 model: haiku,复杂推理留给主会话的大模型 —— 大幅降低长任务成本。运行状态用 Ctrl+T/tasks 查看。

11MCP:连接外部工具

MCP(Model Context Protocol)是开放协议,让 Claude Code 接入数据库、Slack、GitHub、Jira、Sentry、浏览器、Figma 等外部系统 —— 接入后这些服务的操作就变成 Claude 可调用的工具。

教程:添加 MCP 服务器

# 远程 HTTP 服务(例:GitHub 官方 MCP)
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer YOUR_GITHUB_PAT"

# 本地 stdio 服务(例:PostgreSQL)
claude mcp add postgres -- npx @modelcontextprotocol/server-postgres \
  "postgresql://user:pass@localhost/db"

# 查看 / 管理已连接的服务器
/mcp

团队共享可把配置写进项目根目录 .mcp.json 提交 git,队友打开项目即用。

接入后的玩法示例

> 查一下数据库:近30天注册用户按渠道分组的数量
> 把这次发布摘要发到 Slack #engineering 频道
> 从 Sentry 拉过去一小时的报错,按频次排序并定位代码
> 用 Chrome DevTools MCP 打开预发环境页面,截图检查布局
Token 优化MCP 工具默认延迟加载(Tool Search):只有用到某个工具时才载入其完整定义,连几十个服务器也不会撑爆上下文。

12无头模式与脚本化 / CI

claude -p 让 Claude Code 变成一个可以放进管道、脚本、CI 的命令行工具。

教程:管道与结构化输出

# 把任何东西喂给它
cat build-error.log | claude -p "这个报错的根因是什么?"
git diff main | claude -p "审查这次改动的安全问题"

# JSON 输出,配 jq 取字段
claude -p "列出项目里所有 TODO" --output-format json | jq -r '.result'

# 严格结构化输出(给定 JSON Schema,保证可解析)
claude -p "提取本文件所有函数名" \
  --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}}}'

教程:GitHub Actions 里自动审 PR

- name: Claude review
  run: |
    gh pr diff ${{ github.event.pull_request.number }} | \
      claude -p "做安全向代码审查,输出问题清单" \
        --allowedTools "Read,Bash(git *)" \
        --output-format json | jq -r .result
  env:
    CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_TOKEN }}

另有官方 GitHub App:在 PR / Issue 里 @claude 即可让它修 bug、实现需求并自动提交(安装:会话内运行 /install-github-app)。

预算护栏脚本化调用务必加 --max-budget-usd--allowedTools 白名单;确定性流水线用 --permission-mode dontAsk,白名单之外一律拒绝。

13Git / GitHub 工作流

日常用法(直接说就行)

> 把当前改动分成两个逻辑独立的 commit,写好 message
> 开个分支 fix/login-rate-limit,把刚才的修复提交上去
> 基于这个分支发 PR,描述里带上改动摘要和测试说明
> 看下 PR #128 的 review 意见,逐条修复并回复
> rebase main 之后把冲突解掉

Claude 会遵循你项目的 commit 规范(写进 CLAUDE.md 即可),GitHub 操作走 gh CLI。/review 128 可直接审查某个 PR。

历史考古它很擅长 git 侦探工作:"这个函数为什么写成这样?查一下相关 commit 和 PR 讨论" —— 会自动 git log / blame / gh pr view 给你拼出来龙去脉。

14IDE、桌面与 Web 集成

形态安装 / 入口特点
VS Code 扩展扩展市场搜 "Claude Code"侧边栏对话、行内 diff、@ 引用当前选区、多标签会话;Cmd/Ctrl+Esc 唤起
JetBrains 插件Plugins 市场搜 "Claude Code"diff 在 IDE 查看器中展示,自动同步 lint 诊断;Cmd+Option+K 插入文件引用
终端 CLIclaude本手册主体;外部终端可用 /ide 连到已打开的 IDE
桌面应用Mac / Windows 下载多会话并行管理,适合同时看多个项目
Web / 移动端claude.ai/code云端沙箱跑会话,手机也能发任务、批准权限,回终端可无缝接管

15Checkpoint 与 Rewind 回滚

Claude 每次改文件前自动打检查点(最近 100 个)。改崩了不用慌 —— 双击 Esc/rewind 打开回滚菜单。

回滚选项

边界只有 Claude 的文件编辑会进检查点 —— Bash 执行的 rm / mv、数据库变更、会话外的手改不被跟踪;检查点约 30 天清理,长期版本管理仍然靠 Git。

16上下文管理与成本控制

看清 token 去哪了

/context    # 可视化:系统提示 / CLAUDE.md / MCP工具 / 对话历史各占多少
/usage      # 本会话用量与订阅配额

五个实用习惯

  1. 一个任务一个会话:换任务就 /clear,别让无关历史堆积。
  2. 长会话及时压缩:/compact 保留代码决策,丢弃调试过程;上下文快满时系统也会自动压缩,压缩后工作无缝继续。
  3. 模型分层:摸底、批量小改用 /model haiku 或 sonnet,硬骨头再上 opus;子代理单独指定便宜模型。
  4. 噪音进子代理:跑测试、扫日志这类高输出操作委派出去,主会话只收摘要。
  5. 脚本加预算:--max-budget-usd 设硬上限。

17Agent SDK(Python / TypeScript)

想把 Claude Code 的代理能力(工具循环、权限、子代理、hooks)嵌进你自己的程序?用 Agent SDK。

# 安装
npm install @anthropic-ai/claude-agent-sdk     # TypeScript
pip install claude-agent-sdk                   # Python

最小示例(Python)

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions

async def main():
    async for message in query(
        prompt="找出并修复 auth.py 里的 bug",
        options=ClaudeAgentOptions(
            allowed_tools=["Read", "Edit", "Bash"],
            permission_mode="acceptEdits",
        ),
    ):
        if hasattr(message, "result"):
            print(message.result)

asyncio.run(main())

SDK 同样支持:会话恢复(resume)、结构化输出(json_schema)、自定义子代理、Hooks 回调、MCP 接入 —— 与 CLI 是同一套引擎。典型产品形态:代码审查机器人、客服代理、数据管道里的智能处理节点。

18安全模型

19场景速查:20 个典型用法

#场景怎么说 / 怎么做
1摸底新项目claude → "这个项目的架构和入口讲一遍"
2实现新功能"给用户模块加邮箱验证,含测试" (大改先 Shift+Tab 切 plan)
3修报错! npm test 让报错进对话 → "修到全绿"
4解释一段代码@src/utils/retry.ts#20-60 这段在干嘛?有坑吗
5跨文件重构"把所有 axios 调用换成 fetch,保持行为一致"
6补测试"给 payment 模块补单测,覆盖边界情况"
7写文档"根据代码生成 API 文档" / /init 生成 CLAUDE.md
8代码审查/code-review high;PR 用 /review 128
9安全体检/security-review
10写 commit / 发 PR"提交并发 PR,message 按项目规范"
11查 git 历史"这行代码谁改的?为什么?查 blame 和相关 PR"
12分析日志tail -200 app.log | claude -p "哪里出问题了"
13数据分析cat data.csv | claude -p "给出关键洞察";接 MCP 直接查库
14看图改 UICmd+V 粘贴设计稿截图 → "照这个改页面"
15批量整理文件"把 downloads 里的发票按月份归档重命名"
16CI 自动审查GitHub Actions 里 claude -p(见第 12 节)
17定时例行任务/loop 30m /check-status 或 schedule 定时代理
18并行多任务多开终端各跑一个 claude,互不干扰;或用子代理
19改崩了回滚EscEsc → 选检查点 → 只回滚代码
20固化团队流程写成 .claude/skills/ 技能,全队一条命令复用

20附录:常用环境变量

变量说明
ANTHROPIC_API_KEYAPI 计费方式的密钥
CLAUDE_CODE_OAUTH_TOKENsetup-token 生成的长效 token(CI 用)
CLAUDE_CODE_USE_BEDROCK / _VERTEX / _FOUNDRY走 AWS / GCP / Azure 三方推理平台
CLAUDE_CONFIG_DIR自定义配置目录位置
ENABLE_TOOL_SEARCHMCP 工具延迟加载开关(auto / false)
DISABLE_AUTOUPDATER设为 1 关闭自动更新