非交互模式:-p、--continue、--resume 与程序调用

所属教程:Claude Code 从入门到大师级完整教程 预计阅读:28 分钟

交互式会话适合需要来回澄清的复杂工作;非交互模式(headless)则适合一次性查询、脚本调用、流水线集成与批量任务。本节讲清调用方式、输出格式、权限参数与会话恢复,避免在无人值守场景误用交互逻辑。

一、基本调用:claude -p

# 一次性纯文本查询
claude -p "说明这个项目的主要职责"

# 结构化 JSON 输出,便于程序解析
claude -p "列出所有对外接口" --output-format json

# 逐行流式 JSON 事件
claude -p "分析这份日志" --output-format stream-json --verbose

二、三种输出格式对比

格式形态适用场景
默认纯文本结果直接输出到 stdout人工查看、简单文本管道、说明性任务
--output-format json单个 JSON 对象,结果在 result 字段脚本读取、下游程序消费、需要结构化判定
--output-format stream-json --verbose每行一个 JSON 事件,init 事件开头实时处理、长任务进度观测、流式流水线

三、无人值守下的权限参数

参数行为建议用途
--permission-mode plan以计划方式只读调研,不落改动自动收集方案、影响分析、代码库扫描
--permission-mode dontAsk拒绝一切需要交互批准的动作无人值守批处理,遇到越界动作即收敛,而非卡住等待
--permission-mode auto由安全分类模型预审常规动作、拦截高风险动作授权清晰、常规类型的自动执行
--allowedTools预先批准明确工具集合,例如 Edit,Bash(git commit *)把可执行范围收窄到任务必需,其余不开放
最小授权原则

自动化调用应只批准完成任务必需的工具;不要为了减少报错而放开全部权限。写操作、网络发布、外部系统变更在无人值守时尤其要收紧,高风险动作留给人工确认(与第 8 章提交边界一致)。

四、会话恢复:--continue 与 --resume

五、何时不用 headless

本节小结与下一节预告

本节掌握了非交互调用、输出格式、权限收紧与会话恢复。下一节讲如何把 headless 稳定接入 CI、pre-commit 与定时脚本,并守住安全与可重放边界。

← 上一节:规范维护、漂移治理与版本管理  下一节:接入 CI、脚本与定时自动化任务 →

本教程目录

返回教程列表 · AI最前沿首页 · AI百科