一次性执行(run)
mogick run 将一个任务交给 Agent,完成后退出。它适合 CI、Git hooks、定时任务和其他无需打开 TUI 的场景。Root 命令不接受 prompt,一次性任务必须显式使用 run。
mogick run "fix all lint errors in src/"
mogick run - < error.log # 从文件读取 prompt
cat error.log | mogick run - # 从管道读取 prompt输入与输出
prompt 可以直接作为参数传入,也可以用 - 从 stdin 读取。stdin 为管道时会自动进入非交互行为。
| 选项 | 说明 |
|---|---|
--json | 输出机器可读的 JSON 事件 |
-o, --output-last-message <file> | 将渲染器输出写入文件(26.9.11) |
--verbose | 输出详细工具 trace |
--logs-path <file> | 指定诊断日志文件 |
--non-interactive | 禁止交互提示 |
--resume <id> | 在已有会话中继续 |
--tool-call-permissions <policy> | 选择权限策略 |
--no-auto-upgrade | 跳过启动时的更新检查 |
26.9.11 中,虽然参数名是 --output-last-message,-o 实际重定向渲染器输出,可能包含 prompt、过程文本和工具事件,不能作为纯最终答案使用。--json 输出逐行 JSON(JSONL),不是单个 JSON 对象,也不是完整协议 trace。
mogick run --json -o run.jsonl "总结当前仓库"
mogick run --continue "继续上一次任务"事件类型包括 prompt、text.delta、thinking.open/delta/close、tool.start/done、step.start/finish、error 等,消费者需兼容可选字段与新增事件。历史记录使用会话导出。
执行模式和权限
run 固定使用 Agent 模式,不支持 --mode。需要 Plan 模式时,在 TUI 中按 Shift+Tab 切换,或由 ACP 宿主切换。
非交互运行无法弹出人工审批并等待选择。应根据任务显式配置权限,各策略的详细定义见工具权限策略。auto 下需要确认的操作会被拒绝;CI 场景优先使用 workspace 并对任务做范围限定,仅在完全隔离环境使用 yolo。
mogick run --tool-call-permissions read "Review the source code without changing files"退出码
| 退出码 | 含义 |
|---|---|
0 | 正常完成 |
1 | 执行失败 |
130 | 收到中断信号,例如 Ctrl+C / SIGINT |
143 | 收到 SIGTERM |
脚本应将所有非零值视为未正常完成,并保留日志用于排查。
工作目录与配置
Mogick 使用当前 Shell 工作目录作为工作区。不要使用 -C / --cd 或 -c / --config:
cd /path/to/repository
mogick run "Run the test suite"需要指定配置文件时使用 MOGICK_CONFIG_FILE;路径和环境变量见数据目录与环境变量。
脚本集成
检查退出码并保留输出。模型正常结束不等于测试通过:应独立执行项目明确的测试命令并检查结果。workspace 不会自动放行任意 Shell 命令;非交互运行时,需要确认的操作会被拒绝。提交或发布前应人工审查变更。