把飞书变成本机 Codex 控制台:一个可多项目复用的小工具
把飞书变成本机 Codex 控制台:一个可多项目复用的 Feishu Codex Service
前言
最近我在做一个真实项目测试时遇到一个很实际的问题:我希望在飞书里直接给本机 Codex 发需求,比如“继续测试服务管理模块”“把 Excel 问题清单发我”“切换到另一个项目修 bug”。最初我写了一个项目内临时桥接脚本,能收到飞书消息,也能调用 Codex,但连续发几条消息后容易阻塞:前一个 Codex 任务没结束,后面的消息就像沉进队列里,体验很差。
于是我把它整理成了一个独立的小工具:Feishu Codex Service。
源码包下载地址:
https://download.csdn.net/download/tiandingtong/92897294
它不是某个业务项目的一部分,而是一个本机全局服务。你可以把它理解成:
飞书消息 -> 本机 Python 长连接服务 -> Codex CLI -> 项目工作区
支持多项目、连续会话、队列串行、文件回传和 Windows 登录自启动。
这个工具解决什么问题
如果你经常用 Codex、Claude Code、Cursor 这类 AI 编程工具,通常会遇到几个痛点:
- 人不在电脑前时,不方便持续给 AI 发任务。
- 多个项目之间切换麻烦,AI 会话上下文容易混乱。
- 测试报告、日志、Excel 清单等本地文件,不方便及时同步到团队群。
- 临时脚本能跑,但不能长期稳定运行,重启电脑后还要手动启动。
- 群聊里连续发几条需求时,任务容易互相抢占或丢上下文。
Feishu Codex Service 的目标就是把飞书变成一个轻量的 AI 编程控制台。
功能概览
核心能力如下:
| 能力 | 说明 |
|---|---|
| 飞书长连接 | 使用飞书自建应用的长连接事件接收消息 |
| 调用 Codex | 本机通过 codex exec 执行真实任务 |
| 多项目 | 通过 projects.json 或飞书命令添加项目 |
| 连续会话 | 每个 chat + project 保存一个 Codex session |
| 队列串行 | 同一个飞书会话内任务按顺序执行 |
| 文件回传 | 支持把项目内文件发回飞书 |
| 自启动 | 支持 Windows 登录自动启动 |
| 迁移安装 | 支持打包后复制到其他电脑使用 |
架构设计
整体结构很简单:
飞书用户
|
| 私聊机器人 / 群里 @ 机器人
v
飞书开放平台长连接事件
|
v
feishu_codex_service.py
|
| 根据 chat_id 排队
| 根据 project 找工作目录
| 根据 chat + project 恢复 Codex session
v
codex exec / codex exec resume
|
v
本机项目工作区
服务只做调度,不替代 Codex 的能力。真正的代码理解、测试执行、文件修改还是由 Codex 在本机完成。
目录结构
源码包核心文件:
feishu_codex_service.py
projects.json
README.md
setup-credentials.ps1
start-service.ps1
stop-service.ps1
status-service.ps1
restart-service.ps1
install-startup-shortcut.ps1
uninstall-startup-shortcut.ps1
install-scheduled-task.ps1
uninstall-scheduled-task.ps1
install-on-new-computer.ps1
pack-service.ps1
飞书应用准备
需要一个飞书自建应用,并启用机器人能力。
建议权限:
im:message:send_as_bot
im.message.receive_v1 事件订阅
im:message.p2p_msg:readonly
im:message.group_at_msg:readonly
im:resource:upload 或 im:resource
还要在事件与回调里选择长连接接收事件,并订阅 im.message.receive_v1。
注意:权限或事件订阅修改后,需要重新发布应用版本,否则本地服务可能连上了,但收不到消息或发不了文件。
安装步骤
下载源码包后,解压到任意目录,在解压目录运行:
powershell -ExecutionPolicy Bypass -File .\install-on-new-computer.ps1
它会把工具复制到:
%USERPROFILE%\.codex\feishu-codex-service
然后配置飞书凭据:
powershell -ExecutionPolicy Bypass -File $HOME\.codex\feishu-codex-service\setup-credentials.ps1 -AppId cli_xxx
命令会提示输入 App Secret。App Secret 不会写入源码目录,而是写入 Windows 当前用户环境变量。
启动服务:
powershell -ExecutionPolicy Bypass -File $HOME\.codex\feishu-codex-service\start-service.ps1
查看状态:
powershell -ExecutionPolicy Bypass -File $HOME\.codex\feishu-codex-service\status-service.ps1
停止服务:
powershell -ExecutionPolicy Bypass -File $HOME\.codex\feishu-codex-service\stop-service.ps1
设置登录自启动
推荐用启动文件夹快捷方式,不需要管理员权限:
powershell -ExecutionPolicy Bypass -File $HOME\.codex\feishu-codex-service\install-startup-shortcut.ps1
取消自启动:
powershell -ExecutionPolicy Bypass -File $HOME\.codex\feishu-codex-service\uninstall-startup-shortcut.ps1
如果你的 Windows 用户有计划任务权限,也可以使用:
powershell -ExecutionPolicy Bypass -File $HOME\.codex\feishu-codex-service\install-scheduled-task.ps1
配置项目
编辑:
%USERPROFILE%\.codex\feishu-codex-service\projects.json
示例:
{
"default_project": "demo-project",
"projects": {
"demo-project": {
"name": "示例项目",
"cwd": "D:\\workspace\\demo-project"
}
}
}
也可以在飞书里直接添加:
/codex add-project yly-project D:\workspace\ls_work\yly-project
切换当前会话默认项目:
/codex use yly-project
指定项目执行:
/codex in yly-project 帮我检查最近一次测试报告
飞书里的常用命令
/codex help
/codex projects
/codex use <project>
/codex in <project> <需求>
/codex add-project <alias> <cwd>
/codex status
/codex reset
/codex cancel
/codex file [project] <路径>
私聊机器人或群里 @ 机器人时,也可以不写 /codex,直接发需求。
文件回传
例如把项目里的 Excel 发回飞书:
/codex file yly-project output/changes/test-report.xlsx
默认只允许发送项目目录内文件。如果确实需要允许绝对路径文件,可以设置:
[Environment]::SetEnvironmentVariable("FEISHU_ALLOW_ABSOLUTE_FILES", "1", "User")
不建议默认打开这个能力。
安全建议
- 不要把 App Secret 写入源码包、仓库或博客截图。
- 建议配置
FEISHU_ALLOWED_SENDER_IDS,只允许指定用户调用。 - 群聊里建议保留 @ 机器人触发,不要让所有普通消息都触发任务。
- 发布前检查压缩包,排除
state.json、logs、__pycache__、dist、.env等文件。 - 这个工具会调用本机 Codex 执行任务,本质上等价于允许飞书消息驱动本机工作区操作,生产使用要控制权限范围。
白名单示例:
[Environment]::SetEnvironmentVariable("FEISHU_ALLOWED_SENDER_IDS", "ou_xxx,open_id_xxx", "User")
关闭无前缀对话,只响应 /codex:
[Environment]::SetEnvironmentVariable("FEISHU_ACCEPT_NO_PREFIX", "0", "User")
实现要点
核心服务使用 Python 编写,依赖飞书官方 SDK:
python -m pip install lark-oapi==1.6.5
接收到消息后,服务会做几件事:
- 解析飞书文本消息。
- 根据
chat_id放入队列。 - 根据当前飞书会话找到默认项目。
- 如果已有 Codex session,调用
codex exec resume。 - 如果没有 session,创建新的
codex exec任务。 - 读取 Codex 输出,并回复到飞书消息线程。
队列的意义很大。没有队列时,用户连续发几条飞书消息,多个 Codex 子进程可能同时抢同一个项目目录,轻则输出混乱,重则文件互相覆盖。现在同一个飞书会话按顺序执行,体验稳定很多。
适合什么人
这个工具适合:
- 已经在本机使用 Codex CLI 的开发者。
- 希望在飞书里远程管理 AI 编程任务的人。
- 希望把测试报告、构建结果、Excel 清单自动同步到群里的团队。
- 想给多个项目做统一 AI 工作入口的小团队。
不适合:
- 完全不使用本机 Codex CLI 的场景。
- 需要多租户权限、审计、配额、强安全隔离的企业级平台。
- 希望公网 SaaS 化托管的场景。
常见问题
服务启动了但飞书没回复
检查:
powershell -ExecutionPolicy Bypass -File $HOME\.codex\feishu-codex-service\status-service.ps1
重点看日志里是否连接了飞书长连接,以及飞书应用是否发布了消息接收事件和发送消息权限。
文件发不出去
检查飞书权限里是否开通:
im:resource:upload 或 im:resource
重启电脑后没自动启动
重新安装启动快捷方式:
powershell -ExecutionPolicy Bypass -File $HOME\.codex\feishu-codex-service\install-startup-shortcut.ps1
换电脑怎么安装
把源码包复制到新电脑,解压后运行:
powershell -ExecutionPolicy Bypass -File .\install-on-new-computer.ps1
然后重新配置 App Secret 和项目路径。
总结
Feishu Codex Service 的思路很朴素:不做复杂平台,只把飞书消息稳定地转给本机 Codex,并把结果回传到飞书。它解决的是“AI 编程工具如何进入团队日常沟通流”的问题。
如果你已经在用 Codex,又希望在飞书里随时安排任务、获取报告、切换项目,这个小工具可以作为一个轻量起点。
更多推荐

所有评论(0)