TellWorldAI 世界档案
问档案English

首页›实践›实践

实践

Claude Code 命令行参数速查

Claude Code 命令行的常用启动方式、子命令和参数分组整理:怎么开会话、怎么在脚本里只跑一次,怎么控制权限、模型和花费,以及参数不在帮助里时怎么办。

这篇适合谁

适合已经装好 Claude Code、想在终端里直接指定参数启动,或者要把它放进脚本的人。读完你能分清常用的启动方式,知道权限、模型、输出和花费各由哪些参数控制,并知道参数不在 --help 里时该怎么办。

它是什么

Claude Code 的命令行入口是 claude。不带参数运行,会进入交互式会话;加上 -p,它只处理一次请求、打印结果后退出,适合放进脚本或管道。命令和参数很多,下面按用途分组整理。[1]

准备

  • 已经安装 Claude Code,终端里能运行 claude。
  • 登录用 claude auth login。想按 API 用量计费而不是用 Claude 订阅,改用 claude auth login --console,它通过 Anthropic Console 登录。[1]
  • 用 claude auth status 查看登录状态。它默认输出 JSON,加 --text 改成便于阅读的文字;已登录时退出码为 0,未登录为 1,脚本里可以直接判断。[1]

启动方式

  • claude:进入交互式会话。[1]
  • claude "query":进入交互式会话,并带上第一条提示,例如 claude "explain this project"。[1]
  • claude -p "query":发送一次查询,打印结果后退出。[1]
  • cat logs.txt | claude -p "explain":处理通过管道传进来的内容。[1]
  • claude -c 续接当前目录下最近的一次会话,claude -r "<session>" "query" 按 ID 或名字恢复指定的会话。[1]

权限相关参数

这一类最需要看清楚,因为它们决定 Claude 能在不问你的情况下做什么。

  • --permission-mode 指定会话以哪种权限模式开始,可选 default、acceptEdits、plan、auto、dontAsk、bypassPermissions 和 manual。[1]
  • --dangerously-skip-permissions 跳过权限确认,等同于 --permission-mode bypassPermissions。[1]
  • --allowedTools 列出可以不经确认直接执行的工具,也接受 "Bash(git log *)" 这样的规则。[1]
  • --disallowedTools 是拒绝规则。只写工具名(如 Edit),会把这个工具从 Claude 的上下文里移除;写成 Bash(rm *) 这样带范围的规则,工具仍然可用,只拒绝匹配的调用。[1]
  • --tools 限制 Claude 能用的内置工具:"" 全部禁用,"default" 使用默认集合,"Bash,Edit,Read" 这样列出具体工具名的,则只开放这几个。[1]

模型和推理强度

  • --model 可以用别名(如 sonnet、opus、haiku、fable)或完整模型名指定本次会话的模型,它的优先级高于 model 设置和 ANTHROPIC_MODEL 环境变量。[1]
  • --effort 设置努力程度,可选 low、medium、high、xhigh、max 和 ultracode,实际可用的档位取决于模型。[1]
  • --fallback-model 在主模型过载或不可用(例如已经退役)时自动切换。它接受逗号分隔的列表,按顺序尝试,例如 claude --fallback-model sonnet,haiku。[1]

脚本和输出

  • --output-format 指定 -p 模式的输出格式,可选 text、json 和 stream-json。[1]
  • --bare 是精简模式:跳过 hooks、skills、插件、MCP 服务器、自动记忆和 CLAUDE.md 的自动发现,让脚本里的调用启动更快。[1]
  • --system-prompt 整体替换默认系统提示,--append-system-prompt 则把文字追加到默认系统提示的末尾。[1]
  • --mcp-config 从 JSON 文件或字符串加载 MCP 服务器;--strict-mcp-config 会跳过 .mcp.json 等其他位置配置的服务器,只加载通过 --mcp-config 传入的那些。[1]
  • 两个追加参数可以组合使用。下面这个例子里,Claude 收到的依次是默认系统提示、style.md 的内容、一个空行,再接上 Always reply in French。[1]
claude -p --append-system-prompt-file ./style.md --append-system-prompt "Always reply in French" "Summarize README.md"

花费上限

--max-budget-usd 只在 -p 模式下生效:估算的 API 花费达到这个金额后停止运行。子代理的花费也算在内。检查用的是 Claude Code 在客户端估算的数字,可能和账单对不上。[1]

常用子命令

  • claude agents 打开代理视图,用来监控和派发并行的后台会话,需要交互式终端;claude agents --json 则以 JSON 数组输出活跃的会话,便于脚本使用。[1]
  • claude mcp login <name> 为已配置的 MCP 服务器执行 OAuth 认证。在 SSH 里加上 --no-browser,会打印授权链接而不是打开浏览器。[1]
  • claude ultrareview [target] 非交互地运行 ultrareview,结果输出到标准输出。--json 输出原始数据,--timeout <minutes> 可以覆盖默认的 45 分钟。[1]
  • claude purge [path] 删除某个项目在本机的全部 Claude Code 数据,包括转录、任务列表、调试日志和提示历史,加 --dry-run 可以先预览。[1]

常见问题

  • **参数不在 --help 里**:claude --help 不会列出所有参数,所以不在帮助里不代表这个参数不能用。[1]
  • 子命令拼错:Claude Code 不会执行它,而是给出最接近的建议并退出,不会启动会话。例如 claude udpate 会提示 Did you mean claude update?。[1]
  • 装好了但跑不起来:claude doctor 在终端里只读地输出安装和设置诊断,不启动会话;在会话里运行 /doctor,还能应用修复。[1]
  • 怀疑配置出了问题:用 --safe-mode 启动,CLAUDE.md、skills、插件、hooks、MCP 服务器、自定义命令和自动记忆都不会加载,便于判断问题出在哪里。[1]

下一步

完整的参数表,以及每个参数需要的 Claude Code 版本,请以官方 CLI 参考为准。[1]

来源

  1. 1
    CLI referenceAnthropic Claude Code docs

引用本页: Claude Code 命令行参数速查. TellWorld, https://www.tellworld.net/zh/practice/practice-claude-code-cli-reference. 更新于 2026-11-14

相关动态