Transsioner-Link:把本機 lark-cli 只讀能力接成 DSH 工具

前言

在 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜