Skip to content

参考

基于 Claude Code 2.x 编写。完整文档见 docs.claude.com/en/docs/claude-code

CLI 全 flag

bash
claude [prompt] [flags]
Flag说明
-h, --help帮助
-v, --version版本
-p, --print <prompt>单次执行后退出(脚本场景)
--model <id>指定模型(opus / sonnet / haiku / 完整 ID)
--plan进入 Plan 模式
--continue继续上次会话
--resume <session-id>恢复指定会话
--cwd <dir>指定工作目录
--no-update-notifier禁用更新提示
--debug详细日志
--print-config启动时输出当前配置
--mcp-config <path>指定 MCP 配置文件
--allowed-tools <list>仅允许指定工具
--disallowed-tools <list>禁用指定工具
--dangerously-skip-permissions等价 bypassPermissions(慎用)
bash
# 单次执行
claude -p "总结 README.md 主要内容"

# 脚本模式 + 指定模型
claude -p "lint 检查" --model sonnet --print-config

# 继续上次
claude --continue

配置文件位置

路径作用优先级
~/.claude/settings.json用户全局配置
<project>/.claude/settings.json项目共享配置(commit)
<project>/.claude/settings.local.json项目本地(不 commit)
<project>/CLAUDE.md项目说明书-
~/.claude/CLAUDE.md用户全局说明书-

settings.json Schema

顶层字段

json
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": { ... },
  "hooks": [ ... ],
  "mcpServers": { ... },
  "env": { ... },
  "model": "claude-sonnet-4-6",
  "permissionMode": "default" | "acceptEdits" | "bypassPermissions" | "plan",
  "outputStyle": "default" | "json",
  "telemetry": { "enabled": false }
}

permissions 字段

json
{
  "permissions": {
    "allow": [
      "Read(*)",
      "Bash(pnpm:*)",
      "Bash(git status:*)",
      "Bash(git log:*)",
      "mcp__context7__*"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(git push --force:*)",
      "Edit(/etc/*)"
    ],
    "defaultMode": "acceptEdits"
  }
}

PermissionRule 语法<Tool>(<arg-pattern>)

格式例子匹配
<Tool>Read该工具全部调用
<Tool>(*)Read(*)等同 Read
<Tool>(<pattern>)Bash(pnpm:*)Bash 以 pnpm 开头
<Tool>(<exact>)Bash(pnpm test)仅这条命令
mcp__<server>__<tool>mcp__github__create_prMCP 工具
mcp__<server>__*mcp__github__*server 全部工具

hooks 字段

json
{
  "hooks": [
    {
      "matcher": { "tool": "Edit" },
      "hooks": [
        {
          "type": "command",
          "command": "echo $CLAUDE_TOOL_PATH >> ~/edit.log"
        }
      ]
    },
    {
      "matcher": { "tool": "Bash", "command": "git push" },
      "hooks": [
        {
          "type": "command",
          "command": "echo 'Blocked!' && exit 1"
        }
      ]
    }
  ]
}

matcher 字段

字段类型说明
toolstring工具名(精确)
tool_patternstring工具名 glob
commandstringBash 命令前缀匹配
pathstring文件路径 glob
event"pre" / "post"调用前 / 后(默认 pre)

hook command 环境变量

变量
$CLAUDE_TOOL_NAME工具名
$CLAUDE_TOOL_PATH操作路径(Read/Edit/Write)
$CLAUDE_TOOL_COMMANDBash 命令
$CLAUDE_TOOL_INPUT完整工具输入 JSON
$CLAUDE_TOOL_OUTPUT完整工具结果 JSON(仅 post 事件)
$CLAUDE_SESSION_ID会话 ID
$CLAUDE_PROJECT_DIR项目根
$CLAUDE_HOOK_EVENT"pre" / "post"

mcpServers 字段

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${env:GITHUB_TOKEN}"
      }
    },
    "remote-server": {
      "url": "https://my-mcp.example.com",
      "headers": {
        "Authorization": "Bearer ${env:API_KEY}"
      }
    }
  }
}

env 字段

json
{
  "env": {
    "HTTPS_PROXY": "http://localhost:7890",
    "MY_CUSTOM_VAR": "value"
  }
}

将变量注入到 Claude Code 启动环境(也传给 hooks / MCP servers)。

内置工具列表

工具用途
Read读文件 / 图片 / PDF / Jupyter notebook
Write写整个文件(覆盖)
Edit精确 string replace 编辑
Bash执行 shell 命令
Glob文件名模式匹配
Grep正则全文搜索
WebFetch抓 URL(含 markdown 转换)
WebSearchWeb 搜索
Agentspawn 子代理
TodoWrite维护任务清单
Monitor监控后台进程 stdout
ScheduleWakeup定时唤醒
AskUserQuestion交互式问用户
NotebookEdit编辑 Jupyter notebook 单元
KillShell终止 shell
BashOutput读后台命令输出
ToolSearch搜索可用工具

Skills 目录结构

~/.claude/skills/<skill-name>/
├── SKILL.md           # 主指令(必需)
├── references/        # 引用资源
│   ├── docs.md
│   └── examples.ts
├── scripts/           # 工具脚本
│   └── helper.sh
└── data/              # 静态数据
    └── snippets.json

SKILL.md frontmatter

md
---
name: my-skill
description: Use when ... [何时触发的描述]
---

# Skill 主体内容

[详细指令]
字段必需说明
nameskill 名,slash 命令 /<name>
description何时使用(Claude 据此判断是否调用)

Subagent 配置

~/.claude/agents/<name>.md

md
---
name: typescript-bug-hunter
description: Find subtle TypeScript type bugs
tools: ["Read", "Grep", "Glob"]
model: claude-opus-4-7
---

You are a TypeScript bug hunter. Focus on:
- Type narrowing issues
- Generic constraint problems
...
字段必需说明
namesubagent_type 值
description何时调用
tools-工具白名单(默认全部)
model-模型覆盖
permissionMode-默认权限

命令行 / Slash 命令完整列表

命令作用
/help显示帮助
/login登录 / 切账号
/logout登出
/model选模型
/permissions看权限
/hooks看 hook
/mcp看 MCP server 状态
/agents看 subagent
/init生成 CLAUDE.md
/clear清会话
/compact <提示>压缩对话
/cost看费用
/release-notes看版本变更
/feedback反馈
/bug报 bug
/quit退出
/<custom>用户/项目自定义命令
/skill <name>触发 skill

环境变量

变量作用
ANTHROPIC_API_KEYAPI key(替代 OAuth)
ANTHROPIC_BASE_URLAPI endpoint(自定义 / 代理)
CLAUDE_MODEL默认模型
CLAUDE_PROJECT_DIR项目根(hooks 内可用)
CLAUDE_SESSION_ID当前会话 ID
CLAUDE_NO_UPDATE1 禁用更新提示
CLAUDE_NO_HOOKS1 临时禁用所有 hook
CLAUDE_LOG_LEVELdebug / info / warn / error
HTTPS_PROXY / HTTP_PROXY网络代理

模型 ID 速查

ID别名上下文用途
claude-opus-4-7Opus 4.7200K旗舰,复杂规划
claude-opus-4-7[1m]Opus 4.7 1M1M整本仓库
claude-sonnet-4-6Sonnet 4.6200K日常
claude-haiku-4-5-20251001Haiku 4.5200K简单 / 快速

旧版本:

ID状态
claude-opus-4仍可用
claude-sonnet-3-5已 retired
claude-haiku-3-5仍可用

API 端点(Agent SDK)

python
from claude_agent_sdk import Agent

agent = Agent(
    model="claude-opus-4-7",
    tools=[my_tool],
    permission_mode="acceptEdits",
    settings_path="~/.claude/settings.json",  # 复用 Claude Code 配置
)

# 单次跑
result = agent.run("帮我...")

# 流式
async for chunk in agent.stream("帮我..."):
    print(chunk, end="")

# 多轮
session = agent.session()
session.send("...")
session.send("...")

详见 Agent SDK 文档

错误码

现象含义
authentication_errorOAuth 过期 / API key 无效
rate_limit_error触发速率限制
context_length_exceeded上下文窗口满
tool_use_failed工具调用失败(参数错 / 权限拒)
mcp_connection_failedMCP server 启动失败

价格速查(截至 2026)

按 token 计费(输入 / 输出价格不同),单位 $/1M tokens:

模型输入输出Prompt cache 读
Opus 4.7$15$75$1.50
Opus 4.7 (1M)$30$150$3
Sonnet 4.6$3$15$0.30
Haiku 4.5$0.80$4$0.08

Pro / Max 订阅:月费 $20 / $100 / $200,含一定额度后超出按 token。

资源链接