【免费下载链接】codex-mobile
🚀 Run Codex Mobile Anywhere: Linux, Windows, or Termux on Android 🚀
codex-mobile 是一款可以在 Linux、Windows 和 Android(Termux)上运行的 Codex 移动端 Web 界面。它内置了线程心跳(Thread Heartbeat)和项目 Cron 自动化两种机制,可以按计划在指定线程或指定项目目录中自动发起 AI 任务,让 AI 在你离线时也能持续干活。本文将从零讲清这两种自动化的创建、调度与日常管理。
两种自动化,一次看懂
codex-mobile 的自动化分为两种作用域,理解它们的区别是配置的前提:
| 类型 | 作用范围 | 调度方式 | 支持 Run now | 适用场景 |
|---|---|---|---|---|
| 线程心跳(Thread Heartbeat) | 绑定到某一个具体线程(target_thread_id) | RRULE 定时 | ✅ | 定期跟进、巡检某个对话 |
| 项目 Cron(Project Cron) | 绑定到一个或多个项目目录(cwds) | RRULE 定时 | ❌ | 在项目里周期性执行开发任务 |
简单来说:想让 AI 定期"回访"某个对话,用线程心跳;想让 AI 定期在某个代码项目里干活,用项目 Cron。两者都保存在本地 Codex 目录下,无需额外服务。
第一步:进入自动化配置入口
为线程创建心跳自动化
在侧边栏找到一个目标线程,点击右侧的更多(⋮)菜单;
未绑定任何自动化时,菜单显示Add automation…;已有自动化则显示Manage automations…;
点击后弹出自动化管理器,填写四个核心字段:
- Name:自动化名称,便于日后识别;
- Prompt:每次触发时发送给 AI 的指令,例如"检查最近提交并汇总问题";
- Schedule:运行计划,见下文;
- Status:
Active(启用)或Paused(暂停)。
一个线程可以挂多个心跳自动化,彼此独立编辑、独立删除——移除其中一个不会影响同一线程上的其他自动化。
为项目创建 Cron 自动化
操作路径与线程完全类似:在侧边栏点击项目行的点状菜单,选择Add automation…(已有自动化时为Manage automations…)。系统会在保存前把项目的显示名解析为真实的项目绝对路径,确保 Codex 调度器在正确的目录里执行;未解析出绝对路径的项目无法保存,避免"跑错地方"。
一个项目 Cron 记录可以同时关联多个项目目录;从其中一个项目编辑或删除关联时,其他项目的关联会保留,只有最后一个关联被移除时自动化才会真正删除。
三种方式设置运行计划
调度器基于 RRULE 表达式,但界面提供了三种填写方式,新手用前两种即可:
- Daily(每天定时):选择"Run every day at"并指定时间,自动生成如
FREQ=DAILY;BYHOUR=9;BYMINUTE=0; - Interval(间隔执行):填写"每 N 分钟 / 小时 / 天"运行一次,自动生成
FREQ=MINUTELY;INTERVAL=...等形式; - RRULE(高级):直接手写下限更高的 RRULE 字符串,适合复杂周期。
无论哪种方式,界面下方都会显示计划预览(例如runs daily at 09:00),保存前一眼确认即可。
立即执行:线程心跳的 Run now
线程心跳管理器中提供Run now按钮,不用等下一次定时 tick,立刻手动触发一次。它的工作原理很友好:
- 后台校验
threadId与automationId后,把一条标准心跳载荷(包含automation_id、current_time_iso、instructions)追加到该线程的持久化队列; - 若线程空闲,任务立即开始;若线程正在运行,任务按队列顺序等待,不会打断当前对话;
- 触发后,线程中会出现一张标注为
Sent via automation的用户侧提示卡片,显示解析后的指令文本(而非原始 XML),方便你确认自动化确实执行了。
项目 Cron 自动化不提供 Run now,因为它是面向目录调度的,手动执行入口只保留在线程心跳上。
Automations 面板:统一管理所有自动化
点击侧边栏的/automations路由,可以打开全局自动化面板,线程心跳和项目 Cron 会合并在同一列表中:
- 顶部显示
total / active / paused统计,并提供New automation与Refresh按钮; - 排序规则:激活中的排前面、暂停的排后面,同组内按创建时间新→旧;
- 点击任意一行,右侧详情区展示 Status、Schedule、Target、ID 与 Prompt,并可直接进入编辑器。
面板实现位于 AutomationsPanel.vue,调度描述逻辑见 SidebarThreadTree.vue 中的describeAutomationSchedule。
数据存在哪里?
所有自动化记录都是本地 TOML 文件,存放在:
$CODEX_HOME/automations/<automation-id>/automation.toml(默认~/.codex)。线程心跳记录带target_thread_id,项目 Cron 记录带cwds数组,两者共存互不干扰。删除整个线程时,其上的所有心跳自动化会一并清理。
服务端解析与序列化逻辑在 codexAppServerBridge.ts,前端 API 封装在 codexGateway.ts。如果想核对行为细节,可以阅读这两份手动测试用例:
- tests/automations/thread-heartbeat-automations.md
- tests/automations/project-automations-and-automations-panel.md
常见问题
Q:为什么保存项目自动化时报错?通常是因为项目的显示名还没解析成绝对路径(比如文件夹选择器里的手输路径未确认)。请先确保项目行显示的是真实工作目录。
Q:删除一条自动化会影响同一线程/项目的其他自动化吗?不会。编辑和删除都同时指定threadId/项目与automationId,只移除当前这一条。
Q:自动化运行会把原始 XML 显示在对话里吗?不会。有效的心跳载荷会被渲染成Sent via automation卡片,只展示指令文本;不完整的载荷则按普通消息处理,不会被误标为自动化运行。
Q:自动化执行期间我在和 AI 对话会怎样?不会被打断。心跳任务进入线程队列排队,等当前回合结束后按序执行。
小结
codex-mobile 的自动化能力可以概括为一句话:线程心跳管"定期回访对话",项目 Cron 管"定期进项目干活"。两者共用同一套编辑器、面板与本地 TOML 存储,配合 Daily / Interval / RRULE 三种调度方式和线程心跳的 Run now 手动触发,足以覆盖绝大多数"让 AI 自动干活"的场景。
【免费下载链接】codex-mobile
🚀 Run Codex Mobile Anywhere: Linux, Windows, or Termux on Android 🚀
相关推荐
Frappe Books 自动更新,一次讲透:检测、下载、安装与数据迁移的完整链路
Frappe Books 自动更新,一次讲透:检测、下载、安装与数据迁移的完整链路 Frappe Books 是一款免费开源的会计软件,所有账簿数据都存放在本地
桌面应用企业应用StateM Stop Hook 自动循环实战:让 Codex 与 Claude Code 干完活再收工
StateM Stop Hook 自动循环实战:让 Codex 与 Claude Code 干完活再收工 StateM 是一款面向 AI Agent 长任务的
用WeSight定时任务让AI Agent自动干活:Cron调度与结果投递完整指南
用WeSight定时任务让AI Agent自动干活:Cron调度与结果投递完整指南 WeSight 是一个开源桌面 AI Agent 工作台,内置的 定时任务
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考