Feishu CLI 云文档操作
通过命令行或 AI Agent 自动化,使用飞书风格的 Markdown 创建、读取、更新和搜索云文档。支持插入媒体、管理白板和下载资源。
概述
在终端中管理云文档
Feishu CLI 文档模块提供 6 个快捷命令,实现全面的云文档控制。每个快捷命令都直接映射到飞书开放平台文档 API 的 MCP 工具调用,让您拥有对飞书/Lark 文档的完整编程访问能力。
核心能力包括:
- 基于 Markdown 的完整创建能力 — 使用飞书风格的 Markdown 创建富文档,支持高亮提示框、网格布局、表格、图片等
- 7 种更新模式 — 追加、覆盖、替换范围、全部替换、前插、后插、删除范围
- 媒体编排 — 4 步插入流水线,失败时自动回滚
- 白板操作 — 通过 DSL 创建和更新白板,支持架构图、流程图和思维导图
- 跨模块搜索 — 统一搜索文档、知识库和电子表格
创建文档
+create — 创建飞书文档
使用飞书风格的 Markdown 内容创建新的云文档。文档默认创建在用户的根文件夹中,也可以指定目标文件夹、知识库节点或知识空间。--folder-token、--wiki-node 和 --wiki-space 参数互斥。
$ lark-cli docs +create --title "Weekly Report" --markdown "## Sprint 42\n### Highlights\n- Completed auth module\n- Deployed v2.1"
$ lark-cli docs +create --title "Design Doc" --folder-token "fldcnXXXX" --markdown "## Architecture\n\n### Overview\nMicroservices-based design..."
$ lark-cli docs +create --title "API Reference" --wiki-space "7000000000000000000" --markdown "## Endpoints\n\n### GET /users\nReturns a list of users."
$ lark-cli docs +create --title "Onboarding Guide" --wiki-node "wikcnXXXX" --markdown "## Welcome\n\nThis guide covers setup and configuration."
$ lark-cli docs +create --title "Study Notes" --wiki-space my_library --markdown "## Notes\n\n- Key takeaway 1\n- Key takeaway 2"
参数说明
| 参数 | 必填 | 说明 |
--markdown | 是 | 文档正文的飞书风格 Markdown 内容 |
--title | 否 | 文档标题(不要在 markdown 中重复作为 H1) |
--folder-token | 否 | 父文件夹 token(与 wiki 参数互斥) |
--wiki-node | 否 | 要创建到的知识库节点 token |
--wiki-space | 否 | 知识空间 ID;使用 my_library 表示个人知识库 |
返回值:doc_id(文档 token)、doc_url(浏览器链接)和 message(状态信息)。在知识库中创建时,URL 可能为 /wiki/... 格式 — 后续 API 调用请使用 doc_id。
权限范围:docx:document:create
身份:用户或机器人。使用机器人身份时,创建后需授予用户 full_access 权限。
读取文档
+fetch — 获取文档内容
通过 URL 或 token 获取飞书文档的内容。支持使用 --offset 和 --limit 对大文档进行分页。
$ lark-cli docs +fetch --doc "docxXXXXXXXXXX"
$ lark-cli docs +fetch --doc "docxXXXXXXXXXX" --offset 0 --limit 50
$ lark-cli docs +fetch --doc "https://example.feishu.cn/docx/docxXXXXXXXXXX"
| 参数 | 必填 | 说明 |
--doc | 是 | 文档 URL 或 token |
--offset | 否 | 分页偏移量 |
--limit | 否 | 分页限制(返回的块数量) |
权限范围:docx:document:readonly
更新文档
+update — 更新飞书文档(7 种模式)
使用 7 种更新模式之一更新现有文档。每种模式服务于不同的编辑场景,从追加内容到精确文本替换。--selection-with-ellipsis 和 --selection-by-title 定位器互斥。
追加模式
$ lark-cli docs +update --doc "docxXXX" --mode append --markdown "## New Section\n\nAdditional content appended here."
覆盖模式
$ lark-cli docs +update --doc "docxXXX" --mode overwrite --markdown "# Complete Replacement\n\nAll previous content is gone."
替换范围模式
$ lark-cli docs +update --doc "docxXXX" --mode replace_range --selection-with-ellipsis "old paragraph text...surrounding context" --markdown "Updated paragraph content"
全部替换模式
$ lark-cli docs +update --doc "docxXXX" --mode replace_all --selection-with-ellipsis "v1.0..." --markdown "v2.0"
前插 / 后插模式
$ lark-cli docs +update --doc "docxXXX" --mode insert_before --selection-by-title "## Section 3" --markdown "## Section 2.5\n\nInserted before Section 3."
$ lark-cli docs +update --doc "docxXXX" --mode insert_after --selection-by-title "## Conclusion" --markdown "## Appendix\n\nSupplementary data."
删除范围模式
$ lark-cli docs +update --doc "docxXXX" --mode delete_range --selection-with-ellipsis "obsolete paragraph...end marker"
重命名文档
$ lark-cli docs +update --doc "docxXXX" --mode append --markdown " " --new-title "Updated Document Title"
全部更新参数
| 参数 | 必填 | 说明 |
--doc | 是 | 文档 URL 或 token |
--mode | 是 | append | overwrite | replace_range | replace_all | insert_before | insert_after | delete_range |
--markdown | 是* | 飞书风格 Markdown 新内容(* delete_range 模式不需要) |
--selection-with-ellipsis | 条件必填 | 使用 start...end 模式的内容定位器(范围/替换/插入/删除模式需要) |
--selection-by-title | 条件必填 | 标题定位器,如 ## Section Name(与省略号选择器二选一) |
--new-title | 否 | 同时更新文档标题 |
权限范围:docx:document:write_only、docx:document:readonly
搜索内容
+search — 搜索文档、知识库与电子表格
使用搜索 v2 API(POST /open-apis/search/v2/doc_wiki/search)统一搜索云文档、知识库页面和电子表格。尽管端点名称只提到文档和知识库,搜索结果也包括电子表格(SHEET 类型)。可将此命令作为资源发现的入口,然后切换到特定领域的命令。
$ lark-cli docs +search --query "quarterly report"
$ lark-cli docs +search --query "product roadmap" --filter '{"open_time":{"start":"2026-01-01T00:00:00+08:00","end":"2026-03-30T23:59:59+08:00"}}'
$ lark-cli docs +search
$ lark-cli docs +search --query "OKR" --page-token "next_page_token" --page-size 20
| 参数 | 必填 | 说明 |
--query | 否 | 搜索关键词(为空时返回最近文档) |
--filter | 否 | 用于类型/所有者/时间条件的 JSON 筛选器 |
--page-size | 否 | 每页结果数(默认 15,最大 20) |
--page-token | 否 | 下一页的分页 token |
权限范围:search:docs:read。身份:仅限用户(机器人身份无法执行搜索)。
插入媒体
+media-insert — 插入图片与文件(4 步编排)
在文档末尾插入本地图片或文件。此命令执行 4 步流水线,失败时自动回滚:(1) 查询文档根块,(2) 创建占位块,(3) 上传文件,(4) 将上传的文件 token 绑定到块。对于知识库 URL,会先执行第 5 步将知识库节点解析为实际的 docx token。
最大文件大小:20 MB。支持 PNG、JPG、GIF、WebP、BMP 图片和通用文件附件。
$ lark-cli docs +media-insert --file ./diagram.png --doc "docxXXXXXX" --align center --caption "Architecture diagram"
$ lark-cli docs +media-insert --file ./report.pdf --doc "docxXXXXXX" --type file
$ lark-cli docs +media-insert --file ./screenshot.png --doc "https://example.feishu.cn/wiki/wikiXXXXXX"
| 参数 | 必填 | 说明 |
--file | 是 | 本地文件路径(最大 20 MB) |
--doc | 是 | 文档 URL 或 document_id(仅 docx) |
--type | 否 | image(默认)或 file |
--align | 否 | left、center 或 right |
--caption | 否 | 图片说明文字 |
权限范围:docs:document.media:upload、docx:document:write_only、docx:document:readonly
下载媒体
+media-download — 下载文档媒体
从文档中下载媒体文件或白板缩略图。扩展名根据内容类型自动检测(PNG、JPG、GIF、WebP、SVG、PDF、MP4、TXT)。
$ lark-cli docs +media-download --token "boxXXXXXX" --output ./downloaded-image.png
$ lark-cli docs +media-download --token "wbXXXXXX" --output ./whiteboard.png --type whiteboard
$ lark-cli docs +media-download --token "boxXXXXXX" --output ./image.png --overwrite
| 参数 | 必填 | 说明 |
--token | 是 | 资源 token(file_token 或 whiteboard_id) |
--output | 是 | 本地保存路径 |
--type | 否 | media(默认)或 whiteboard |
--overwrite | 否 | 覆盖已有的输出文件(布尔值) |
权限范围:docs:document.media:download
白板操作
创建与更新白板
飞书文档中的白板可以通过 +create 或 +update 命令使用特殊的 Markdown 语法内联创建。要更新白板内容,请使用 whiteboard-cli 工具解析 DSL 内容并通过管道传输到更新命令。
创建空白白板
$ lark-cli docs +create --title "Whiteboard Doc" --markdown '<whiteboard type="blank"></whiteboard>'
$ lark-cli docs +create --title "Design Boards" --markdown '## Board 1\n<whiteboard type="blank"></whiteboard>\n## Board 2\n<whiteboard type="blank"></whiteboard>'
更新白板内容
$ whiteboard-cli render architecture.dsl | lark-cli docs +whiteboard-update --whiteboard-token "wbXXXXXX"
$ whiteboard-cli render flowchart.dsl | lark-cli docs +whiteboard-update --whiteboard-token "wbXXXXXX" --overwrite
| 参数 | 必填 | 说明 |
--whiteboard-token | 是 | 白板 token(需要对父文档的编辑权限) |
--idempotent-token | 否 | 幂等性 token(最少 10 个字符) |
--overwrite | 否 | 更新前删除所有已有内容(默认 false) |
支持的图表类型包括架构图、流程图、组织架构图、思维导图以及 Mermaid/PlantUML 图表(自动转换为飞书白板格式)。
知识库集成
处理知识库 URL
飞书中的知识库页面使用与普通文档不同的 URL 格式(feishu.cn/wiki/XXXXX)。在处理知识库内容时,需要先将知识库 token 解析为实际的文档 token。
+media-insert 命令会自动处理此过程(5 步编排)。对于其他命令,需要手动解析:
$ lark-cli wiki spaces get_node --token "wikiXXXXXX"
$ lark-cli docs +fetch --doc "docxYYYYYY"
+create 命令支持通过 --wiki-node 或 --wiki-space 直接在知识库中创建文档,因此仅在对已有知识库页面进行读取/更新操作时才需要解析。
权限
所需 OAuth 权限范围
| 操作 | 权限范围 |
| 创建文档 | docx:document:create |
| 读取文档 | docx:document:readonly |
| 更新文档 | docx:document:write_only、docx:document:readonly |
| 搜索文档 | search:docs:read |
| 上传媒体 | docs:document.media:upload |
| 下载媒体 | docs:document.media:download |
命令参考
全部文档快捷命令
| 命令 | 说明 | 风险等级 | 身份 | 关键参数 |
+create | 使用 Markdown 创建飞书文档 | 写入 | 用户、机器人 | --title, --markdown, --folder-token, --wiki-space, --wiki-node |
+fetch | 获取文档内容 | 读取 | 用户、机器人 | --doc, --offset, --limit |
+update | 更新文档(7 种模式) | 写入 | 用户、机器人 | --doc, --mode, --markdown, --selection-with-ellipsis, --selection-by-title, --new-title |
+search | 搜索文档、知识库和电子表格 | 读取 | 仅限用户 | --query, --filter, --page-size, --page-token |
+media-insert | 向文档插入本地图片/文件 | 写入 | 用户、机器人 | --file, --doc, --type, --align, --caption |
+media-download | 下载文档媒体或白板 | 读取 | 用户、机器人 | --token, --output, --type, --overwrite |