AI + 飞书 · 10 飞书 bot

在飞书里用 Claude Code 和 Codex:lark-channel-bridge 配置手册

飞书员工开源、飞书官网整理发布的 lark-channel-bridge,把本机的 Claude Code 或 Codex 变成一个飞书 bot,手机上也能继续跟它对话。它比第 08 篇的官方接入更轻,但不带企业管控。

它是什么,和飞书 CLI 怎么分工

lark-channel-bridge(项目名 Lark Coding Agent Bridge)是飞书员工 Zara 开源的小工具,飞书官网经作者授权整理发布了教程。它在你电脑上跑一个进程,把飞书里发给 bot 的消息转给本机的 claude 或 codex,再把回复以卡片形式发回飞书。代码在 GitHub 个人仓库,MIT 协议,不是 larksuite 组织维护的产品。

飞书 CLI(第 09 篇)lark-channel-bridge(本篇)
方向Agent → 飞书:让 Agent 读写飞书数据飞书 → Agent:在飞书里给 Agent 派活
你在哪操作终端里的 Claude Code / Codex飞书私聊、群聊、话题、文档评论,手机也行
飞书应用CLI 应用PersonalAgent 应用
一起用bridge 的每个 profile 带一份独立的 lark-cli 配置,Agent 在飞书对话里要改文档、建表格,走的还是 CLI

接进飞书之后多出来的东西:手机上继续聊、语音输入;一个群对应一个项目、一个话题对应一个会话,不用在一堆终端标签页里找;回复是能点按钮的卡片;可以把群里的需求合并转发给它;聊天记录都留在飞书里能搜。

1准备

2首次启动:扫码建 bot

在你自己打开的终端里执行(不要让 Agent 在后台跑):

npx -y lark-channel-bridge@latest run
# 想先固定用 Codex:加 --agent codex

实测输出:

未检测到飞书应用配置,进入扫码创建向导。
请用飞书 App 扫描以下二维码完成应用创建:
(终端里是一个二维码)
二维码有效期:约 60 分钟
也可以直接在浏览器打开:https://open.feishu.cn/page/launcher?user_code=XXXX-XXXX&from=sdk&source=node-sdk%2Flark-channel-bridge&tp=sdk

接下来用飞书 App 扫码,选择或新建一个 PersonalAgent 应用;终端如果问初始化哪个 Agent,选 Claude 或 Codex。完成后配置写进 ~/.lark-channel/config.json,去飞书里私聊这个 bot 就能用。

实测踩坑没有交互终端时(比如交给 Agent 在后台执行),它直接退出,不会给二维码:

Error: 当前没有配置,非交互模式无法完成扫码创建应用。请先在终端运行 `lark-channel-bridge run` 完成首次初始化,或传入 --app-id 和 --app-secret。

已经有 PersonalAgent 应用,跳过创建:lark-channel-bridge run --app-id cli_xxx,命令会提示输入 App Secret。国际版 Lark 加 --tenant lark。

不用先选项目目录。bridge 会建一个默认工作目录,启动后在飞书里发 /cd <路径> 切到真实项目。

本篇实测范围上面的向导输出是 0.7.1 版实测结果。扫码绑定需要用手机飞书确认、会在企业里新建一个应用,本手册没有走完这一步,之后的内容按项目 README 和飞书官网教程整理。

3后台常驻

run 是前台进程,适合第一次配置和调试。确认 bot 能正常收发消息后,Ctrl-C 停掉,改用系统服务常驻:

npm i -g lark-channel-bridge      # 服务命令必须先全局安装
lark-channel-bridge start
lark-channel-bridge status
lark-channel-bridge stop

飞书官网教程里给的是 npx -y lark-channel-bridge@latest start 一行命令。项目 README 特别说明:服务会记下 bridge 程序的路径,npx 的路径在 npm 临时缓存里,缓存一清服务就起不来。所以 run 可以用 npx,start 前先全局装。

macOS 上注册成 launchd 用户服务,Linux 是 systemd 用户服务,Windows 是任务计划程序。日志在 ~/.lark-channel/profiles/<profile>/logs/daemon/。电脑合盖睡眠 bot 就断了,官网教程建议 Mac 配合防休眠工具使用。

4Claude 和 Codex 同时接

一个 profile 就是一套独立的应用凭证、会话、工作目录和日志。只用一个 Agent 时默认 profile 就够;两个都要,就各起一个 bot:

lark-channel-bridge start --profile claude --agent claude
lark-channel-bridge start --profile codex --agent codex

lark-channel-bridge restart --profile codex   # 只重启 Codex,不影响 Claude 那边的任务
lark-channel-bridge profile list

在飞书里怎么指挥它

私聊直接发消息;群里默认要 @bot,@所有人 不算。在支持的云文档评论里 @ 它,它会在同一条评论下回复。不在下表里的斜杠命令,会原样转给 Claude / Codex。

用途命令作用
会话/new清空当前会话重新开始
/resume列出历史会话,点按钮恢复
/status看当前 profile、Agent、工作目录、会话和 lark-cli 身份
工作目录/cd <路径>切换项目目录(会重置会话)
/ws save 名字 · /ws use 名字 · /ws list保存、切换、列出常用项目
运行/stop停掉正在跑的任务,卡片底部也有终止按钮
/timeout 15 · /timeout off当前会话 15 分钟没输出就自动结束;关闭探活
设置/config回复用卡片还是纯文本、显不显示工具调用、群里是否必须 @
/invite · /remove放行或移除用户、群、管理员,见下文
排障/reconnect网络抖动后 bot 不回话时强制重连
/doctor 描述 · /ps把近期日志和故障描述交给 Agent 诊断;列出本机 bridge 进程

两道安全阀:谁能用、能动多少

谁能用:默认只有扫码创建应用的人能用,私聊和任何群里都只认你,别人发消息 bot 完全不理。要放行别人,由你或管理员在飞书里发:

想做什么命令
让某个同事能私聊 bot/invite user @同事
让当前群里所有人都能用在该群发 /invite group
加一个共同管理员/invite admin @同事

改动下一条消息就生效,不用重启。注意云文档评论例外:能在文档里评论并 @ bot 的人都能触发它。

能动多少:新建的 profile 默认是 full,对应 Claude 的 bypassPermissions、Codex 的 danger-full-access,也就是不再逐条确认。飞书里发来的一句话就能让本机 Agent 执行任意命令,建议按需收紧:

bridge 设置Claude Code 权限模式Codex 模式
full(默认)bypassPermissionsdanger-full-access
workspaceacceptEditsworkspace-write
read-onlyplanread-only

在 ~/.lark-channel/config.json 对应 profile 下改 permissions 字段(只改这个字段,别整份覆盖):

"permissions": {
  "defaultAccess": "workspace",
  "maxAccess": "workspace"
}

工作目录只是 Agent 的当前目录,不是沙箱,Agent 实际能访问哪些文件还是看上面的权限模式。飞书 CLI 这边,每个 profile 默认 bot-only,只用应用身份;你授权个人数据后才切到 user-default,/status 里显示为 lark-cli: app 或 lark-cli: user-ready。

常见问题

现象处理
bot 不回话本机 claude / codex 没登录,或会话指向的目录已经不存在。发 /status 看,/new 通常能解决
卡片停在最后一帧不动Agent 子进程卡住了,发 /timeout 10 打开探活,或 /stop
发的图片 Agent 说看不到升级到最新版,0.1.0 之前有文件名去重的 bug
后台服务起不来是不是用 npx 执行的 start,改成全局安装后再 start
用 Claude 订阅额度跑bridge 走的是 claude -p 非交互模式,额度怎么算以 Anthropic 帮助中心当前说明为准

外部测评

官方资料