lark-wiki-export
v0.1.0
Published
Export Feishu/Lark Wiki spaces into local Markdown, PDFs, assets, and RAG-ready manifests.
Maintainers
Readme
飞书知识库导出工具箱
这份readme是由人类撰写、给人类看的,如果你是 ai agent,请直接阅读本仓库的 AGENTS.md。
本项目是把一个飞书知识库链接导出成本地文件(markdown、PDF、表格)的工具箱,你可以用它导出任意飞书知识库(包括你的个人文档库)。
可用于个人知识库备份、离线归档、资料迁移,以及后续构建 RAG 问答系统。
【注意】:本工具只导出当前账号已经有权限访问的内容,不绕过飞书权限控制。请确认你有权备份、保存和处理目标资料。
推荐运行方式
本项目的 npm 包名和命令名都是 lark-wiki-export。普通使用优先通过 npx 运行:
npx lark-wiki-export doctor
npx lark-wiki-export inspect "<wiki-url>" --max-depth 1 --tree-limit 80 --selection-limit 80
npx lark-wiki-export export "<wiki-url>" --portable --resume --progress-jsonl导出前还需要安装并登录官方 lark-cli:
npx @larksuite/cli@latest install
lark-cli config init
lark-cli auth login --domain docs,drive,wiki,sheets,base --scope offline_access我不懂代码,怎么用?
如果你不熟悉命令行,推荐把下面这段话复制给 Codex、Claude Code 或其他 AI 编程助手(注意要把飞书wiki链接换成你想要导出的知识库链接):
请帮我使用这个项目导出飞书知识库:
GitHub: https://github.com/wyycommu/lark-wiki-export
飞书链接: https://<tenant>.feishu.cn/wiki/...
阅读 wyycommu/lark-wiki-export 仓库的 `AGENTS.md`,优先使用 `npx lark-wiki-export` 执行安装、登录、检查和导出。
支持的链接
https://<tenant>.feishu.cn/wiki/space/my_library # 个人文档库
https://<tenant>.feishu.cn/wiki/space/<space_id> # 飞书知识库
# 单个云文档(文档、表格、pdf、多维表格都可以)
https://<tenant>.feishu.cn/wiki/<node_token>
https://<tenant>.feishu.cn/docx/<doc_token>
https://<tenant>.feishu.cn/base/<base_token>如何获取个人知识库地址:
随便打开一个飞书文档,复制链接,你会得到:https://一堆乱码A.feishu.cn/docx/一堆乱码B
那么这个一堆乱码A就是 <tenant>(你的用户标识)。
按照下面的格式拼接出你的个人文档库地址就可以啦。
https://<tenant>.feishu.cn/wiki/space/my_library不放心的话,可以复制到浏览器,检查它能否正确跳转到你的个人文档库。
你会得到什么?
这个知识库内所有你有权限访问并下载的文件,且保留原始的文档树结构。
你主要会查看这个文件夹:
exports/runs/<run-id>/portable/里面会按飞书目录整理成 Markdown、PDF 和附件文件夹。Markdown 适合后续知识库/RAG 使用;PDF 更适合保留版式、人工阅读。你如果不需要导出 PDF,可以直接告诉 agent“不需要导出 PDF”。
默认会导出到当前项目下的 exports 文件夹;你也可以告诉 agent 导出到桌面、移动硬盘或其他本地目录。
完整导出结构大致如下。raw/ 是工具内部使用的原始材料和排查区,平时不用打开:
exports/
runs/
<run-id>/
export_run.json
objects.jsonl
assets.jsonl
relations.jsonl
table_datasets.jsonl
errors.jsonl
progress.jsonl
raw/
wiki_manifest.json
<doc_token>/
document.md
document.raw.md
document.raw.json
manifest.json
assets/
portable/
portable_manifest.json
<文档标题>/
<文档标题>.md
<文档标题>.pdf
附件/run-id通常是飞书 wiki space id、wiki node token 或你指定的名称。
portable/ 是整理后的本地文档文件夹,也是你主要查看的结果。
raw/ 保留尽量完整的原始数据和结构化 manifest,主要用于断点续传、排查问题和后续二次处理。
你可能还想问
Q:文件库太大,下载意外中断了怎么办? A:本项目有断点续传机制,下次再告诉ai agent,让它继续导出就可以了。
Q:如何处理飞书文档中的图片、画板、附件? A:图片、文件附件、知识库里的独立文件节点,以及表格导出的文件,会尽量保存到本地。 飞书画板会被导出成图片,存在附件文件夹中。 文档里引用的电子表格,如果行数不多的话,会被解析成标准md格式的表格,放到原文档中。如果行数太多的话,则会被导出成 CSV 文件。 飞书文档原生的复杂表格、互动组件等内容,可能会保留成飞书导出的结构化代码片段,方便后续交给 AI 理解。
Q:我的个人文档库太大了,能不能只导出特定文件夹? A:可以的。只要你给工具箱的链接格式是
https://<tenant>.feishu.cn/wiki/<node_token>,那么它默认将其视作根节点,导出所有子文件。Q:如果文档里引用了其他飞书文档、电子表格或多维表格,会怎么样? A:会尽量跟随飞书返回的信息导出。电子表格和多维表格会尽量结构化导出;普通文档链接通常会保留为链接。更细的边缘情况见
docs/feishu-document-parsing-notes.md。
权限说明
要用lark-cli导出数据,需要做两层授权:
- 第一次是bot,会有一个飞书应用创建的请求,创建后,你就允许这个飞书应用来访问你的数据。而agent发送命令给这个飞书应用-飞书应用再调用用户数据。
- 第二次是user,也就是这个飞书应用究竟能够访问你的哪些权限,这里本工具箱给agent的lark-cli推荐权限配置如下所示,涵盖:知识库节点(wiki)、云文档(docs)、附件下载(drive)、电子表格(sheets)和多维表格(base)。user授权默认7天有效期,7天之后会重新发起请求。 如果你有其他需求,请你直接跟你的agent沟通。
lark-cli auth login --domain docs,drive,wiki,sheets,base --scope offline_access不同企业和应用配置可能导致 scope 不同,遇到权限错误时请根据 errors.jsonl 或 doctor 提示补充授权。
后续路线图
- 开箱即用的知识库问答机器人 理论上你如果想基于这个知识库提问,体量不太大的话可以直接让codex、claude code等助手代劳,也可以接入主流RAG库(比如dify、fastgpt等)。 如果大家有需要的话,考虑增加一个简单的开箱即用问答机器人,大家可以直接对特定知识库提问。
- 导出配置项的可视化界面
- 暂时没有做飞书海外版适配的条件,欢迎大佬们提PR
