当你不在工作电脑身边但是又想Coding的时候,你也许会想到官方的Codex mobile,然后你就会发现它的连接非常繁琐,并且由于网络环境的关系你的手机要一直开着代理。使用了中转站或者共享账号的朋友也会发现,它并不支持API的方式进行远程控制。
friuns2/codex-mobile 正好提供了这层能力。它在工作机上运行一个基于 Codex app-server 的 Web 界面,可以从浏览器访问本机的项目和会话,也支持通过 Cloudflare Tunnel 等方式远程连接。

项目已经提供 Telegram Bot,但是由于众所周知的原因,使用TG并不是很方便,于是我参考 Telegram 集成的逻辑,为它增加了一个飞书 Bot:
- 手机通过飞书发送任务;
- 工作机上的 codex-mobile 将消息转发给指定的 Codex 会话;
- Codex 完成任务后,再把最终回复推送回飞书。
飞书支持使用长连接接收事件。工作机主动连接飞书服务器,因此不需要公网 IP,也不需要给 Bot 单独配置回调域名。
本文使用的是第三方项目和个人维护的 Fork,并非 OpenAI 或飞书官方集成。Bot 能够访问本机 Codex 会话并触发任务,请只在个人设备或可信环境中使用。
准备工作
开始之前,请确认工作机已经具备以下环境:
- Node.js 18 或更高版本;
- 已安装并能够正常使用 Codex;
- 可以创建飞书自建应用;
- 工作机能够持续联网,并在使用期间保持 codex-mobile 运行。
本文步骤基于 SoyaLeaf/codex-mobile main 分支。飞书集成对应的上游 PR尚未合并,因此暂时不能直接使用原始工程完成本文配置。
部署 codex-mobile
先克隆带有飞书集成的版本,并完成依赖安装和构建:
git clone https://github.com/SoyaLeaf/codex-mobile.git
cd codex-mobile
npm install --global pnpm
pnpm install
pnpm run build
npm install --global .
安装完成后,使用下面的命令启动:
codexapp --no-tunnel
这里使用 --no-tunnel,是因为飞书长连接不需要公网入口。除非你还需要从浏览器远程访问 codex-mobile,否则没有必要额外开启 Cloudflare Tunnel。
如果命令可以正常启动,并能在浏览器中打开 codex-mobile 界面,就可以继续配置飞书。
创建飞书机器人
打开飞书开放平台,登录后创建一个企业自建应用:
- 点击右上角的「创建应用」;
- 选择「企业自建应用」;
- 填写应用名称、描述和图标;
- 完成创建并进入应用管理页面。
记录应用凭证
在左侧菜单进入「凭证与基础信息」,记录应用的 App ID 和 App Secret。App ID 的格式类似 cli_xxxxxxxxxx。

App Secret 相当于机器人的密码,不要把它提交到代码仓库,也不要在截图中公开。
添加机器人能力
进入「添加应用能力」,找到「机器人」并点击「配置」,填写机器人名称等信息后保存。

配置长连接和消息事件
进入「事件与回调」的「事件配置」,选择「使用长连接接收事件」并保存。

然后添加接收消息事件:im.message.receive_v1。

配置权限并发布应用
按照当前实现,需要为应用开通与以下场景对应的权限:
im:message:send_as_bot:以机器人身份发送消息;im:message:获取与发送消息;im:message.group_at_msg:接收群聊中 @ 机器人的消息;im:message.p2p_msg:接收用户发给机器人的私聊消息。
飞书开放平台的权限名称和授权提示可能调整。如果平台提示补充权限,应以实际订阅的事件和发送消息所需的最小权限为准,不要给机器人添加与本文无关的权限。
最后创建应用版本并发布。建议把应用的可用范围限制为自己或少量可信测试成员。
在 codex-mobile 中连接飞书
保持 codexapp 运行,在侧边栏找到「Feishu」,依次填写:
- App ID;
- App Secret;
- 允许使用机器人的飞书用户
open_id。
open_id 是这里最重要的安全限制。推荐使用下面的方式获取自己的 ID:
- 先在允许列表中填写一个临时占位值,例如
pending,然后保存配置; - 在飞书中给机器人发送一条消息;
- 机器人会拒绝未授权用户,并在回复中显示发送者的
open_id; - 回到 codex-mobile,用真实的
open_id替换占位值并重新保存。

截图中的
*表示允许所有能够访问该机器人的飞书用户。它适合短暂排查问题,但不建议作为日常配置。任何被允许的用户都可能查看会话并向本机 Codex 发送任务。
配置会保存在工作机本地,其中包含 App Secret。请保护好当前系统账户和 Codex 配置目录,不要把相关配置文件上传或分享给其他人。
开始使用
连接成功后,可以先向机器人发送 /threads。机器人会按项目列出最近的 Codex 会话,点击其中一个会话即可完成绑定。

绑定后,直接发送文本就会在对应会话中启动任务。任务完成时,Bot 会把 Codex 的最终回复推送回当前飞书聊天。
常用命令包括:
/start:查看帮助并选择会话;/threads:列出最近的项目和会话;/newthread:创建并绑定一个新会话;/current:查看当前绑定的会话;/history:查看当前会话的最近记录;/status:查看连接和授权状态;/whoami:查看自己的飞书open_id;/help:查看完整命令说明。
飞书机器人还可以配置自定义菜单。把 /threads、/newthread 和 /history 等常用命令放到输入框上方,手机上使用会方便很多。
使用限制
这套方案解决的是“从飞书操作工作机上的本地 Codex”,因此有几个边界需要提前知道:
- 工作机必须保持在线,
codexapp进程也必须持续运行; - 只有已经和飞书聊天绑定的会话,才能把完成结果推送到对应聊天;
- 建议要远程使用的时候把codex GUI客户端关掉,实测发现不关掉存在消息无法返回的问题

共鸣
还没有评论,来留下第一条吧。