前言¶
在 DSH 里让 Agent 读企业飞书里的云文档、表格或群消息,常见做法是走 bash 调用 lark-cli。DSH 的 bash 在 workspace-write 沙箱里执行,而 lark-cli 刷新用户令牌需要写本机凭据库,沙箱会拒绝这次写入,用户身份调用往往时通时不通。自己写一层飞书 OpenAPI 又意味着维护凭据与 scope,和「用已有 CLI 登录态」不是同一条路。
下面介绍社区插件 transsioner-link(npm 包名 transsioner-cli)。它在宿主进程里直接 spawn lark-cli,复用系统里唯一那份凭据,把云文档、电子表格、多维表格、画板、评论、妙记以及群列表与群消息等能力登记成 DSH 只读工具;仓库不含任何凭据,每人用自己的账号授权。
这是什么¶
Transsioner-CLI · 飞书连接器 由维护者 canadaeee 发布,分类为联网工具。定位可以概括成:不重新实现飞书 API,不保存凭据,不缓存正文——每次调用都是实时读取,可见范围等于你此刻在飞书里的权限。
仓库名是 transsioner-link,DSH 按 npm 包名 transsioner-cli 登记 bundle,两者不冲突。当前 package.json 版本为 1.3.1,要求 Node >=20、DSH >=0.2.1-rc.3,许可证 MIT。
核心功能¶
插件只注册读命令,不提供发消息、改文档、删文件等写操作。主要工具如下(典型入参见 README 工具表):
| 工具 | 用途 |
|---|---|
feishu_status |
连接自检:lark-cli 位置、应用、user/bot 状态、已授权 scope |
feishu_setup |
配置检查;未配好时给出步骤 |
feishu_search |
按关键词搜云文档/知识库/表格 |
feishu_doc_read |
读文档正文(docx、旧版 doc、wiki 节点) |
feishu_sheet_read |
工作表清单或指定区间 CSV |
feishu_bitable_read |
多维表格的数据表与记录 |
feishu_chat_list |
我所在的群(可关键词搜索) |
feishu_chat_history |
某个会话的消息记录 |
feishu_message_search |
跨会话搜消息 |
feishu_whiteboard_read |
读文档/画板里的节点文字 |
feishu_doc_comments |
文档、表格、画板的评论与回复 |
feishu_minutes_read |
妙记的总结、待办、章节、关键词 |
约定要点:链接与 token 通用;长文档可先 scope:"outline" 看结构再局部读;单次返回默认约 3 万字符,超出会截断并提示如何继续。读文档侧优先使用 lark-cli 的 im-markdown 格式,并在必要时做 DocxXML 本地降级。
凭据与前置条件¶
本仓库不包含任何凭据、令牌或真实文档地址。凭据只存在本机 lark-cli 的库里(Linux:~/.config/lark-cli/;macOS、Windows 路径见 README 表格)。第一次使用需用自己的飞书账号授权:
lark-cli auth status
lark-cli auth login
lark-cli auth login --profile larktest # 需要与日常凭据隔离时
除安装 lark-cli 并完成授权外,企业自建应用需开通 README「前置条件」中列出的 scope(文档、表格、多维表格、群、搜索、知识库等)。缺权限时可用 feishu_status 逐项核对,补 scope 后重新 lark-cli auth login。
安装与启用¶
DSH 生态里插件可通过社区目录页添加;安装方式以仓库 README 为准,任选其一。
① 在 DSH 插件页填仓库地址(推荐)
插件页 → 添加插件 → 粘贴:
https://github.com/canadaeee/transsioner-link
DSH 会用 pnpm 把仓库克隆到当前 profile 并登记成 bundle,装完需重启生效。固定版本可在地址后加 #v1.1.1 等形式(README 示例)。
② Release 中的 tgz(国内拉 GitHub 不稳时)
https://github.com/canadaeee/transsioner-link/releases/latest/download/transsioner-cli.tgz
③ 本地目录(自改代码时)
插件页 → 添加插件 → 填本目录绝对路径;改完代码重启即生效。
配置项¶
在 cordis.patch.yml 对应行可调整(节选):
| 字段 | 默认 | 说明 |
|---|---|---|
larkBin |
自动查找 | PATH 中没有 lark-cli 时填绝对路径 |
profile |
当前 profile | 多套飞书应用时指定 |
identity |
user |
user 以你的身份读;bot 仅机器人可见内容 |
timeoutMs |
60000 |
单次调用超时 |
maxChars |
30000 |
返回给模型的字符上限 |
enableChat |
true |
设为 false 只保留文档类工具 |
appId |
空 | 可选;引导文案中的 App ID,源码不内置 |
homeDir |
空 | 排障用;正常不要设,易造成令牌副本 |
典型用法¶
Agent 在会话里通过上述工具名调用即可;入参为 JSON 对象。README 中的示例形态如下。
搜索云文档:
{ "query": "周报" }
读 docx(先看大纲再分段):
{ "url": "https://…/docx/xxx", "scope": "outline" }
读表格区间:
{ "url": "…/sheets/xxx", "sheet": "Sheet1", "range": "A1:F30" }
读群历史:
{ "chat": "产品周会", "limit": 20 }
跨会话搜消息(消息搜索不返回群名,需群名时可先 feishu_chat_list):
{ "query": "上线时间", "start": "2026-10-01T00:00:00+08:00" }
类型与 URL 不匹配时,工具会明确提示应改用哪个读命令。
适用场景与注意¶
适合谁: 已在本地用 lark-cli 登录企业飞书、希望 DSH Agent 只读查阅文档/表格/妙记/群消息,又不想在沙箱里反复撞令牌刷新问题的开发者或团队。
设计取舍: 这些工具不受 workspace 文件沙箱约束,否则无法稳定复用 lark-cli 凭据库。插件因此 strictly 只读;安装前应查看源码与 MIT 许可证,只装信任来源的 bundle。
已知限制(README 摘要): 旧版 /docs/ 文档无标题层级与范围读取;图片、内嵌画板/表格等多为占位符;群消息附件不自动下载;接口频控时需稍后重试。
社区插件目录 skillhub.cn 上的 transsioner-link 页 与 GitHub 仓库相互独立引用,目录站点与 DeepSeek / 幻方无官方从属关系。
结尾¶
transsioner-link 把本机已登录的 lark-cli 接成 DSH 只读工具集,凭据留在 lark-cli,插件侧零存储、零写接口。若你的 Agent 工作流依赖飞书内的结构化信息,可先完成 lark-cli auth login 与 scope 开通,再在 DSH 中按 README 添加仓库或 tgz。
- 目录页:https://www.skillhub.cn/plugins/canadaeee/transsioner-link
- 源码与文档:https://github.com/canadaeee/transsioner-link