Skip to content

CLI 参考

概览

Claude Code CLI(命令行界面)是与 Claude Code 交互的主要方式。它提供了强大的选项,用于运行查询、管理会话、配置模型以及将 Claude 集成到您的开发工作流程中。

架构

CLI 命令

命令描述示例
claude启动交互式 REPLclaude
claude "query"以初始提示启动 REPLclaude "explain this project"
claude -p "query"打印模式 - 查询后退出claude -p "explain this function"
cat file | claude -p "query"处理管道内容cat logs.txt | claude -p "explain"
claude -c继续最近的对话claude -c
claude -c -p "query"以打印模式继续claude -c -p "check for type errors"
claude -r "<session>" "query"通过 ID 或名称恢复会话claude -r "auth-refactor" "finish this PR"
claude update更新到最新版本claude update
claude mcp配置 MCP 服务器参见 MCP 文档
claude mcp serve将 Claude Code 作为 MCP 服务器运行claude mcp serve
claude agents列出所有已配置的子代理claude agents
claude auto-mode defaults以 JSON 形式打印自动模式默认规则claude auto-mode defaults
claude remote-control启动远程控制服务器claude remote-control
claude plugin管理插件(安装、启用、禁用)claude plugin install my-plugin
claude auth login登录(支持 --email--ssoclaude auth login --email user@example.com
claude auth logout登出当前账户claude auth logout
claude auth status检查认证状态(已登录退出码 0,未登录退出码 1)claude auth status

核心标志

标志描述示例
-p, --print以非交互模式打印响应claude -p "query"
-c, --continue加载最近的对话claude --continue
-r, --resume通过 ID 或名称恢复特定会话claude --resume auth-refactor
-v, --version输出版本号claude -v
-w, --worktree在隔离的 git 工作树中启动claude -w
-n, --name会话显示名称claude -n "auth-refactor"
--from-pr <number>恢复链接到 GitHub PR 的会话claude --from-pr 42
--remote "task"在 claude.ai 上创建 Web 会话claude --remote "implement API"
--remote-control, --rc带远程控制的交互式会话claude --rc
--teleport在本地恢复 Web 会话claude --teleport
--teammate-mode代理团队显示模式claude --teammate-mode tmux
--bare精简模式(跳过钩子、技能、插件、MCP、自动内存、CLAUDE.md)claude --bare
--enable-auto-mode解锁自动权限模式claude --enable-auto-mode
--channels订阅 MCP 频道插件claude --channels discord,telegram
--chrome / --no-chrome启用/禁用 Chrome 浏览器集成claude --chrome
--effort设置思考努力级别claude --effort high
--init / --init-only运行初始化钩子claude --init
--maintenance运行维护钩子并退出claude --maintenance
--disable-slash-commands禁用所有技能和 slash 命令claude --disable-slash-commands
--no-session-persistence禁用会话保存(打印模式)claude -p --no-session-persistence "query"

交互式模式与打印模式

交互式模式(默认):

bash
# 启动交互式会话
claude

# 以初始提示启动
claude "explain the authentication flow"

打印模式(非交互式):

bash
# 单次查询,然后退出
claude -p "what does this function do?"

# 处理文件内容
cat error.log | claude -p "explain this error"

# 与其他工具链式使用
claude -p "list todos" | grep "URGENT"

模型与配置

标志描述示例
--model设置模型(sonnet、opus、haiku 或全名)claude --model opus
--fallback-model过载时自动模型回退claude -p --fallback-model sonnet "query"
--agent为会话指定代理claude --agent my-custom-agent
--agents通过 JSON 定义自定义子代理参见代理配置
--effort设置努力级别(low、medium、high、max)claude --effort high

模型选择示例

bash
# 使用 Opus 4.6 处理复杂任务
claude --model opus "design a caching strategy"

# 使用 Haiku 4.5 处理快速任务
claude --model haiku -p "format this JSON"

# 完整模型名称
claude --model claude-sonnet-4-6-20250929 "review this code"

# 带回退以提高可靠性
claude -p --model opus --fallback-model sonnet "analyze architecture"

# 使用 opusplan(Opus 规划,Sonnet 执行)
claude --model opusplan "design and implement the caching layer"

系统提示自定义

标志描述示例
--system-prompt替换整个默认提示claude --system-prompt "You are a Python expert"
--system-prompt-file从文件加载提示(打印模式)claude -p --system-prompt-file ./prompt.txt "query"
--append-system-prompt追加到默认提示claude --append-system-prompt "Always use TypeScript"

系统提示示例

bash
# 完整的自定义角色
claude --system-prompt "You are a senior security engineer. Focus on vulnerabilities."

# 追加特定指令
claude --append-system-prompt "Always include unit tests with code examples"

# 从文件加载复杂提示
claude -p --system-prompt-file ./prompts/code-reviewer.txt "review main.py"

系统提示标志比较

标志行为交互式打印
--system-prompt替换整个默认系统提示
--system-prompt-file用文件中的提示替换
--append-system-prompt追加到默认系统提示

--system-prompt-file 仅在打印模式下使用。交互式模式请使用 --system-prompt--append-system-prompt

工具与权限管理

标志描述示例
--tools限制可用的内置工具claude -p --tools "Bash,Edit,Read" "query"
--allowedTools无需提示即可执行的工具"Bash(git log:*)" "Read"
--disallowedTools从上下文中删除的工具"Bash(rm:*)" "Edit"
--dangerously-skip-permissions跳过所有权限提示claude --dangerously-skip-permissions
--permission-mode以指定的权限模式开始claude --permission-mode auto
--permission-prompt-tool用于权限处理的 MCP 工具claude -p --permission-prompt-tool mcp_auth "query"
--enable-auto-mode解锁自动权限模式claude --enable-auto-mode

权限示例

bash
# 代码审查的只读模式
claude --permission-mode plan "review this codebase"

# 仅限安全工具
claude --tools "Read,Grep,Glob" -p "find all TODO comments"

# 允许特定 git 命令无需提示
claude --allowedTools "Bash(git status:*)" "Bash(git log:*)"

# 阻止危险操作
claude --disallowedTools "Bash(rm -rf:*)" "Bash(git push --force:*)"

输出与格式

标志描述选项示例
--output-format指定输出格式(打印模式)textjsonstream-jsonclaude -p --output-format json "query"
--input-format指定输入格式(打印模式)textstream-jsonclaude -p --input-format stream-json
--verbose启用详细日志claude --verbose
--include-partial-messages包含流式事件需要 stream-jsonclaude -p --output-format stream-json --include-partial-messages "query"
--json-schema获取匹配模式的验证 JSONclaude -p --json-schema '{"type":"object"}' "query"
--max-budget-usd打印模式的最大支出claude -p --max-budget-usd 5.00 "query"

输出格式示例

bash
# 纯文本(默认)
claude -p "explain this code"

# JSON 用于编程使用
claude -p --output-format json "list all functions in main.py"

# 流式 JSON 用于实时处理
claude -p --output-format stream-json "generate a long report"

# 带模式验证的结构化输出
claude -p --json-schema '{"type":"object","properties":{"bugs":{"type":"array"}}}' \
  "find bugs in this code and return as JSON"

工作区与目录

标志描述示例
--add-dir添加额外的工作目录claude --add-dir ../apps ../lib
--setting-sources逗号分隔的设置来源claude --setting-sources user,project
--settings从文件或 JSON 加载设置claude --settings ./settings.json
--plugin-dir从目录加载插件(可重复)claude --plugin-dir ./my-plugin

多目录示例

bash
# 跨多个项目目录工作
claude --add-dir ../frontend ../backend ../shared "find all API endpoints"

# 加载自定义设置
claude --settings '{"model":"opus","verbose":true}' "complex task"

MCP 配置

标志描述示例
--mcp-config从 JSON 加载 MCP 服务器claude --mcp-config ./mcp.json
--strict-mcp-config仅使用指定的 MCP 配置claude --strict-mcp-config --mcp-config ./mcp.json
--channels订阅 MCP 频道插件claude --channels discord,telegram

MCP 示例

bash
# 加载 GitHub MCP 服务器
claude --mcp-config ./github-mcp.json "list open PRs"

# 严格模式 - 仅使用指定服务器
claude --strict-mcp-config --mcp-config ./production-mcp.json "deploy to staging"

会话管理

标志描述示例
--session-id使用特定会话 ID(UUID)claude --session-id "550e8400-..."
--fork-session恢复时创建新会话claude --resume abc123 --fork-session

会话示例

bash
# 继续上次对话
claude -c

# 恢复命名会话
claude -r "feature-auth" "continue implementing login"

# 分叉会话进行实验
claude --resume feature-auth --fork-session "try alternative approach"

# 使用特定会话 ID
claude --session-id "550e8400-e29b-41d4-a716-446655440000" "continue"

会话分叉

从现有会话创建分支以进行实验:

bash
# 分叉会话以尝试不同方法
claude --resume abc123 --fork-session "try alternative implementation"

# 带自定义消息分叉
claude -r "feature-auth" --fork-session "test with different architecture"

使用场景:

  • 在不丢失原始会话的情况下尝试替代实现
  • 并行实验不同方法
  • 从成功的工作创建变体分支
  • 在不影响主会话的情况下测试破坏性更改

原始会话保持不变,分叉成为一个新的独立会话。

高级功能

标志描述示例
--chrome启用 Chrome 浏览器集成claude --chrome
--no-chrome禁用 Chrome 浏览器集成claude --no-chrome
--ide如果可用则自动连接到 IDEclaude --ide
--max-turns限制代理轮次(非交互式)claude -p --max-turns 3 "query"
--debug启用带过滤的调试模式claude --debug "api,mcp"
--enable-lsp-logging启用详细的 LSP 日志claude --enable-lsp-logging
--betasAPI 请求的 beta 头部claude --betas interleaved-thinking
--plugin-dir从目录加载插件(可重复)claude --plugin-dir ./my-plugin
--enable-auto-mode解锁自动权限模式claude --enable-auto-mode
--effort设置思考努力级别claude --effort high
--bare精简模式(跳过钩子、技能、插件、MCP、自动内存、CLAUDE.md)claude --bare
--channels订阅 MCP 频道插件claude --channels discord
--fork-session恢复时创建新会话 IDclaude --resume abc --fork-session
--max-budget-usd最大支出(打印模式)claude -p --max-budget-usd 5.00 "query"
--json-schema验证的 JSON 输出claude -p --json-schema '{"type":"object"}' "q"

高级示例

bash
# 限制自主操作
claude -p --max-turns 5 "refactor this module"

# 调试 API 调用
claude --debug "api" "test query"

# 启用 IDE 集成
claude --ide "help me with this file"

代理配置

--agents 标志接受一个 JSON 对象,为会话定义自定义子代理。

代理 JSON 格式

json
{
  "agent-name": {
    "description": "必填:何时调用此代理",
    "prompt": "必填:代理的系统提示",
    "tools": ["可选", "工具", "数组"],
    "model": "可选:sonnet|opus|haiku"
  }
}

必填字段:

  • description - 关于何时使用此代理的自然语言描述
  • prompt - 定义代理角色和行为的系统提示

可选字段:

  • tools - 可用工具数组(省略则继承所有工具)
    • 格式:["Read", "Grep", "Glob", "Bash"]
  • model - 使用的模型:sonnetopushaiku

完整代理示例

json
{
  "code-reviewer": {
    "description": "Expert code reviewer. Use proactively after code changes.",
    "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  },
  "debugger": {
    "description": "Debugging specialist for errors and test failures.",
    "prompt": "You are an expert debugger. Analyze errors, identify root causes, and provide fixes.",
    "tools": ["Read", "Edit", "Bash", "Grep"],
    "model": "opus"
  },
  "documenter": {
    "description": "Documentation specialist for generating guides.",
    "prompt": "You are a technical writer. Create clear, comprehensive documentation.",
    "tools": ["Read", "Write"],
    "model": "haiku"
  }
}

代理命令示例

bash
# 内联定义自定义代理
claude --agents '{
  "security-auditor": {
    "description": "Security specialist for vulnerability analysis",
    "prompt": "You are a security expert. Find vulnerabilities and suggest fixes.",
    "tools": ["Read", "Grep", "Glob"],
    "model": "opus"
  }
}' "audit this codebase for security issues"

# 从文件加载代理
claude --agents "$(cat ~/.claude/agents.json)" "review the auth module"

# 与其他标志组合使用
claude -p --agents "$(cat agents.json)" --model sonnet "analyze performance"

代理优先级

当存在多个代理定义时,按以下优先级顺序加载:

  1. CLI 定义--agents 标志)- 会话特定
  2. 用户级别~/.claude/agents/)- 所有项目
  3. 项目级别.claude/agents/)- 当前项目

CLI 定义的代理会在会话中覆盖用户和项目代理。


高价值使用场景

1. CI/CD 集成

在 CI/CD 流水线中使用 Claude Code 进行自动化代码审查、测试和文档。

GitHub Actions 示例:

yaml
name: AI Code Review

on: [pull_request]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Run Code Review
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          claude -p --output-format json \
            --max-turns 1 \
            "Review the changes in this PR for:
            - Security vulnerabilities
            - Performance issues
            - Code quality
            Output as JSON with 'issues' array" > review.json

      - name: Post Review Comment
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const review = JSON.parse(fs.readFileSync('review.json', 'utf8'));
            // Process and post review comments

Jenkins Pipeline:

groovy
pipeline {
    agent any
    stages {
        stage('AI Review') {
            steps {
                sh '''
                    claude -p --output-format json \
                      --max-turns 3 \
                      "Analyze test coverage and suggest missing tests" \
                      > coverage-analysis.json
                '''
            }
        }
    }
}

2. 脚本管道

通过 Claude 处理文件、日志和数据以进行分析。

日志分析:

bash
# 分析错误日志
tail -1000 /var/log/app/error.log | claude -p "summarize these errors and suggest fixes"

# 查找访问日志中的模式
cat access.log | claude -p "identify suspicious access patterns"

# 分析 git 历史
git log --oneline -50 | claude -p "summarize recent development activity"

代码处理:

bash
# 审查特定文件
cat src/auth.ts | claude -p "review this authentication code for security issues"

# 生成文档
cat src/api/*.ts | claude -p "generate API documentation in markdown"

# 查找 TODO 并排列优先级
grep -r "TODO" src/ | claude -p "prioritize these TODOs by importance"

3. 多会话工作流

使用多个对话线程管理复杂项目。

bash
# 启动功能分支会话
claude -r "feature-auth" "let's implement user authentication"

# 稍后,继续会话
claude -r "feature-auth" "add password reset functionality"

# 分叉以尝试替代方案
claude --resume feature-auth --fork-session "try OAuth instead"

# 在不同功能会话间切换
claude -r "feature-payments" "continue with Stripe integration"

4. 自定义代理配置

为团队工作流定义专业代理。

bash
# 将代理配置保存到文件
cat > ~/.claude/agents.json << 'EOF'
{
  "reviewer": {
    "description": "Code reviewer for PR reviews",
    "prompt": "Review code for quality, security, and maintainability.",
    "model": "opus"
  },
  "documenter": {
    "description": "Documentation specialist",
    "prompt": "Generate clear, comprehensive documentation.",
    "model": "sonnet"
  },
  "refactorer": {
    "description": "Code refactoring expert",
    "prompt": "Suggest and implement clean code refactoring.",
    "tools": ["Read", "Edit", "Glob"]
  }
}
EOF

# 在会话中使用代理
claude --agents "$(cat ~/.claude/agents.json)" "review the auth module"

5. 批处理

以一致的设置处理多个查询。

bash
# 处理多个文件
for file in src/*.ts; do
  echo "Processing $file..."
  claude -p --model haiku "summarize this file: $(cat $file)" >> summaries.md
done

# 批量代码审查
find src -name "*.py" -exec sh -c '
  echo "## $1" >> review.md
  cat "$1" | claude -p "brief code review" >> review.md
' _ {} \;

# 为所有模块生成测试
for module in $(ls src/modules/); do
  claude -p "generate unit tests for src/modules/$module" > "tests/$module.test.ts"
done

6. 安全意识开发

使用权限控制进行安全操作。

bash
# 只读安全审计
claude --permission-mode plan \
  --tools "Read,Grep,Glob" \
  "audit this codebase for security vulnerabilities"

# 阻止危险命令
claude --disallowedTools "Bash(rm:*)" "Bash(curl:*)" "Bash(wget:*)" \
  "help me clean up this project"

# 受限自动化
claude -p --max-turns 2 \
  --allowedTools "Read" "Glob" \
  "find all hardcoded credentials"

7. JSON API 集成

使用 Claude 作为工具的可编程 API,配合 jq 解析。

bash
# 获取结构化分析
claude -p --output-format json \
  --json-schema '{"type":"object","properties":{"functions":{"type":"array"},"complexity":{"type":"string"}}}' \
  "analyze main.py and return function list with complexity rating"

# 与 jq 集成进行处理
claude -p --output-format json "list all API endpoints" | jq '.endpoints[]'

# 在脚本中使用
RESULT=$(claude -p --output-format json "is this code secure? answer with {secure: boolean, issues: []}" < code.py)
if echo "$RESULT" | jq -e '.secure == false' > /dev/null; then
  echo "Security issues found!"
  echo "$RESULT" | jq '.issues[]'
fi

jq 解析示例

使用 jq 解析和处理 Claude 的 JSON 输出:

bash
# 提取特定字段
claude -p --output-format json "analyze this code" | jq '.result'

# 过滤数组元素
claude -p --output-format json "list issues" | jq -r '.issues[] | select(.severity=="high")'

# 提取多个字段
claude -p --output-format json "describe the project" | jq -r '.{name, version, description}'

# 转换为 CSV
claude -p --output-format json "list functions" | jq -r '.functions[] | [.name, .lineCount] | @csv'

# 条件处理
claude -p --output-format json "check security" | jq 'if .vulnerabilities | length > 0 then "UNSAFE" else "SAFE" end'

# 提取嵌套值
claude -p --output-format json "analyze performance" | jq '.metrics.cpu.usage'

# 处理整个数组
claude -p --output-format json "find todos" | jq '.todos | length'

# 转换输出
claude -p --output-format json "list improvements" | jq 'map({title: .title, priority: .priority})'

模型

Claude Code 支持具有不同能力的多种模型:

模型ID上下文窗口备注
Opus 4.6claude-opus-4-61M tokens最强大,自适应努力级别
Sonnet 4.6claude-sonnet-4-61M tokens速度与能力均衡
Haiku 4.5claude-haiku-4-51M tokens最快,最适合快速任务

模型选择

bash
# 使用简短名称
claude --model opus "complex architectural review"
claude --model sonnet "implement this feature"
claude --model haiku -p "format this JSON"

# 使用 opusplan 别名(Opus 规划,Sonnet 执行)
claude --model opusplan "design and implement the API"

# 在会话中切换快速模式
/fast

努力级别(Opus 4.6)

Opus 4.6 支持带努力级别的自适应推理:

bash
# 通过 CLI 标志设置努力级别
claude --effort high "complex review"

# 通过 slash 命令设置努力级别
/effort high

# 通过环境变量设置努力级别
export CLAUDE_CODE_EFFORT_LEVEL=high   # low, medium, high, or max (Opus 4.6 only)

提示中的 "ultrathink" 关键词可激活深度推理。max 努力级别仅限 Opus 4.6。


关键环境变量

变量描述
ANTHROPIC_API_KEY用于身份验证的 API 密钥
ANTHROPIC_MODEL覆盖默认模型
ANTHROPIC_CUSTOM_MODEL_OPTIONAPI 的自定义模型选项
ANTHROPIC_DEFAULT_OPUS_MODEL覆盖默认 Opus 模型 ID
ANTHROPIC_DEFAULT_SONNET_MODEL覆盖默认 Sonnet 模型 ID
ANTHROPIC_DEFAULT_HAIKU_MODEL覆盖默认 Haiku 模型 ID
MAX_THINKING_TOKENS设置深度思考 token 预算
CLAUDE_CODE_EFFORT_LEVEL设置努力级别(low/medium/high/max
CLAUDE_CODE_SIMPLE精简模式,由 --bare 标志设置
CLAUDE_CODE_DISABLE_AUTO_MEMORY禁用自动 CLAUDE.md 更新
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS禁用后台任务执行
CLAUDE_CODE_DISABLE_CRON禁用定时/cron 任务
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS禁用 git 相关指令
CLAUDE_CODE_DISABLE_TERMINAL_TITLE禁用终端标题更新
CLAUDE_CODE_DISABLE_1M_CONTEXT禁用 1M token 上下文窗口
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK禁用非流式回退
CLAUDE_CODE_ENABLE_TASKS启用任务列表功能
CLAUDE_CODE_TASK_LIST_ID跨会话共享的命名任务目录
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION切换提示建议(true/false
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS启用实验性代理团队
CLAUDE_CODE_NEW_INIT使用新的初始化流程
CLAUDE_CODE_SUBAGENT_MODEL子代理执行的模型
CLAUDE_CODE_PLUGIN_SEED_DIR插件种子文件目录
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB从子进程中清除的环境变量
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE覆盖自动压缩百分比
CLAUDE_STREAM_IDLE_TIMEOUT_MS流式传输空闲超时(毫秒)
SLASH_COMMAND_TOOL_CHAR_BUDGETslash 命令工具的字符预算
ENABLE_TOOL_SEARCH启用工具搜索功能
MAX_MCP_OUTPUT_TOKENSMCP 工具输出的最大 token 数

快速参考

最常用命令

bash
# 交互式会话
claude

# 快速提问
claude -p "how do I..."

# 继续对话
claude -c

# 处理文件
cat file.py | claude -p "review this"

# 用于脚本的 JSON 输出
claude -p --output-format json "query"

标志组合

使用场景命令
快速代码审查`cat file
结构化输出claude -p --output-format json "query"
安全探索claude --permission-mode plan
带安全性的自主运行claude --enable-auto-mode --permission-mode auto
CI/CD 集成claude -p --max-turns 3 --output-format json
恢复工作claude -r "session-name"
自定义模型claude --model opus "complex task"
精简模式claude --bare "quick query"
预算限制运行claude -p --max-budget-usd 2.00 "analyze code"

故障排除

命令未找到

问题: claude: command not found

解决方案:

  • 安装 Claude Code:npm install -g @anthropic-ai/claude-code
  • 检查 PATH 是否包含 npm 全局 bin 目录
  • 尝试使用完整路径运行:npx claude

API 密钥问题

问题: 身份验证失败

解决方案:

  • 设置 API 密钥:export ANTHROPIC_API_KEY=your-key
  • 检查密钥是否有效并有足够的额度
  • 验证密钥对请求模型的权限

会话未找到

问题: 无法恢复会话

解决方案:

  • 列出可用会话以找到正确的名称/ID
  • 会话可能在不活动一段时间后过期
  • 使用 -c 继续最近的会话

输出格式问题

问题: JSON 输出格式不正确

解决方案:

  • 使用 --json-schema 强制约束结构
  • 在提示中添加明确的 JSON 指令
  • 使用 --output-format json(而不仅仅是在提示中要求 JSON)

权限被拒绝

问题: 工具执行被阻止

解决方案:

  • 检查 --permission-mode 设置
  • 审查 --allowedTools--disallowedTools 标志
  • 对于自动化使用 --dangerously-skip-permissions(谨慎使用)

其他资源


Claude How To 指南系列的一部分