[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83340":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":12,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":28,"readmeContent":29,"aiSummary":9,"trendingCount":14,"starSnapshotCount":14,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},83340,"FeishuCodexBridge","LpcPaul\u002FFeishuCodexBridge","LpcPaul","Bridge Feishu\u002FLark bot messages to local Codex CLI with lightweight topic context management",null,"Python",93,9,6,0,41,3,"MIT License",false,"main",true,[22,23,24,25,26,27],"bridge","codex","feishu","lark","launchd","macos","2026-06-12 02:04:33","# FeishuCodexBridge\n\nFeishuCodexBridge 是一个本机常驻服务，用飞书机器人把消息转给本机 Codex CLI，再把 Codex 的文本结果回到飞书。\n\n它适合已经在本机使用 Codex、同时希望通过飞书私聊或群聊交代任务的人。\n\n## 它解决什么\n\n- 在飞书里和本机 Codex 对话。\n- 私聊主 Bot 自动管理长期上下文和话题切换。\n- 群聊里 @ 机器人后启动一个独立 Codex 会话。\n- Codex 长任务执行时，Bridge 保持任务上下文，不会因为 2 小时空闲规则切走话题。\n- 当前没有任务运行且空闲达到 2 小时后，Bridge 主动发送话题边界卡片，后续消息默认进入新话题。\n- 回复默认按手机通信软件可读格式约束：先给结论\u002F摘要\u002F判断，短段落，内容长时先给第一层摘要。\n- Codex 可以声明飞书交互卡片，Bridge 默认用 CardKit 2.0 发送可提交表单卡片，并把按钮点击续回同一个 Codex 会话。\n- 可选开启飞书文档能力：复杂长内容可以由 Bridge 创建成飞书文档，再把链接发回聊天。\n\n## 它不是什么\n\n- 不是飞书版终端。\n- 不是飞书工作流平台。\n- 不做 Codex 执行过程可视化。\n- 不把所有结果强制套成固定卡片模板；卡片由 Codex 按需声明。\n- 不做完整飞书文档协作平台；文档能力只负责创建文档、写入正文和回传链接。\n- 不内置飞书表格、多维表格或任务能力；这些由 Codex 自己通过正常工具路线处理。\n\n## 安装前准备\n\n你需要先准备两样东西：\n\n1. 本机已经安装并登录 Codex CLI。\n2. 一个飞书自建应用机器人的 `App ID` 和 `App Secret`。\n\n飞书机器人创建步骤见 [docs\u002Ffeishu-app-setup.md](docs\u002Ffeishu-app-setup.md)。\n\n如果你希望后续直接使用卡片按钮、飞书文档或一条命令创建群组，建议第一次配置应用时就按 [docs\u002Finitial-permissions.md](docs\u002Finitial-permissions.md) 把权限一次性申请好。\n\n安装完成后还需要按 [docs\u002Fpost-install.md](docs\u002Fpost-install.md) 做一次飞书后台验收：尤其要把 `card.action.trigger` 放到「已订阅的回调」并发布新版应用，否则点击卡片按钮会报 `code: 200340`。\n\n## 一键安装\n\nmacOS 用户可以运行：\n\n```bash\n\u002Fbin\u002Fbash -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FLpcPaul\u002FFeishuCodexBridge\u002Fmain\u002Fremote-install.sh)\"\n```\n\n脚本会提示你输入：\n\n- `Feishu App ID`\n- `Feishu App Secret`\n\n然后自动完成：\n\n- 安装 Python 依赖。\n- 探测 `codex` 和 `node` 路径。\n- 写入本机 `.env.feishu`。\n- 安装 launchd 后台服务。\n- 启动 Bridge。\n\n如果你不想使用远程安装脚本，也可以手动安装：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FLpcPaul\u002FFeishuCodexBridge.git\ncd FeishuCodexBridge\n.\u002Finstall.sh\n```\n\n## 服务管理\n\n```bash\n.\u002Fbridge status\n.\u002Fbridge restart\n.\u002Fbridge logs\n.\u002Fbridge follow-logs\n.\u002Fbridge uninstall\n```\n\n默认运行目录：\n\n```text\n~\u002FLibrary\u002FApplication Support\u002FFeishuCodexBridge\n```\n\n状态数据库：\n\n```text\n~\u002FLibrary\u002FApplication Support\u002FFeishuCodexBridge\u002Fstate.sqlite\n```\n\n## 飞书使用方式\n\n- 私聊机器人：进入长期主 Bot 入口，由 Bridge 管理话题切分。\n- 群聊 @ 机器人：启动一个新的 Codex 对话。\n- 群聊消息回复串：继续同一个 Codex 对话。\n- `\u002Fnew` 或 `新会话`：当前飞书容器重新开始一个 Codex 对话。\n- `\u002Fclear` 或 `清空上下文`：清空当前飞书容器绑定的 Codex 对话。\n- `\u002Fstatus` 或 `当前会话`：查看当前飞书容器绑定的 Codex 会话。\n- `继续上个话题`：私聊主 Bot 切回上一个话题。\n- `建群 测试` 或“创建一个只有我和机器人的群，名字叫测试”：Bridge 调用飞书创建一个包含当前用户和机器人的私有群聊。\n\n## 核心配置\n\n安装后配置文件在：\n\n```text\n~\u002FLibrary\u002FApplication Support\u002FFeishuCodexBridge\u002Fapp\u002F.env.feishu\n```\n\n常用变量：\n\n```bash\nFEISHU_APP_ID=cli_xxx\nFEISHU_APP_SECRET=xxx\nFEISHU_CODEX_WORKDIR=\"$HOME\"\nPYTHON_BIN=\u002Fpath\u002Fto\u002Fpython3\nNODE_BIN=\u002Fpath\u002Fto\u002Fnode\nCODEX_BIN=\u002Fpath\u002Fto\u002Fcodex\nFEISHU_CODEX_BACKEND=exec\nFEISHU_CODEX_MODEL=\nFEISHU_TOPIC_IDLE_SECONDS=7200\nFEISHU_TOPIC_NOTICE_POLL_SECONDS=60\nFEISHU_TASK_PROGRESS_SECONDS=7200\nFEISHU_ACK_TEXT=\"收到，我要开始干活了，稍等我\"\nFEISHU_GROUP_AUTO_REPLY_ENABLED=1\nFEISHU_GROUP_AUTO_REPLY_MAX_HUMAN_MEMBERS=1\nFEISHU_GROUP_AUTO_REPLY_CHAT_IDS=\nFEISHU_GROUP_MEMBER_CACHE_SECONDS=600\nFEISHU_CODEX_CARDS_ENABLED=1\nFEISHU_CARDKIT_ENABLED=1\nFEISHU_DOCS_ENABLED=0\nFEISHU_DOCS_FOLDER_TOKEN=\nFEISHU_DOCS_AUTO_MIN_CHARS=4500\n```\n\n`FEISHU_CODEX_BACKEND` 可选：\n\n- `exec`：默认值，沿用 `codex exec` \u002F `codex exec resume`。\n- `app-server`：使用 `codex app-server` JSON-RPC 协议创建\u002F继续线程并收集流式结果。当前版本先接通线程与回复；审批请求会被拒绝并让 Codex 继续处理，后续再接飞书按钮审批。\n\n## 卡片与文档能力\n\n卡片能力默认开启，且默认使用 CardKit 2.0。Codex 如果需要发交互卡片，会在最终回复中输出 `feishu-card` JSON 块；Bridge 会把 JSON 2.0 卡片创建成卡片实体，再按 `card_id` 发送，并把按钮点击或表单提交转回同一个 Codex 会话。\n\n飞书阅读确认不由 Bridge 做固定语句识别。用户通过飞书用“帮我读一下”“帮我理解一下”“总结一下这几篇文章”等非标准表达发来一篇或多篇文章时，由 Codex 自己判断是否生成阅读确认卡片。Bridge 只负责把 Codex 输出的卡片发出去，并把卡片反馈续回同一个 Codex 会话。\n\n阅读确认卡片的确认项数量不设固定条数。Codex 应根据文章长度、信息密度和可讨论价值决定拆解粒度：短文可以少，长文可以多，但每条都要有明确增量价值，并提供 `知道了`、`不感兴趣`、`展开讲讲` 或文本反馈入口。\n\n需要多选、表单和提交反馈时，Codex 应使用 JSON 2.0 的 `form` 容器和 `multi_select_static` 组件。Bridge 会把旧式 `checkbox_group` 测试卡片自动转换成 CardKit 2.0 表单，避免飞书接口返回 `unsupported type of block`。\n\n卡片提交后，Bridge 会立即向飞书返回卡片回调响应，并在后台给聊天发一条可见回执。默认模式会继续把提交内容交给 Codex 处理，并在完成后返回结果；如果某张卡片只需要确认收到，回调 `value` 可以设置 `requires_codex:false` 或 `feedback_mode:\"ack\"`，Bridge 就只发默认回执，不启动 Codex。\n\n## 建群能力\n\nBridge 支持明确的建群命令，例如：\n\n```text\n建群 测试\n创建一个只有我和当前机器人的群，名字叫测试\n```\n\nBridge 会用当前消息发送人的 `open_id` 加上当前应用机器人创建一个私有群聊，并返回新群 `chat_id`。该能力需要应用已申请并发布 `im:chat:create`，建议同时保留 `im:chat` 方便后续群管理。\n\n飞书文档能力默认关闭。开启前需要先在飞书开放平台给应用申请新版文档创建\u002F编辑权限，然后配置：\n\n```bash\nFEISHU_DOCS_ENABLED=1\nFEISHU_DOCS_FOLDER_TOKEN=可选的目标文件夹 token\n```\n\n开启后，Codex 可以输出 `\u003Cfeishu_doc title=\"标题\">正文\u003C\u002Ffeishu_doc>`，Bridge 会创建文档并把链接发回飞书。你也可以在飞书里发送 `\u002Fdocs` 查看当前文档能力状态。\n\n## 文档\n\n- [飞书机器人创建与权限配置](docs\u002Ffeishu-app-setup.md)\n- [初始权限清单](docs\u002Finitial-permissions.md)\n- [安装后必做检查](docs\u002Fpost-install.md)\n- [安装与卸载](docs\u002Finstall.md)\n- [权限说明](docs\u002Fpermissions.md)\n- [架构说明](docs\u002Farchitecture.md)\n- [故障排查](docs\u002Ftroubleshooting.md)\n- [版本管理](docs\u002Fversioning.md)\n\n## 版本\n\n当前版本：`0.5.0`\n\n版本记录见 [CHANGELOG.md](CHANGELOG.md)。\n",2,"2026-06-11 04:10:59","CREATED_QUERY"]