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(默认)或 json | claude --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 中预配置允许的命令
# 这样即使不跳过权限,常用命令也会自动执行