codex-lark 是一个本地运行的飞书 / Lark 机器人桥接层,用来把 Codex 接到你的工作流里。
它把消息链路收敛成:
飞书消息 -> 本机 codex app-server -> 飞书回复
核心原则是:Codex 操作留在本地,飞书只负责消息交互。
https://github.com/prinmoce/codex-lark
- 克隆仓库并进入目录。
- 安装依赖:
npm install - 配置
.env,然后启动:npm run feishu-bot
如果你只想先看效果,可以先读 docs/public-summary.md 和下面的版本/历程说明。
这个仓库不是简单搬运现成项目,而是基于真实使用场景做出来的持续迭代成果。
我的工作重点不是“把代码拷贝过来”,而是把一个 Codex 桥接系统反复打磨成可长期使用、可验证、可展示的工程化项目。
具体做法包括:
- 用 Agent / AI 帮我拆解需求、定位问题、收敛方案
- 根据真实运行反馈重做消息展示规则
- 根据审批和线程卡死问题补恢复逻辑、取消逻辑和自动放行逻辑
- 把测试、版本说明和开发历程持续回写到仓库里
- 让每次改动都能解释“解决了什么问题、为什么这样改、怎么验证的”
- 面向 Feishu / Lark 的本地桥接
- 支持线程绑定、线程切换、状态卡片、审批卡片、模型与推理强度管理
- 适合长期运行的个人开发者工作流
- 由
codex-im演进而来,保留了其本地桥接思路,并在稳定性和交互体验上做了多轮修复
- 飞书长连接机器人
- 普通对话回复
- 卡片回复与流式更新
- 线程绑定与切换
/codex bind绑定项目/codex where查看当前项目 / 线程/codex workspace查看当前会话已记录项目和线程/codex remove /绝对路径移除会话绑定项目/codex send <相对文件路径>发送当前绑定项目内的文件/codex switch <threadId>切换线程/codex message查看最近几轮消息/codex new新建线程/codex stop停止当前运行/codex model//codex model update//codex model <modelId>管理模型/codex effort//codex effort <low|medium|high|xhigh>管理推理强度/codex approve//codex reject审批卡片
下面这些内容,来自我在真实对话和真实运行中一轮一轮推进出来的改进,不是空泛概念:
- 把普通回复和状态回复分层,避免每次输出都带一大串默认模型、推理、审批和 sandbox 信息
- 把
/codex where做成专门的状态视图,只在需要时展示模型、effort、approval policy 和 sandbox - 把最近对话、线程切换、历史消息的展示重新整理成更清楚的分段格式
- 去掉首行缩进,过滤系统噪音,只保留用户真正关心的内容
- 把线程切换后的展示缩成更短的上下文,避免消息过长、信息噪音太多
- 把审批链路从“占位回复”推进到能真正工作、能恢复、能停止、能自动放行的状态
- 增加工作区级 allowlist 和记忆自动审批,减少重复确认
- 修复 RPC 超时、进程重启、阻塞线程识别等稳定性问题
- 补回归测试,确保每轮改动都能验证
这些工作组合起来,体现的是我在真实项目里持续做工程化收敛的能力,而不是单次写一个 demo。
这是后续面向小米 MiMo 的明确计划,不是已经完成的功能。
2026-05-10前完成 MiMo API 接入验证2026-05-20前发布v0.4.0- 在
v0.4.0中补上 MiMo 相关配置入口、模型选择说明和接入验证记录 - 保持现有 Feishu / Lark 桥接能力不回退
如果申请阶段需要强调路线图,这一段可以直接放进说明里。
npm install -g codex-lark
codex-lark feishu-bot开发态运行:
npm install
npm run feishu-bot项目通过 .env、~/.codex-im/.env 和当前 shell 环境变量加载配置,支持本地运行。
必填环境变量:
FEISHU_APP_IDFEISHU_APP_SECRETCODEX_IM_DEFAULT_CODEX_MODELCODEX_IM_DEFAULT_CODEX_EFFORTCODEX_IM_DEFAULT_CODEX_ACCESS_MODE
可选环境变量:
CODEX_IM_DEFAULT_WORKSPACE_IDCODEX_IM_FEISHU_STREAMING_OUTPUTCODEX_IM_WORKSPACE_ALLOWLISTCODEX_IM_CODEX_ENDPOINTCODEX_IM_SESSIONS_FILE
- 将仓库正式改名为
codex-lark - 保留
codex-im的主代码基线,并以codex-lark作为发布名 - 重写 README、仓库元数据和发布说明
- 增加发布前的忽略规则,避免把运行日志、快照和本地配置直接提交到仓库
- 将历史对话里的真实改进工作整理为可对外展示的项目成果
- 增加 GitHub 成果演示地址、快速开始、MiMo 接入计划、AI 驱动构建成果和申请表描述
- README 增加 MiMo 接入计划、快速开始和申请导向说明
- 仓库元数据补充 MiMo / feishu-bot / ai-assistant / claude-code 相关标签
- 将展示版文案和实用版结构保持在同一份 README 内,便于后续切回实用项目
- 上游
codex-im的稳定版本基础 - 已包含线程绑定、卡片交互、审批、RPC、工作区管理等核心能力
我先处理的是“看起来乱”的问题,而不是盲目加功能:
- 普通回复不再尾随默认状态串
/codex where专门展示状态信息/codex message只负责历史对话- 切换线程、历史消息、普通聊天各自分工
- 对话格式改成分段排版,减少密度和噪音
这一步解决的是信息层次问题,让输出先能读。
随后把审批相关能力从占位状态推进到可用状态:
- 让 approval policy 真正生效
- 接通 approve / reject / stop
- 补工作区 allowlist 和记忆自动放行
- 做恢复执行、取消执行和阻塞识别
- 用测试覆盖审批闭环
这一步解决的是执行控制问题,让系统能在真实场景里继续跑。
然后我继续压线程管理和历史显示:
- 缩减切换后的上下文
- 改良最近会话的展示格式
- 让历史记录更像“项目轨迹”而不是一堆原始消息
- 让卡片和命令回显更适合真实操作习惯
这一步解决的是操作连续性问题,让消息流不容易丢上下文。
后面重点是运行时稳定性:
- 处理 RPC 超时
- 处理卡住时的恢复提示
- 处理进程重启与阻塞线程
- 保证出错后不是静默失败
这一步解决的是可靠性问题,让项目能长期使用。
最后,我把 Agent / AI 变成持续协作工具:
- 用它做需求拆解
- 用它做文档整理
- 用它做回归测试和版本说明
- 用它做多轮重构的辅助
这一步的结果是:项目不只是“能跑”,而是能持续迭代、持续说明、持续展示。
如果申请表要求填写“请描述你使用 Agent 或 AI 驱动构建的具体成果”,可以这样写:
我使用 Agent / AI 作为持续协作的构建伙伴,把一个本地 Codex 桥接系统从基础接入一步步推进到可长期维护的工程化项目。整个过程不是一次性生成代码,而是围绕真实运行问题做多轮迭代:先用 AI 梳理线程、审批、历史展示和状态回显的问题,再把消息格式、权限策略、自动放行、恢复执行、超时重启和回归测试逐项补齐,最后把这些改进沉淀成 README、版本说明和开发历程。最终成果不是演示样例,而是一套可验证、可复用、可持续维护的本地桥接系统。
我用 Agent / AI 持续驱动完成了一个本地 Codex 桥接系统的工程化迭代。项目最初关注的是消息接入和线程管理,随后逐步补齐了输出格式治理、系统噪音过滤、审批链路、工作区 allowlist、线程恢复、RPC 超时处理、阻塞线程识别和回归测试等能力。每一轮改动都来自真实运行中的问题,不是简单堆功能,而是先定位问题、再拆解方案、再用 AI 协助实现和验证,并把结果回写到 README、版本说明和开发历程中。这个成果体现的是持续构建、持续验证和持续优化的能力。
- 这个仓库由
codex-im演进而来 - 公开仓库里不包含真实
.env、sessions.json、运行日志和脱敏前快照 - 如果你要排查问题,先看
docs/下的时间线和验证记录
- 上游思路来源:
codex-im - 相关实现参考:Lark / Feishu 机器人、Codex 本地桥接、线程状态与审批流处理