dsh-feishu-reader
DSH 插件:读取飞书文档(docx/wiki/sheets/bitable)并下载图片
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 21, 2026
- Updated
- Aug 21, 2026
Introduction
🚢 dsh-feishu-reader
读取飞书文档 — 文字 / 表格 / 图片,一键转 Markdown 喂给 AI
Read Feishu (Lark) docs — text, tables & images — as Markdown for your AI
✨ 特性 / Features
| 能力 | 说明 | |
|---|---|---|
| 📝 | 文字读取 | 云文档 / 知识库 / 电子表格 / 多维表格,保留标题、列表、代码块 |
| 🧾 | 表格还原 | 表格转成真正的 Markdown 表格,合并单元格内容不丢 |
| 🖼️ | 图片下载 | 文档里的图片下载到本地,AI 用视觉工具读图 |
| 🎨 | 行内格式 | **加粗**、`代码`、[链接](url) 保留 |
| 🔐 | 安全 | 凭证不落命令行、不硬编码 |
| ⚙️ | 设置界面 | 设置里一张卡片,点点就配好 |
🖼️ 效果预览 / Preview
🚀 安装
用 DSH 官方命令一键安装,自动注册启动加载,零手工步骤。
前置(只需一次,发布方):把包发布到 npm ——
cd lib
npm login
npm publish
安装(在 DSH 终端执行):
dsh plugin --profile desktop add dsh-feishu-reader
重启 DSH 即生效。以后更新:再跑一次同一条命令。
为什么不用手动配置?包的
package.json声明了dsh.bundlemanifest(指向cordis.patch.yml),dsh plugin add会识别它并自动加进 profile 的dsh.profile.bundles,DSH 启动时自动加载。
本地开发 / 发布前测试(不需要 npm):
node scripts/install-local.mjs # 一键安装到本地 profile
node scripts/uninstall-local.mjs # 卸载
⚙️ 配置飞书(必需!)
⚠️ 不配置就无法使用。 这个插件通过「飞书开放平台」的接口读文档,需要你自己的飞书应用凭证。
1. 创建飞书自建应用
打开 飞书开放平台 → 创建企业自建应用 → 在「凭证与基础信息」拿到:
- App ID(
cli_开头) - App Secret
2. 开通权限(应用 → 权限管理 → 开通并发布)
| 权限 | 用途 |
|---|---|
docx:document:readonly | 读取云文档 |
wiki:wiki:readonly | 读取知识库 |
sheets:spreadsheet:readonly | 读取电子表格 |
bitable:app:readonly | 读取多维表格 |
drive:drive:readonly | 下载文档内图片 |
3. 授权文档给应用
- 云文档 / 表格:把应用加为文档协作者
- 知识库:把应用加入知识库成员
4. 填入凭证
打开 设置 → 插件 → 插件配置 → 飞书,填 App ID / App Secret,点「保存凭证」。
也可以让 AI 调用
feishu_configure(app_id, app_secret)配置。
🎯 开始使用
把飞书文档链接发给 AI 即可(/docx/、/wiki/、/sheets/、/base/ 都支持),AI 会读出全文、表格和图片。
❓ 常见问题 / FAQ
图片下载失败?
检查应用是否开通 drive:drive:readonly 并发布,且文档已分享给应用。
报「缺少飞书凭证」?
按上方配置飞书完成 1-4 步;或调用时直接传 app_id / app_secret。
插件重启后会不会没?
用 dsh plugin add 安装(写进 profile 的 bundles)→ 重启自动加载,不会没;会话里临时加载的才会没。
合并单元格显示重复内容?
Markdown 无法表达合并,插件把主单元格内容复制到覆盖位置,保证信息不丢(属正常)。
🧠 工作原理 / How It Works
- AI 调用
feishu_read(url)→ Host 解析链接类型与文档 token - 引擎(
lib/script.js)通过 stdin 接收凭证,调飞书 Open API - 文字经 blocks 接口转结构化 Markdown(表格网格重建、行内格式保留)
- 图片下载到本地临时目录,AI 再用视觉工具读图
🛠️ 开发 / Development
npm run test # 单元测试(node --test)
npm run check # 语法检查
npm run build:dynamic # 从 lib/ 重新生成 host.js / client.js
单一来源:引擎逻辑只在 lib/script.js,动态版由构建脚本生成。
📄 License
MIT · Made with 🚢 for the DSH / Feishu community