Claude Code

关注公众号 jb51net

关闭
AI > Claude Code >

Claude Code命令、模式与配置完全指南

加油lfl

Claude Code 完全指南:命令、模式与配置详解

基于 Claude Code v2.1.237 实机 --help 输出与二进制内置命令枚举整理。
Claude Code 迭代很快,命令与参数会随版本变动,遇到不一致时以本机 claude --help 和会话内 /help 为准。

1. Claude Code 是什么

Claude Code 是 Anthropic 官方的终端里的 AI 编程代理。它不是一个聊天窗口,而是一个能真正动手的 agent:

它的运行形态:

形态说明
CLI终端里的交互式会话,最完整的功能
桌面应用Mac / Windows 原生应用
Web / 移动端claude.ai/code 上驱动会话
IDE 扩展VS Code、JetBrains,带 diff 视图与选中上下文
GitHub Actionanthropics/claude-code-action,在 PR/Issue 里 @claude
Agent SDK用 Python / TypeScript 把整套 agent 框架嵌进你自己的程序

2. 安装与更新

安装

推荐使用官方原生安装器:

# macOS / Linux / WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex

也支持 npm(历史方式,仍可用):

npm install -g @anthropic-ai/claude-code

⚠️ 不要用 sudo npm install -g,会导致权限问题。若已经是 npm 全局安装,可迁移到原生安装:claude install stable --force。

更新

claude update      # 别名:claude upgrade,检查并安装更新
claude doctor      # 检查安装健康度(不进会话)
claude install stable --force   # 强制重装原生构建

会话内用 /doctor 可以做带自动修复的完整体检。

首次使用

cd 你的项目
claude            # 启动交互式会话

首次启动会走登录流程(Claude 订阅账号或 Anthropic API Key),并要求你确认工作区信任(workspace trust)。

会话内第一件事通常是:

/init

它会扫描代码库并生成一份 CLAUDE.md 项目记忆文件。

3. CLI 启动参数完全参考

3.1 会话控制

参数说明
[prompt]位置参数,启动时带上首条提示词:claude "解释这个项目"
-c, --continue继续当前目录下最近一次会话
-r, --resume [value]按 session ID 恢复;不带参数则打开交互式选择器(可带搜索词)
--fork-session恢复时新建 session ID,不覆盖原会话(配合 -r / -c)
--session-id <uuid>指定会话 ID(必须是合法 UUID)
-n, --name <name>给会话起显示名(显示在输入框、/resume 列表和终端标题)
--from-pr [value]恢复与某个 PR 关联的会话,按 PR 号/URL,或带搜索词打开选择器
--no-session-persistence不把会话写入磁盘(仅 --print),不可恢复
-w, --worktree [name]为本次会话创建新的 git worktree
--tmux为 worktree 创建 tmux 会话(需配合 --worktree)
--teleport [session]恢复 teleport 会话
--cloud [desc|id|url]创建云会话,或按 session ID / claude.ai/code URL 接入已有会话
--environment <id>在指定自托管环境(ccpool_...)上创建云会话
--bg, --background作为后台代理启动并立即返回(用 claude agents 管理)
--remote-control [name]启动带远程控制的交互会话(可命名)
--remote-control-session-name-prefix <prefix>自动生成的远程控制会话名前缀(默认主机名)

3.2 模型与推理

参数说明
--model <model>会话模型。可用别名 fable / opus / sonnet,或完整名如 claude-fable-5
--fallback-model <model>主模型过载或不可用时自动回退,可逗号分隔多级(仅 --print)。每轮用户输入开始时会重试主模型
--effort <level>推理强度:low / medium / high / xhigh / max
--autocompact <auto|tokens>自动压缩窗口大小:auto,或 100k–1M tokens
--betas <betas...>附加 beta 请求头(仅 API Key 用户)

3.3 权限与工具

参数说明
--permission-mode <mode>acceptEdits / auto / bypassPermissions / manual / dontAsk / plan
--dangerously-skip-permissions跳过所有权限检查。仅推荐用于无网络的沙箱
--allow-dangerously-skip-permissions让提权模式可选但不默认开启(比上一条安全得多)
--allowedTools, --allowed-tools <tools...>免提示放行的工具,支持作用域规则如 "Bash(git *)"
--disallowedTools, --disallowed-tools <tools...>直接拒绝的工具
--tools <tools...>限定内置工具集:"" 全部禁用,"default" 全部启用,或 "Bash,Edit,Read"
--add-dir <directories...>额外允许工具访问的目录(突破 cwd 限制)
--disable-slash-commands禁用所有技能(skills)

3.4 提示词与上下文

参数说明
--system-prompt <prompt>替换系统提示词
--append-system-prompt <prompt>追加到默认系统提示词
--exclude-dynamic-system-prompt-sections把 cwd、环境、记忆路径、git 状态等逐机差异段落从系统提示词移到首条用户消息,改善跨用户 prompt cache 命中
--agent <agent>本次会话使用的代理,覆盖 agent 配置项
--agents <json>内联定义自定义代理的 JSON
--file <specs...>启动时下载的文件资源,格式 file_id:relative_path
--bare极简模式:跳过 hooks、LSP、插件同步、归属标记、自动记忆、后台预取、keychain 读取、CLAUDE.md 自动发现(设 CLAUDE_CODE_SIMPLE=1)。认证严格依赖 ANTHROPIC_API_KEY 或 apiKeyHelper
--safe-mode所有自定义(CLAUDE.md、技能、插件、钩子、MCP、自定义命令/代理、输出风格、工作流、主题、键位)全部禁用启动,用于排查坏配置(设 CLAUDE_CODE_SAFE_MODE=1)
--plugin-dir <path>仅本次会话加载插件目录或 .zip(可重复)
--plugin-url <url>仅本次会话从 URL 拉取插件 zip(可重复)
--mcp-config <configs...>从 JSON 文件或字符串加载 MCP 服务器(空格分隔)
--strict-mcp-config只使用 --mcp-config 传入的 MCP 服务器
--settings <file-or-json>额外加载的设置文件路径或 JSON 字符串
--setting-sources <sources>逗号分隔的来源列表:user, project, local

3.5 输出与自动化(多用于-p)

参数说明
-p, --print打印响应后退出,适合管道。注意:非交互模式下会跳过工作区信任对话框
--output-format <format>text(默认)/ json(单次结果)/ stream-json(实时流)
--input-format <format>text(默认)/ stream-json(实时流式输入)
--json-schema <schema>用 JSON Schema 校验结构化输出
--max-budget-usd <amount>API 调用花费上限(美元,仅 --print)
--include-partial-messages输出部分消息分片(需 --print + stream-json)
--include-hook-events输出流中包含全部钩子生命周期事件(需 stream-json)
--replay-user-messages把 stdin 的用户消息回显到 stdout 作确认(需双向 stream-json)
--forward-subagent-text把子代理的文本和思考块作为带 parent_tool_use_id 的消息转发(需 --print + stream-json)
--verbose覆盖配置中的 verbose 设置
-d, --debug [filter]调试模式,可按类别过滤,如 "api,hooks" 或 "!1p,!file"
--debug-file <path>调试日志写入指定文件(隐式开启调试)

3.6 界面与集成

参数说明
--ide启动时若只有一个可用 IDE 则自动连接
--chrome / --no-chrome启用/禁用 Claude in Chrome 集成
--ax-screen-reader屏幕阅读器友好输出(纯文本,无装饰边框与动画)
--prompt-suggestions [value]提示建议。print/SDK 模式下每轮后发出 prompt_suggestion 消息
--brief启用 SendUserMessage 工具,供代理向用户发消息
-v, --version / -h, --help版本 / 帮助

4. 子命令详解

claude [options] [command] [prompt]
子命令作用
claude默认启动交互式会话
claude update / upgrade检查并安装更新
claude install [target]安装原生构建。target 可为 stable、latest 或具体版本号;--force 强制重装
claude doctor安装健康检查(当前目录读设置文件不需要信任提示)
claude auth认证管理:login / logout / status
claude setup-token生成长效认证 token,用于 CI/自动化(需 Claude 订阅)
claude agents管理后台代理
claude auto-mode查看或重置 auto 模式分类器配置
claude mcp配置与管理 MCP 服务器
claude plugin / plugins管理插件
claude project管理项目状态
claude import [source]从其他 AI 编程代理(codex、gemini)导入配置
claude ultrareview [target]云端多代理代码审查,审查当前分支或 PR
claude gateway运行企业认证/遥测网关

4.1claude agents—— 后台代理

claude --bg "重构一下这个模块"     # 把一个会话丢到后台
claude agents                      # 打开代理管理界面
claude agents --json               # 输出 JSON 数组(无需 TTY,便于脚本)
claude agents --all --json         # 含已完成的后台会话
claude agents --cwd /path/to/proj  # 只看某目录下启动的会话

常用选项:

选项说明
--add-dir <directory>派发的会话可访问的额外目录(可重复)
--agent <agent>代理视图派发会话的默认代理
--model <model>派发会话的默认模型
--permission-mode <mode>派发会话的默认权限模式
--effort <level>派发会话的默认推理强度
--mcp-config <config>应用到派发会话的 MCP 配置(可重复)
--plugin-dir <path>为代理视图和派发会话加载插件(可重复)
--allow-dangerously-skip-permissions让跳权模式对派发会话可选

4.2claude mcp

子命令作用
add [options] <name> <commandOrUrl> [args...]添加 MCP 服务器
add-json [options] <name> <json>用 JSON 字符串添加(stdio 或 SSE)
add-from-claude-desktop从 Claude Desktop 导入(仅 Mac 和 WSL)
list列出已配置服务器(未批准的 .mcp.json 显示为 ⏸ Pending approval)
get <name>查看某个服务器详情
login [options] <name>向 MCP 服务器认证(HTTP / SSE / claude.ai connector)
logout <name>清除某服务器的 OAuth 凭据
remove [options] <name>移除服务器
reset-project-choices重置本项目内所有已批准/已拒绝的 .mcp.json 服务器
serve [options]把 Claude Code 自身作为 MCP 服务器启动
# HTTP 服务器
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
# 带请求头
claude mcp add --transport http corridor https://app.corridor.dev/api/mcp \
  --header "Authorization: Bearer xxx"
# stdio 服务器 + 环境变量
claude mcp add my-server -e API_KEY=xxx -- npx my-mcp-server
# stdio 服务器 + 子进程参数(注意 -- 分隔)
claude mcp add my-server -- my-command --some-flag arg1

4.3claude plugin

子命令作用
install|i <plugin>从可用市场安装(plugin@marketplace 指定市场)
uninstall|remove <plugin>卸载
enable <plugin> / disable [plugin]启用 / 禁用
list列出已安装插件
update <plugin>更新到最新版(需重启生效)
details <name>查看插件的组件清单与预估 token 开销
init|new <name>在 ~/.claude/skills/<name>/ 脚手架新插件
validate <path>校验插件或市场结构
tag [path]为插件发布创建 {name}--v{version} git tag
prune|autoremove移除不再需要的自动安装依赖
eval [target]对插件运行评测用例并输出评分
marketplace add|list|remove|update管理市场

4.4claude auto-mode

自动模式分类器的检查与配置:

claude auto-mode config       # 打印生效配置(你的设置覆盖默认值)的 JSON
claude auto-mode defaults     # 打印默认的 environment / allow / soft_deny / hard_deny 规则
claude auto-mode critique     # 对自定义 auto 模式规则获取 AI 反馈
claude auto-mode reset        # 从用户设置里移除 autoMode 段,恢复出厂默认

4.5 其他

claude project purge [path]              # 删除某项目的全部 Claude Code 状态
                                         # (transcripts、tasks、文件历史、配置项)
claude import codex --dry-run            # 预览从 Codex 导入什么
claude import gemini --yes               # 直接导入
claude ultrareview --post --timeout 30   # 云端审查并把结果评论到 PR
claude gateway --config gateway.yaml     # 企业网关

5. 交互模式(REPL)

直接运行 claude 进入交互式会话。这是功能最全的形态:实时流式输出、权限弹窗、图片粘贴、文件引用、检查点回滚。

5.1 输入技巧

输入作用
/打开斜杠命令选择器
@文件路径自动补全 / 引用文件内容
!Bash 模式:直接执行 shell 命令,输出进入上下文
#行首输入,把该行追加到记忆文件(会问你写进哪个 CLAUDE.md)
\ + Enter换行(续行)

! 模式非常好用——比如 !git log --oneline -20 直接把提交历史拉进对话,无需 Claude 去跑一遍。

5.2 会话管理

命令作用
/resume恢复历史会话
/clear清空当前对话上下文
/compact [指令]压缩对话历史,可带保留指引(如 /compact 保留所有数据库相关的改动)
/context可视化查看上下文窗口占用
/export导出对话
/rewind回滚:打开检查点菜单,恢复文件与对话的早期状态
/usage查看用量与额度

5.3 Claude Code 的能力边界

Claude Code 是一个有状态、有工具的代理。它的核心内置工具包括 Read、Write、Edit、Bash、Glob、Grep、WebSearch、WebFetch,以及任务/待办管理和子代理派发。

理解这一点很重要:你在文档里看到的绝大多数"配置",本质上都是在约束或扩展这些工具的行为——权限规则管的是工具调用是否放行,钩子管的是工具调用前后发生什么,MCP 是往工具集里加新工具,技能是把领域知识喂给它。

6. 权限模式:六种模式

权限系统是 Claude Code 安全模型的核心。v2.1.237 的 --permission-mode 提供六种模式:

模式行为
default / manual默认。每个工具首次使用时弹窗询问;「手动」语义,最保守
acceptEdits自动接受文件编辑类工具(Edit / Write / NotebookEdit),其他工具仍会询问
auto自动模式。由分类器判定调用是否安全,安全则放行。可通过 claude auto-mode 检查与自定义规则
plan计划模式。只读调研,Claude 先给出方案,必须经你批准才能动手改任何东西
dontAsk不询问;未经允许的操作直接不做(而非弹窗打断)
bypassPermissions跳过所有权限检查。仅推荐在无网络的隔离沙箱里使用

6.1 会话内切换

bypassPermissions 不在 Shift+Tab 的循环里,必须显式开启:

claude --permission-mode bypassPermissions
# 或
claude --dangerously-skip-permissions
# 或(推荐):允许提权可选但不默认开启
claude --allow-dangerously-skip-permissions

管理策略还可以彻底封禁提权模式:

{
  "permissions": { "disableBypassPermissionsMode": "disable" }
}

6.2 权限规则语法

规则用 Tool 或 Tool(匹配模式) 的形式表达,放在 settings 的 permissions.allow / ask / deny 中:

{
  "permissions": {
    "allow": [
      "Bash(npm run test:*)",
      "Bash(git diff:*)",
      "Bash(git log:*)",
      "Read(//src/**)",
      "WebFetch(domain:docs.anthropic.com)"
    ],
    "ask": [
      "Bash(git push:*)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)",
      "Bash(curl:*)",
      "WebFetch"
    ],
    "additionalDirectories": ["../shared-lib"],
    "defaultMode": "acceptEdits"
  }
}

三层优先级:deny > ask > allow。deny 里的东西无论 allow 怎么写都被拦住。

💡 实践建议:用 deny 守住 .env、密钥目录、生产配置;用 allow 把高频只读命令(git log、git diff、npm test)放行;把危险动作(git push、rm、数据库写操作)放进 ask。

7. 内置斜杠命令

以下命令已在本机 v2.1.237 二进制中确认存在。

7.1 会话与上下文

命令作用
/help列出可用命令与快捷键
/clear清空对话
/compact [指令]压缩上下文
/context查看上下文占用
/resume恢复会话
/rewind检查点回滚
/export导出对话
/exit退出会话
/usage用量与额度
/cost花费统计
/status当前状态
/tasks任务列表
/todos待办列表
/import从其他 AI 编程代理导入配置

7.2 配置与扩展

命令作用
/config打开配置界面
/model切换模型
/fast切换 Fast 模式
/effort调整推理强度
/permissions权限规则管理
/hooks钩子配置
/agents子代理管理
/skills技能管理
/plugin插件管理
/mcpMCP 服务器状态与认证
/memory编辑记忆文件
/init生成项目 CLAUDE.md
/add-dir添加可访问目录
/output-style切换输出风格
/statusline配置状态栏
/terminal-setup终端配置(如 Shift+Enter 换行、iTerm2/VS Code)
/vimVim 编辑模式

7.3 账号与诊断

命令作用
/login / /logout登录 / 登出
/doctor体检并可自动修复
/bug报告 bug
/feedback产品反馈
/release-notes查看更新日志
/privacy-settings隐私设置
/desktop桌面应用相关
/chromeChrome 集成
/remote-control远程控制
/install-github-app安装 GitHub App

7.4 审查与工作流

命令作用
/review代码审查
/code-review代码审查(含 ultra 等参数)
/security-review安全审查
/ultrareview云端多代理深度审查
/workflows查看/管理多代理工作流
/loop按间隔重复执行提示词

斜杠命令的完整列表以你本机会话内 /help 为准——插件、技能和自定义命令都会追加到这份清单里。

8. 键盘快捷键

按键作用
Shift+Tab循环切换权限模式
Esc中断 Claude 当前生成
Esc Esc打开 rewind 回滚菜单
Ctrl+C取消当前输入 / 打断生成
Ctrl+D退出会话(EOF)
Ctrl+L清屏(保留历史)
Ctrl+V从剪贴板粘贴图片
↑ / ↓翻阅输入历史
Shift+Enter换行不提交(需终端支持,用 /terminal-setup 配置)
Option+Enter换行(macOS)
Ctrl+J换行(通用回退方案)

输入前缀(行首字符):

前缀作用
/斜杠命令选择器
@文件引用与补全
!Bash 模式(直接执行命令)
#追加到记忆文件

不同终端模拟器对 Shift+Enter 的支持不一致。如果换行不生效,先跑一次 /terminal-setup,或直接用最保险的 Ctrl+J。

9. 配置系统:settings.json

9.1 文件位置与优先级

从高到低:

级别路径(Windows)说明
企业托管策略C:\ProgramData\ClaudeCode\managed-settings.json顶层天花板,不可被覆盖
命令行参数——本次启动生效
本地项目设置.claude/settings.local.json个人用,不提交到 git
共享项目设置.claude/settings.json团队共享,提交到 git
用户设置~/.claude/settings.json全局个人设置

macOS 的企业策略路径是 /Library/Application Support/ClaudeCode/,Linux/WSL 是 /etc/claude-code/。

9.2 常用字段

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "model": "opus",
  "outputStyle": "default",
  "alwaysThinkingEnabled": true,
  "permissions": {
    "allow": ["Bash(npm run lint)", "Bash(npm run test:*)"],
    "ask": ["Bash(git push:*)"],
    "deny": ["Read(./.env)", "Read(./secrets/**)"],
    "additionalDirectories": ["../docs"],
    "defaultMode": "acceptEdits",
    "disableBypassPermissionsMode": "disable"
  },
  "env": {
    "ANTHROPIC_MODEL": "claude-opus-5",
    "MY_API_BASE": "https://internal.example.com"
  },
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "npx prettier --write $(jq -r '.tool_input.file_path')" }
        ]
      }
    ]
  },
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh",
    "padding": 0
  },
  "enableAllProjectMcpServers": false,
  "enabledMcpjsonServers": ["github"],
  "disabledMcpjsonServers": ["experimental"],
  "cleanupPeriodDays": 30,
  "includeCoAuthoredBy": true,
  "disableAllHooks": false,
  "enabledPlugins": {
    "my-plugin@my-marketplace": true
  },
  "apiKeyHelper": "/path/to/get-key.sh",
  "forceLoginMethod": "claudeai",
  "autoUpdates": true
}

字段速查:

字段说明
apiKeyHelper输出 API Key 的脚本路径(配合 key 轮换)
cleanupPeriodDays对话记录保留天数,默认 30
env每个会话都注入的环境变量
permissions权限规则(见 §6)
hooks钩子配置(见 §11)
statusLine自定义状态栏命令
includeCoAuthoredBygit 提交是否加 Co-Authored-By: Claude 尾注,默认 true
enableAllProjectMcpServers自动批准所有 .mcp.json 服务器
enabledMcpjsonServers / disabledMcpjsonServers按名放行 / 拒绝项目 MCP 服务器
forceLoginMethod强制登录方式:claudeai 或 console
alwaysThinkingEnabled默认开启扩展思考
autoUpdates自动更新开关
disableAllHooks一键关闭所有钩子
enabledPlugins固定启用哪些插件
$schema给编辑器提供自动补全

~/.claude/settings.local.json 与项目 .claude/settings.local.json 都应该加进 .gitignore。

10. 记忆系统:CLAUDE.md

Claude Code 的"长期记忆"就是一组 Markdown 文件,会在每个会话启动时注入上下文。

10.1 层级

按加载顺序(全部合并生效):

层级位置(Windows)用途
企业策略C:\ProgramData\ClaudeCode\CLAUDE.md组织级强制规范
用户记忆~/.claude/CLAUDE.md你的个人偏好,跨所有项目
项目记忆./CLAUDE.md团队共享,提交到 git
子目录记忆各子目录下的 CLAUDE.md按需加载——只有当 Claude 读到该子树文件时才载入
本地记忆./CLAUDE.local.md个人项目备注(应 gitignore)

10.2 导入语法

CLAUDE.md 里可以用 @path/to/file 引入其他文件,支持递归,最多 5 层:

# 项目规范
@~/.claude/my-coding-style.md
@./docs/architecture.md
@README.md

相对路径和 ~ 都支持。被导入的文件不会触发"外部文件"审批弹窗。

10.3 三种写入方式

# 这个项目用 pnpm 而不是 npm

Claude 会问你写进哪个记忆文件。

10.4 写好 CLAUDE.md 的原则

11. Hooks 钩子

钩子是由 harness 执行的确定性自动化,不是提示词。这是 Claude Code 里最被低估的能力——凡是"每次 X 就必须 Y"的规则,都应该用钩子而不是靠嘱咐模型。

11.1 事件

事件触发时机
PreToolUse工具调用之前(可拦截)
PostToolUse工具调用之后(可格式化、可反馈错误)
UserPromptSubmit用户提交提示词时(可注入额外上下文)
NotificationClaude 发送通知时
StopClaude 结束回复时
SubagentStop子代理结束时
PreCompact上下文压缩之前
SessionStart会话开始
SessionEnd会话结束

11.2 配置结构

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "/path/to/validate-bash.sh",
            "timeout": 60
          }
        ]
      }
    ]
  }
}

11.3 退出码语义(关键)

退出码含义
0成功。stdout 在 transcript 模式显示;对 UserPromptSubmit 和 SessionStart,stdout 会加入 Claude 的上下文
2阻塞性错误。stderr 反馈给 Claude。PreToolUse 中会阻止工具调用;Stop/SubagentStop 中会阻止停止;PostToolUse 中把错误暴露给 Claude
其他非零非阻塞错误。stderr 显示给用户,执行继续

11.4 高级 JSON 输出

钩子也可以往 stdout 输出 JSON 来做精细控制:

{
  "continue": false,
  "stopReason": "自定义停止原因",
  "suppressOutput": true,
  "decision": "block",
  "reason": "阻止原因",
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "permissionDecision": "allow",
    "permissionDecisionReason": "命中内部白名单",
    "additionalContext": "额外注入的上下文"
  }
}

permissionDecision 可取 allow / deny / ask——这让钩子能实现比静态权限规则复杂得多的判断逻辑(比如"只有改动在 src/ 下的编辑才放行")。

11.5 实战例子

自动格式化:每次编辑后跑 Prettier

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [{
          "type": "command",
          "command": "jq -r '.tool_input.file_path' | xargs -r npx prettier --write"
        }]
      }
    ]
  }
}

守住敏感文件:阻止任何对 .env 的写入

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [{
          "type": "command",
          "command": "jq -e '.tool_input.file_path | test(\"\\\\.env$\") | not' > /dev/null || { echo '禁止修改 .env 文件' >&2; exit 2; }"
        }]
      }
    ]
  }
}

会话开始注入上下文:

{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "echo \"当前分支: $(git branch --show-current)\"; git status --short"
      }]
    }]
  }
}

用 /hooks 可以交互式地查看和配置钩子。

12. 子代理 Subagents

子代理是独立的 Claude 实例,有自己独立的上下文窗口,用于把探索性、高噪音的工作隔离出去,避免污染主会话的上下文。

12.1 定义位置

12.2 Frontmatter 字段

---
name: code-reviewer
description: 审查代码变更,关注正确性、安全性、可维护性。在用户要求 review 或提交前主动使用。
tools: Read, Grep, Glob, Bash
model: opus
---
你是一位资深代码审查者。
审查时请:
1. 优先找会导致 bug 的逻辑错误,而不是风格问题
2. 每个问题给出具体的失败场景(什么输入 → 什么错误结果)
3. 用 file:line 格式引用位置
字段必填说明
name✅标识符
description✅决定何时委派——模型根据它判断该不该用这个代理,所以要写清楚触发条件
tools❌逗号分隔的工具白名单;省略则继承全部工具
model❌sonnet / opus / haiku / inherit

Markdown 正文就是子代理的系统提示词。

12.3 关键约束

用 /agents 可以交互式地创建和管理。本次会话指定代理用 --agent <name>。

13. 自定义斜杠命令

把常用提示词固化成一条命令。

13.1 位置

13.2 结构

---
description: 修复某个 GitHub Issue
argument-hint: [issue-number]
allowed-tools: Bash(gh issue view:*), Read, Edit, Bash(git:*)
model: sonnet
---
请修复 Issue #$1。
先用 `gh issue view $1` 获取 Issue 详情,然后:
1. 定位相关代码
2. 实现修复
3. 补充测试
4. 提交 commit,message 引用该 Issue

Frontmatter:

字段说明
description显示在 / 选择器里
argument-hint补全时显示的参数提示,如 [issue-number]
allowed-tools该命令可免提示使用的工具
model该命令的模型覆盖

正文中的替换:

语法作用
$ARGUMENTS全部参数作为一个字符串
$1, $2, …位置参数
!`command`执行 bash 并把输出内联进来(需 allowed-tools 包含相应 Bash 权限)
@path/to/file内联文件内容

命名空间:commands/ 下的子目录成为命名空间。.claude/commands/frontend/component.md → /frontend:component。

📌 新版本中 Skills(.claude/skills/)在很多场景下是自定义命令的推荐替代品——技能支持配套文件、脚本和渐进式披露(只有 description 常驻上下文)。两者目前都可用。

14. Agent Skills 技能

技能是由模型自主调用的领域知识包,是 Claude Code 里组织"可复用专业能力"的主要方式。

14.1 位置与结构

.claude/skills/<skill-name>/
├── SKILL.md          # 必需:frontmatter + 指令
├── reference.md      # 可选:按需读取的参考文档
├── scripts/
│   └── helper.py     # 可选:可执行脚本
└── assets/
    └── template.txt  # 可选:模板资源

用户级技能放在 ~/.claude/skills/<name>/SKILL.md。

14.2 SKILL.md

---
name: pdf-processing
description: 处理 PDF 文件——提取文本、合并、拆分、填表单。当用户提到 PDF 或需要处理 .pdf 文件时使用。
allowed-tools: Read, Bash, Write
---
# PDF 处理
## 可用工具
- `scripts/extract.py` —— 从 PDF 提取文本
- `scripts/merge.py` —— 合并多个 PDF
## 流程
1. 先用 Read 确认 PDF 是否可读
2. 调用 extract.py ...
## 参考资料
详细 API 见 reference.md
字段说明
name技能标识符
description最关键——模型靠它决定何时调用。要写清楚"做什么"和"什么时候用"
allowed-tools该技能可用的工具

14.3 技能 vs 自定义命令 vs CLAUDE.md

加载方式适用场景
CLAUDE.md每会话全量注入短小、永远相关的项目约定
自定义命令用户显式 /触发你主动执行的固定流程
Skill模型按需自动调用成体系的领域知识,含配套文件与脚本

核心优势是渐进式披露:技能的 description 常驻上下文(成本很低),正文和附属文件只在真正相关时才载入。这让你可以挂载大量专业知识而不撑爆上下文窗口。

用 /skills 管理技能。

15. MCP 服务器

MCP(Model Context Protocol)是接入外部工具与数据源的开放协议。接上 MCP 服务器后,它的工具会出现在 Claude 的工具集里。

15.1 传输方式

传输说明
stdio本地子进程,通过标准输入输出通信
HTTP远程可流式 HTTP,远程场景首选
SSEServer-Sent Events,较老的远程传输,正在被 HTTP 取代

15.2 作用域

作用域存储位置生效范围
local~/.claude.json 中按项目路径记录只有你,只有这个项目(默认)
project仓库根目录 .mcp.json(提交到 git)整个团队
user~/.claude.json只有你,所有项目

15.3.mcp.json格式

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    },
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${SENTRY_TOKEN}"
      }
    }
  }
}

支持 ${VAR} 环境变量展开。

项目作用域的服务器首次使用需要用户批准。想全部自动批准可以设 enableAllProjectMcpServers: true,或用 enabledMcpjsonServers / disabledMcpjsonServers 逐个控制。

15.4 使用

claude mcp list                  # 查看所有服务器
claude mcp login sentry          # 认证
claude mcp get github            # 看详情
claude mcp remove github         # 移除
claude mcp serve                 # 把 Claude Code 本身当 MCP 服务器

💡 安全提示:MCP 服务器是第三方代码,拿到的是你的工具权限。只装信得过的,用 ${VAR} 传密钥而不是硬编码,提交 .mcp.json 前检查一遍。

16. 插件与市场

插件把命令 + 子代理 + 技能 + 钩子 + MCP 服务器 + 输出风格打包成一个可分发的整体。

16.1 结构

市场通常是一个 GitHub 仓库,也可以是本地路径或 git URL。

16.2 常用命令

# 添加市场
claude plugin marketplace add anthropics/claude-code-plugins
claude plugin marketplace list
claude plugin marketplace update
# 安装与管理
claude plugin install my-plugin@my-marketplace
claude plugin list
claude plugin enable my-plugin
claude plugin details my-plugin      # 组件清单 + 预估 token 开销
claude plugin update my-plugin
claude plugin uninstall my-plugin
# 开发
claude plugin init my-plugin         # 脚手架
claude plugin validate ./my-plugin   # 校验结构
claude plugin tag ./my-plugin        # 打发布 tag

会话内用 /plugin 打开交互式管理界面。

设置里用 enabledPlugins 固定启用清单:

{
  "enabledPlugins": {
    "my-plugin@my-marketplace": true
  }
}

17. 输出风格 Output Styles

输出风格直接改写系统提示词,改变 Claude 的表达方式。

17.1 位置

17.2 自定义

---
name: 中文技术写作
description: 用中文回答,面向有经验的工程师,直给结论
---
- 始终用简体中文回答
- 先给结论,再给理由,不要铺垫
- 代码注释用中文
- 避免"首先/其次/最后"这类连接词

用 /output-style 切换,/output-style:new 创建新的。

说明:Output style 影响的是表达风格;项目约定应该放 CLAUDE.md,不要混用。

18. 无头模式、CI 与 SDK

18.1 基本用法

用 -p / --print 进入非交互模式:

# 单次提问
claude -p "总结这个项目的架构"
# 管道输入
cat error.log | claude -p "这些报错说明了什么?"
# JSON 输出(便于脚本解析)
claude -p "列出所有 TODO" --output-format json
# 流式 JSON
claude -p "重构 utils.js" --output-format stream-json --verbose
# 限制轮数与预算
claude -p "修复 lint 错误" \
  --allowedTools "Edit" "Bash(npm run lint:*)" \
  --max-turns 10 \
  --max-budget-usd 2
# 结构化输出校验
claude -p "提取 API 端点" --json-schema '{"type":"object","properties":{"endpoints":{"type":"array","items":{"type":"string"}}},"required":["endpoints"]}'

--output-format json 返回的结果对象包含 result、session_id、total_cost_usd 和 token 用量统计,非常适合 CI 里做成本核算。

18.2 自动化中的安全

非交互模式下没有权限弹窗。你有三个选择:

# 1. 最小权限:只放行必需的
--allowedTools "Read" "Bash(npm test:*)"
# 2. 拒绝高危:显式封禁
--disallowedTools "Bash(rm:*)" "WebFetch"
# 3. 完全跳过:仅在隔离沙箱中用
--dangerously-skip-permissions

⚠️ --dangerously-skip-permissions 在 CI 里意味着一个能执行任意命令的 agent 跑在你的 runner 上。只在没有网络、没有凭据、用完即毁的容器里这么干。

18.3 GitHub Actions

name: Claude Code Review
on:
  pull_request:
    types: [opened, synchronize]
jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "审查这个 PR 的改动,重点关注并发安全和错误处理"

会话内跑 /install-github-app 可以自动完成 GitHub App 的安装配置。Action 支持响应 Issue/PR 里的 @claude 提及,也支持定时触发。

18.4 Agent SDK

要把整套 agent 框架嵌进自己的程序,用 Claude Agent SDK:

语言包名
Pythonclaude-agent-sdk
TypeScript@anthropic-ai/claude-agent-sdk

SDK 提供完整的 Claude Code 框架——agent 循环、会话、钩子、子代理、权限、MCP——加上内置工具集(Read/Write/Edit/Bash/Glob/Grep/WebSearch/WebFetch)。由你自己托管,Anthropic 不托管 Agent SDK 应用。

⚠️ 三个容易混淆的产品:

Agent SDK 的文档在 code.claude.com,不在 platform.claude.com。

19. 环境变量

19.1 认证与端点

变量说明
ANTHROPIC_API_KEY直接 API 调用的密钥
ANTHROPIC_AUTH_TOKEN自定义 Authorization 头(网关 / 代理场景)
ANTHROPIC_BASE_URL覆盖 API 端点
CLAUDE_CODE_USE_BEDROCK切换到 Amazon Bedrock
CLAUDE_CODE_USE_VERTEX切换到 Google Vertex AI

19.2 模型

变量说明
ANTHROPIC_MODEL默认模型
ANTHROPIC_DEFAULT_OPUS_MODELopus 别名解析到哪个模型
ANTHROPIC_DEFAULT_SONNET_MODELsonnet 别名解析到哪个模型
ANTHROPIC_DEFAULT_HAIKU_MODELhaiku 别名解析到哪个模型
ANTHROPIC_DEFAULT_FABLE_MODELfable 别名解析到哪个模型
ANTHROPIC_SMALL_FAST_MODEL⚠️ 已废弃,改用 ANTHROPIC_DEFAULT_HAIKU_MODEL
CLAUDE_CODE_MAX_OUTPUT_TOKENS单次响应最大输出 token
MAX_THINKING_TOKENS扩展思考的 token 预算

💡 通过 ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN + ANTHROPIC_DEFAULT_*_MODEL 这一组变量,可以把 Claude Code 接到任意兼容 Anthropic 协议的模型服务上。

19.3 超时与行为

变量说明
BASH_DEFAULT_TIMEOUT_MSBash 工具默认超时
BASH_MAX_TIMEOUT_MSBash 工具最大超时
MCP_TIMEOUTMCP 服务器启动超时
MCP_TOOL_TIMEOUTMCP 工具调用超时
CLAUDE_CONFIG_DIR重定向配置目录
CLAUDE_CODE_GIT_BASH_PATHWindows 上 Git Bash 的路径
CLAUDE_CODE_SAFE_MODE等价于 --safe-mode
CLAUDE_CODE_SIMPLE等价于 --bare
CLAUDE_CODE_API_KEY_HELPER_TTL_MSapiKeyHelper 输出的缓存时长

19.4 隐私与遥测

变量说明
DISABLE_TELEMETRY禁用遥测
DO_NOT_TRACK同上(通用标准)
DISABLE_ERROR_REPORTING禁用错误上报
DISABLE_AUTOUPDATER禁用自动更新
DISABLE_BUG_COMMAND隐藏 /bug
DISABLE_NON_ESSENTIAL_MODEL_CALLS跳过非必要的模型调用
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC上面几项的集合开关

19.5 网络

变量说明
HTTP_PROXY / HTTPS_PROXY代理
NO_PROXY代理排除列表

20. 实战工作流

20.1 接手一个陌生代码库

/init                          # 生成 CLAUDE.md
请阅读代码库并告诉我:          # 让它先调研
1. 整体架构和数据流
2. 核心模块各自负责什么
3. 测试怎么跑

想更结构化就用计划模式(Shift+Tab 切到 plan)——它保证 Claude 只看不改,给出方案等你批准。

20.2 安全的探索式改动

Shift+Tab → plan        # 切到计划模式
"重构用户认证模块,先用 JWT 替换 session"    # Claude 只调研、出方案
【审阅方案,确认没问题】
Shift+Tab → acceptEdits # 切到自动接受编辑
"按方案执行"

这个「先 plan 后 acceptEdits」的两段式是 Claude Code 最好用的工作流之一:方案阶段零风险,执行阶段零打断。

20.3 TDD 循环

claude    # 然后:
请为 utils/parser.js 写测试,覆盖:
- 空输入
- 畸形 JSON
- 超长输入
- Unicode
先写测试,跑一遍确认失败,再实现到全部通过

20.4 并行调查

让子代理并行探索,主会话保持干净:

用三个子代理并行调查:
1. 认证流程是怎么实现的
2. 数据库 schema 和迁移策略
3. 前端状态管理方案
每个给我一份简明报告

子代理各自的探索噪音不会进入主上下文,主会话只收到结论。

20.5 大重构

claude -w refactor-auth       # 在独立 worktree 里干活,不影响主分支

会话里做完改动,测试通过再合并。

20.6 代码审查

/review                       # 常规审查
/security-review              # 安全审查
/ultrareview                  # 云端多代理深度审查

20.7 自动化守门

在 .claude/settings.json 里设好规则,让团队所有人受益:

{
  "permissions": {
    "ask": ["Bash(git push:*)", "Bash(npm publish:*)"],
    "deny": ["Read(./.env)", "Read(./secrets/**)", "Bash(curl:*)"]
  },
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{
        "type": "command",
        "command": "jq -r '.tool_input.file_path' | xargs -r npx prettier --write"
      }]
    }]
  }
}

21. 速查表

启动

claude                          # 交互式会话
claude "解释这个项目"            # 带首条提示词
claude -c                       # 继续最近会话
claude -r                       # 选择恢复某个会话
claude --model opus             # 指定模型
claude -p "查询"                 # 非交互,打印后退出
claude --bg "任务"               # 后台代理
claude -w feature-x             # 在独立 worktree 中工作
claude --safe-mode              # 排查坏配置

会话内

/help          /config       /model        /permissions
/init          /memory       /compact      /context
/clear         /resume       /rewind       /cost
/agents        /skills       /hooks        /mcp
/plugin        /add-dir      /output-style /statusline
/doctor        /review       /security-review
/usage         /export       /exit

输入前缀

/      斜杠命令
@      引用文件
!      执行 bash
#      写入记忆

管理

claude update                   # 更新
claude doctor                   # 体检
claude mcp list                 # MCP 服务器
claude plugin list              # 插件
claude agents                   # 后台代理
claude project purge            # 清理项目状态

关键路径

路径内容
~/.claude/settings.json用户设置
~/.claude/CLAUDE.md用户记忆
~/.claude/agents/用户子代理
~/.claude/commands/用户自定义命令
~/.claude/skills/用户技能
~/.claude/output-styles/输出风格
.claude/settings.json项目设置(提交)
.claude/settings.local.json项目本地设置(不提交)
.claude/agents/项目子代理
.claude/commands/项目命令
.claude/skills/项目技能
CLAUDE.md项目记忆(提交)
.mcp.json项目 MCP 服务器(提交)

优先级速记

附录:官方文档索引

主题地址
文档总索引https://code.claude.com/docs/en/claude_code_docs_map.md
CLI 参考https://code.claude.com/docs/en/cli-reference
斜杠命令https://code.claude.com/docs/en/slash-commands
交互模式https://code.claude.com/docs/en/interactive-mode
设置https://code.claude.com/docs/en/settings
记忆https://code.claude.com/docs/en/memory
钩子https://code.claude.com/docs/en/hooks
子代理https://code.claude.com/docs/en/sub-agents
MCPhttps://code.claude.com/docs/en/mcp
技能https://code.claude.com/docs/en/skills
插件https://code.claude.com/docs/en/plugins
无头模式https://code.claude.com/docs/en/headless
GitHub 仓库https://github.com/anthropics/claude-code

基于 Claude Code v2.1.237 。

到此这篇关于Claude Code命令、模式与配置完全指南的文章就介绍到这了,更多相关Claude Code命令、模式与配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!