用途:按 cron 计划或某个未来时刻触发 Codex 提示,状态保存在 .codex/schedule/ 下。官方明确建议持久化的周期性调度优先用 Codex app Automations;本技能捆绑的本地 CLI 只是终端回退,守护进程不运行就不会触发,它并非 OS 服务,终端退出后不存活。
主要能力:提供 8 个子命令 parse-schedule、add、list、cancel、status、run-due、daemon、doctor。固定间隔重复(如 /loop 10m)请使用单独的 loop 技能,本技能仅支持 cron 与一次性调度。
使用方式:状态变更命令都需 --state-root <dir>,约定路径为 .codex/schedule。cron 用标准 5 字段表达式:node scripts/schedule.mjs add --state-root .codex/schedule --cron "0 9 * * 1" --prompt "summarize open PRs" --cwd "$PWD"。一次性用 --at 传 ISO-8601 时间,运行一次后任务变为 cancelled。list、cancel <id>、cancel --all、status 用于管理。daemon 启动运行器,支持 --poll-ms(默认 5000)、--once、--max-runs、--codex-bin;run-due 执行单次到期检查,适合 CI 或手动测试。doctor 只读检查可写性、任务数、锁状态与 codex 可达性。
交付方式:--runner auto 依次选择 tmux-send(有 --tmux-target 或 TMUX_PANE 时)、resume-command、codex-exec。tmux-send 通过命名缓冲区粘贴提示并回车;resume-command 从 stdin 接收提示并在任务 --cwd 下运行。
限制:守护进程持单运行器锁,同一状态根下第二个守卫进程会在首个存活时失败,仅在锁被证明过期(PID 已死)时回收。每次运行记录在 .codex/schedule/runs/<taskId>/。--codex-arg 透传采用默认拒绝白名单,仅允许 --model/-m,其余如 --sandbox、--config、--ask-for-approval、--full-auto、--profile、--yolo 等一律拒绝;参数受限于特定字符集。脚本不会安装 OS cron、launchd 或任何系统服务,也不会输出绕过审批或沙箱的标志。完整状态与锁模式见 references/schedule-contract.md。