CLI 启动参数完整参考

0 阅读3分钟

CLI 启动参数完整参考

claude 命令支持以下启动参数,可以在交互模式和非交互模式下使用。


基础用法

claude [选项] [初始提示]
claude [选项] < 输入文件

完整参数列表

核心参数

参数简写说明示例
--version-v显示当前安装的版本号claude --version
--help-h显示帮助信息claude --help
--model <ID>-m指定使用的模型claude --model claude-opus-4-6
--dir <路径>-d指定工作目录(默认为当前目录)claude --dir ~/projects/myapp
--print-p非交互模式:打印输出后退出claude -p "解释这段代码"

认证参数

参数说明示例
--api-key <KEY>直接指定 API Key(优先于环境变量)claude --api-key sk-ant-xxx

输出控制

参数说明示例
--no-color禁用 ANSI 颜色输出(适合日志记录)claude --no-color
--output-format <格式>输出格式:text(默认)或 jsonclaude --output-format json

权限控制

参数说明风险等级
--dangerously-skip-permissions跳过所有权限确认,自动执行所有操作🔴 高风险

注意--dangerously-skip-permissions 会允许 Claude 执行任意命令(包括删除文件、推送代码等),仅在完全受控的自动化环境中使用。

调试参数

参数说明示例
--debug开启调试模式,输出详细日志claude --debug
--verbose显示更详细的操作信息claude --verbose

使用模式

模式一:交互模式(最常用)

# 最简启动
claude

# 在指定目录下启动
claude --dir /path/to/project

# 用更强的模型启动
claude --model claude-opus-4-6

模式二:非交互模式(脚本/CI)

# 执行单次任务,输出后退出
claude -p "列出 src/ 目录下所有的 TypeScript 文件"

# 从文件读取提示
claude -p < my-prompt.txt

# 管道输入
echo "解释这段代码" | claude -p

# 结合文件内容
cat error.log | claude -p "分析这个错误日志的根因"

模式三:JSON 输出(程序化处理)

# 输出 JSON 格式(方便脚本解析)
claude --output-format json -p "列出 3 个代码改进建议"

# 输出示例:
# {
#   "result": "...",
#   "usage": { "input_tokens": 120, "output_tokens": 340 },
#   "model": "claude-opus-4-6"
# }

模式四:读取文件内容作为上下文

# 将文件内容作为初始上下文(非交互模式)
claude -p "分析这个文件的问题" < src/auth.ts

# 组合多个文件(bash heredoc)
claude -p "对比这两个文件" <<EOF
文件1内容:$(cat file1.ts)
文件2内容:$(cat file2.ts)
EOF

参数优先级

当同一配置存在多个来源时,优先级从高到低:

命令行参数
    > 环境变量(ANTHROPIC_API_KEY 等)
    > 项目级 settings.json(./.claude/settings.json)
    > 全局 settings.json(~/.claude/settings.json)
    > 默认值

实用组合示例

# 场景一:在 CI/CD 中自动执行代码检查
claude --dangerously-skip-permissions \
       --no-color \
       --output-format json \
       -p "检查 src/ 目录下的所有 TypeScript 类型错误"

# 场景二:临时用更强的模型处理复杂问题
claude --model claude-opus-4-6 --dir ~/projects/complex-app

# 场景三:调试 Claude Code 本身的问题
claude --debug 2>debug.log

# 场景四:脚本中批量处理文件
for file in src/**/*.ts; do
  echo "检查 $file..."
  claude --no-color -p "这个文件有没有未处理的 Promise?" < "$file"
done

常见问题

Q:--dangerously-skip-permissions 和 settings.json 的 allow: ["*"] 有什么区别?

  • allow: ["*"]:允许所有工具调用,但仍然提示用户(只是自动批准)
  • --dangerously-skip-permissions:完全跳过提示,直接执行,无法审计

Q:在 CI 中使用时,如何避免交互式确认打断流程?

# 推荐:使用 --dangerously-skip-permissions(仅限受控 CI 环境)
claude --dangerously-skip-permissions -p "运行测试并报告结果"

# 或者:在 settings.json 中预配置允许的命令
# 这样即使不跳过权限,常用命令也会自动执行