mcode exec 执行一次任务,不启动 TUI,适合自动化、批处理和可复现评测。它会使用当前配置的数据目录和模型,执行前需要已经登录或配置可用的 API Key Provider。最小调用
选择任务指令
从 0.4.7 起,普通mcode exec 任务可通过 --prompt-mode 选择系统指令:exec 任务。使用 --session 或 --continue 续跑时,所选模式必须与会话保存的模式一致。使用非默认模式的会话时,请再次显式传入对应的 --prompt-mode;旧会话缺少模式信息时,新建会话运行。指定本次思考强度
从 0.4.9 起,mcode exec 和 mcode exec review 支持 --effort,只覆盖本次运行:--effort 可单独使用,也可与 --model 一起使用;档位必须是所选模型支持的值。不支持思考强度的模型或无效档位会在任务开始前以非零退出码报错。覆盖值不会写回会话;之后通过 --session 或 --continue 续跑且不指定 --effort 时,仍使用会话原有的强度。#variant 属于模型标识,不能用 --model provider/model#high 代替 --effort high。输入方式
位置参数
stdin 文本
只有显式传入--input - 时才会读取 stdin:--input - 不能和位置参数 prompt 同时使用。stdin JSON
--input-format json 接受 JSON 字符串,或 { "prompt": "..." } 对象:附件
可以通过--file 添加文本、代码、日志、图片、视频或其他受支持文件。路径相对于 --cwd 解析:--file。参数参考
--session 和 --continue 不能同时使用。--permission ask 需要交互式宿主,Headless 会直接拒绝;需要人工确认时使用 TUI 或 ACP。输出格式
任务结果写入 stdout,诊断信息写入 stderr。这样可以把 stdout 安全地交给jq、CI artifact 或其他下游工具。text
输出最终回答文本,适合人工查看或简单 Shell 管道。json
输出一条稳定的ExecResult JSON:status 可能是 succeeded、failed、timeout、cancelled 或 limit_exceeded。error、model 和 usage 是可选字段,消费者应先判断 status。stream-json
输出换行分隔的、带版本字段的事件流,适合实时进度展示。事件包含schemaVersion、sequence、timestampMs、runId、sessionId 和 turnId。常见事件包括:exec.started、exec.completed;session.started、session.resumed;turn.started、turn.completed、turn.failed;item.started、item.updated、item.completed。
sequence 处理,并为未知事件保留兼容空间。结构化输出
--output-schema 接受内联 JSON 对象或文件路径。使用该参数时,最终回答必须是符合 Schema 的 JSON:status: failed,错误码为 STRUCTURED_OUTPUT_INVALID。--output-last-message 只在任务成功并完成 Runtime 关闭后原子写入;写文件失败也会报告为失败。Session 与恢复
在指定工作区继续已有 Session:超时、步数和取消
SIGINT、SIGTERM 或 SIGHUP 时,当前运行会被取消。CI 中建议同时设置超时和步数上限,并保存 stdout 与 stderr。退出码
脚本应同时检查进程退出码和 JSON 中的status:Shell 示例: