核心用法
Codex Autopilot 是一套在 macOS 上运行的自动化工作流系统,通过 tmux 会话多路复用同时管理多个 Codex CLI 编码会话。核心工作流由 watchdog.sh 驱动,以可配置间隔轮询所有项目窗口,检测 Codex 状态(工作中/空闲/等待权限/异常),并执行对应操作:空闲时自动催办、权限提示时自动处理、上下文压缩时轮换日志、任务队列非空时自动派单。
系统依赖 launchd 实现定时调度,通过 config.yaml 集中管理多项目路径、时间阈值(活动/空闲判定)、安全上限(日发送量、连续失败次数)、通知渠道(Discord/Telegram)及调度策略(轮询或优先级)。状态机在各脚本间共享:codex-status.sh 捕获 tmux 面板输出,tmux-send.sh 向指定窗口注入按键,task-queue.sh 维护优先级任务队列,permission-guard.sh 处理交互式权限确认。
显著优点
- 多项目并行:单守护进程同时 orchestrate 多个 Codex 会话,避免人工切换窗口
- 无人值守:自动检测空闲与卡死,结合 nudge 与 fallback 机制维持长时间运行
- 安全阈值:内置日发送上限、连续失败熔断、循环输出检测,降低 API 费用失控风险
- 可扩展通知:支持 Discord webhook 与 Telegram Bot 双向推送,便于远程监控
- 任务队列化:YAML 定义任务,支持优先级与状态追踪,实现半自动化需求流转
潜在缺点与局限性
- 平台锁定:launchd 与 tmux 绑定 macOS,Linux 用户需自行替换为 systemd+screen
- 无沙箱隔离:脚本以用户身份直接操控 tmux 会话,恶意 prompt 可执行任意 shell 命令
- 状态文件风险:
state/与task-queue/目录若权限配置不当,可能导致状态篡改或敏感信息泄露(Discord webhook URL、Telegram token 以明文存储于 YAML) - Codex CLI 依赖:紧密耦合 OpenAI Codex 的终端交互协议,若官方 CLI 更新输出格式,状态检测可能失效
- 缺乏网络隔离:无出站流量限制,泄露的 token 可直接调用 OpenAI API
适合人群
- 需在单台 Mac 上同时推进多个代码库的个人开发者或小型团队技术负责人
- 希望将 Codex CLI 从"交互式工具"升级为"后台自动化服务"的重度 AI 辅助编码用户
- 具备 bash/tmux 基础、能自行审计脚本并承担 API 费用风险的高级用户
常规风险
| 风险类型 | 说明 |
|---------|------|
| API 费用失控 | 自动循环可能因配置错误或循环检测失效导致 token 消耗激增 |
| 代码污染 | 自动执行未经审查的 prompt 可能引入安全漏洞或破坏性变更 |
| 凭证泄露 | `config.yaml` 中的 webhook 与 bot token 需严格限制文件权限(建议 600) |
| 系统稳定性 | 脚本以 launchd 常驻运行,死循环或资源泄漏可能影响宿主机 |
| 合规隐患 | 自动提交代码若涉及敏感仓库,可能违反企业代码审查政策 |