把飞书 接到 Codex 的控制面。
Codex Feishu 让飞书消息直接进入可续接的 Codex CLI 会话。项目绑定按 chat_id 持久化,本地会话可接管,同仓库自动串行,排队和运行态在飞书里直接可见;最终回复支持富文本和卡片,并默认收口成更干净的单条结果消息,再配合自然语言命令和 MCP 接口完成真实协作。
$ npm install -g codex-feishu
$ codex-feishu init --mode global
$ export FEISHU_APP_ID=cli_xxx
$ export FEISHU_APP_SECRET=***
$ codex-feishu doctor --remote
✓ codex-feishu start
✓ codex-feishu status
处理状态: queued
项目: repo-a
当前仓库正在被其他会话操作,
已进入排队。前方还有 1 个任务。
阻塞状态: running
~/.codex/sessions 里的本地会话。
不是按人各记各的,而是按私聊窗口或群聊上下文持续生效。
桥接器自己的 session 与本机 Codex 原生 session 能接到同一条链路里。
同 chat 内同项目串行,不同 chat 命中同一 project.root 也会自动排队。
知识库、飞书文档、多维表格、任务和运行态回复都走同一条控制链,不再靠贴链接人工搬运。
项目可见性、会话控制和服务级变更按最小权限分层,而不是所有 chat 一把钥匙。
飞书消息进入 Codex 之前,会先经过项目、会话和运行控制。
消息先进入项目绑定层
先取当前 chat 绑定的项目;没绑定就回退默认项目,而不是让每条消息都重新猜仓库。
会话优先续当前上下文
已有 active session 就直接续;没有的话,可通过 /session adopt latest 接上本机最近会话。
仓库并发在执行前收口
同一仓库根目录命中全局串行锁时,会先给出 queued 状态和占用原因,而不是静默等待。
Codex 在明确边界内运行
项目根目录、sandbox、shell、pre-exec 和超时策略都在桥接层内显式管理。
回复后仍保留控制面
audit、metrics、run state、session history 和卡片操作都会保留下来,并支持归档清理、项目级隔离和持续排障。
两种接入模式,覆盖个人开发到团队生产。
long-connection
通过官方 SDK WebSocket 长连接接入,不需要公网回调地址,本机开发和个人使用首选。
- 无需公网 HTTPS 地址
- 接入快,配置简单
- 支持文本、富文本、卡片回复
webhook
通过飞书事件订阅和卡片回调接入,适合团队共享服务和生产部署,功能最完整。
- 事件和卡片回调完整
- 支持卡片按钮交互
- 便于扩展和监控
为真实项目使用准备的关键能力,都在这一层里。
/project <alias> 会真正改写当前 chat 的默认项目
群里切一次,整群后续都落到同一个项目;私聊也会记住各自的当前项目。
/session adopt latest|list|<thread_id>
飞书侧不再只能续桥接器自己保存的 thread,也能接管本机 Codex CLI 的原生 session。
切项目后可自动接上最近会话
开启 project_switch_auto_adopt_latest = true 后,项目切换会优先保留当前 chat 会话,否则自动接最近匹配的本地 session。
queue key + project.root 双层串行
同项目 thread 不会乱写,不同群同时操作同一仓库也会被自动收口。
飞书知识库完整读写接入
支持 /wiki 搜索、读取、创建、改名、复制、移动和成员管理;/kb search 搜索项目本地文档。
既支持 stdio,也支持 HTTP/SSE MCP
运行 codex-feishu mcp,即可把项目列表、项目切换、会话接管和自然语言控制命令暴露给 OpenClaw 等客户端;远端接入支持多 token 轮换和 Bearer 鉴权。
项目记忆与群共享记忆
支持 /memory save/search/pin/forget/restore,SQLite + FTS5 检索,可配置 TTL、置顶策略和后台定时清理。
审计日志、健康探针、Prometheus 指标
内置 /healthz、/readyz、/metrics,支持 Alertmanager 告警和 Grafana 可视化,所有数据本地可控。
角色之外,再补 session / run / config / service 能力名单
可以把项目查看、会话控制、运行执行、配置修改、服务观察和服务重启拆开授权,而不是所有 operator 权限打包放开。
管理员控制面与动态配置
通过 /admin 命令动态维护管理员、群聊白名单、项目配置,支持配置历史快照和一键回滚。
从安装到真实联调,只需要沿着这条最短路径走一遍。
# 安装
npm install -g codex-feishu
codex-feishu init --mode global
# 检查
codex-feishu doctor
codex-feishu doctor --remote
# 启动
codex-feishu start
codex-feishu logs --follow
codex-feishu create-project repo-new /srv/codex/repo-new
codex-feishu mcp
# 项目管理
/projects
/project repo-a
/admin project create repo-new /srv/codex/repo-new
# 会话管理
/session adopt latest
/session list
# 自然语言命令
切换到项目 repo-a
接管最新会话
查看详细状态
-
npm
直接
npm install -g codex-feishu - GitHub Release tag 发布同步生成 tgz 资产
- GitHub Pages 官网继续走纯静态部署
- Docs README / docs / workflow 口径统一
一份最小配置就能跑起来,按需逐步扩展。
version = 1
[service]
default_project = "default"
reply_mode = "card" # text | post | card
[codex]
bin = "codex"
default_sandbox = "workspace-write"
[storage]
dir = "~/.codex-feishu/state"
[security]
allowed_project_roots = ["/srv/repos"]
admin_chat_ids = ["oc_admin_chat_1"]
[feishu]
app_id = "env:FEISHU_APP_ID"
app_secret = "env:FEISHU_APP_SECRET"
transport = "long-connection"
[projects.default]
root = "/srv/repos/repo-a"
session_scope = "chat"
只需设置 FEISHU_APP_ID 和 FEISHU_APP_SECRET 两个环境变量即可启动。
个人使用推荐 post(富文本),团队部署且需要卡片按钮时切换到 card。
用 codex-feishu bind <alias> <path> 绑定多个仓库,飞书里用 /project <alias> 切换。
allowed_project_roots 限制 Codex 可操作的仓库目录,生产环境请填明确路径。
安装、文档、版本和支持入口都可以从这里直接进入。
把飞书接成一个可管理、可续接、可落地的 Codex 工作入口。
适合需要项目路由、会话续接、并发保护和运行状态可见性的真实团队工作流。