lark-doc
SkillCommunityTranslated from ChineseThis skill enables AI agents to interact with Feishu (Lark) Docx and Wiki documents using the v2 API. It supports creating, reading, editing, summarizing, and translating document content, as well as managing embedded media, whiteboards, and linked spreadsheets or databases.
npx skills add open.feishu.cn/lark-docdocs (v2)
⚠️ API Version: This skill uses the v2 API. All
docs +create --api-version v2,docs +fetch --api-version v2, anddocs +update --api-version v2commands must include the--api-version v2flag.
# Common examples
lark-cli docs +fetch --api-version v2 --doc "Document URL or token"
lark-cli docs +create --api-version v2 --content '<title>Title</title><p>Content</p>'
lark-cli docs +update --api-version v2 --doc "Document URL or token" --command append --content '<p>Content</p>'
Prerequisites, Must read before performing operations
CRITICAL, Before performing any operation, you MUST use the Read tool to read the following files. No exceptions:
../lark-shared/SKILL.md, Authentication, permission handling, global parameters (common to all operations)- Reading documents (
docs +fetch --api-version v2) → Must readlark-doc-fetch.md(--scope/--detailselection, partial reading strategy,<fragment>/<excerpt>output structure) - Creating or editing document content → Must read
lark-doc-xml.md(XML syntax rules; only switch tolark-doc-md.mdif the user explicitly requests Markdown); readlark-doc-create-workflow.mdwhen creating from scratch; readlark-doc-update-workflow.mdwhen editing existing documents.
Failure to read the above files before performing operations will lead to incorrect parameter selection, formatting errors, or substandard styling.
Format Selection Rules (Global):
- Creation / Import Scenarios (
docs +create, or full-paragraph writes viadocs +update --command append/overwrite): Both XML and Markdown are acceptable. If the user provides a local.mdfile or explicitly says "import Markdown," use Markdown directly. Otherwise, default to XML (which supports rich blocks like callouts, grids, checkboxes, etc.).- Precision Editing Scenarios (partial refinement commands for
docs +updatesuch asstr_replace,block_insert_after,block_replace,block_delete,block_move_after): Prioritize XML (--doc-format xml, which is the default). XML provides stable expression of block structures and styles, making partial refinement more controllable. Do not switch to Markdown just because it is simpler.
Quick Decision Making
- When a user needs a "direct link / anchor link to a specific block": Return
Base Document URL#block_id. If you only have the document URL and no block_id, first usedocs +fetch --detail with-idsto retrieve the target block ID. - Example:
- Known document URL =
https://xxx.feishu.cn/docx/doxcn123 - Known block_id =
blkcn456 - Should return
https://xxx.feishu.cn/docx/doxcn123#blkcn456
- Known document URL =
- When a user needs to create, copy, or move resource blocks (whiteboards, spreadsheets, bitables, etc.) within a document, you must first read the "III. Resource Blocks" section of
lark-doc-xml.md. - When writing documents, prioritize planning important information (core processes, architecture, comparisons, risks, roadmaps, key metrics, causal relationships) as whiteboards rather than using only text or tables.
- New whiteboards must be isolated to a SubAgent: Simple diagrams should be inserted directly by the SubAgent as
<whiteboard type="svg">Full SVG</whiteboard>without readinglark-whiteboard. Complex diagrams should be initialized by the main Agent as<whiteboard type="blank"></whiteboard>, then trigger a SubAgent to readlark-whiteboardfor writing. - If the user says "look at the images/attachments/materials in the document" or "preview materials" → Use
lark-cli docs +media-preview. - If the user explicitly says "download materials" → Use
lark-cli docs +media-download. - If the target is a whiteboard/whiteboard thumbnail → Must use
lark-cli docs +media-download --type whiteboard(do not use+media-preview). - After obtaining a spreadsheet URL/token → Switch to
lark-sheetsfor internal object operations. - If the user says "add a comment to the document," "view comments," "reply to a comment," or "add/delete an emoji reaction to a comment" → Switch to
lark-driveto handle it. - When embedded
<sheet>,<bitable>, or<cite file-type="sheets|bitable">tags appear in document content → You must proactively extract the token and switch to the corresponding skill to drill down and read the internal data. Do not simply present the tag itself.
| Tag / Attribute | Extracted Field | Switch to Skill |
|---|---|---|
<sheet token="..." sheet-id="..."> | token -> spreadsheet_token, sheet-id | lark-sheets |
<bitable token="..." table-id="..."> | token -> app_token, table-id | lark-base |
<cite type="doc" file-type="sheets" token="..." sheet-id="..."> | Same as <sheet> | lark-sheets |
<cite type="doc" file-type="bitable" token="..." table-id="..."> | Same as <bitable> | lark-base |
<synced_reference src-token="..." src-block-id="..."> | src-token -> doc_token, src-block-id -> block_id | Use docs +fetch --api-version v2 to read the src-token document and locate the block |
Shortcuts (Recommended)
Shortcuts are advanced wrappers for common operations (lark-cli docs +<verb> [flags]). Prioritize using operations that have shortcuts.
| Shortcut | Description |
|---|---|
+create | Create a Lark document (XML / Markdown) |
+fetch | Fetch Lark document content (XML / Markdown) |
+update | Update a Lark document (str_replace / block_insert_after / block_replace / ...) |
+media-insert | Insert a local image or file at the end of a Lark document (4-step orchestration + auto-rollback). Prefer --from-clipboard when the image is already on the system clipboard (screenshots, copy from Feishu/browser); use --file only for on-disk sources. |
+media-download | Download document media or whiteboard thumbnail (auto-detects extension) |
+media-preview | Preview document media file (auto-detects extension) |
+whiteboard-update | Alias of whiteboard +update. Update an existing whiteboard with DSL, Mermaid or PlantUML. Prefer whiteboard +update; refer to lark-whiteboard skill for details. |
docs (v2)
⚠️ API 版本:本 skill 使用 v2 API。所有
docs +create --api-version v2、docs +fetch --api-version v2、docs +update --api-version v2命令必须携带--api-version v2。
# 常用示例
lark-cli docs +fetch --api-version v2 --doc "文档URL或token"
lark-cli docs +create --api-version v2 --content '<title>标题</title><p>内容</p>'
lark-cli docs +update --api-version v2 --doc "文档URL或token" --command append --content '<p>内容</p>'
前置条件 — 执行操作前必读
CRITICAL — 执行对应操作前,MUST 先用 Read 工具读取以下文件,缺一不可:
../lark-shared/SKILL.md— 认证、权限处理、全局参数(所有操作通用)- 读取文档(
docs +fetch --api-version v2) → 必读lark-doc-fetch.md(--scope/--detail选择、局部读取策略、<fragment>/<excerpt>输出结构) - 创建或编辑文档内容 → 必读
lark-doc-xml.md(XML 语法规则,仅当用户明确要求 Markdown 时改读lark-doc-md.md);从零创建时加读lark-doc-create-workflow.md;编辑已有文档时加读lark-doc-update-workflow.md
未读完以上文件就执行相应操作会导致参数选择错误、格式错误或样式不达标。
格式选择规则(全局):
- 创建 / 导入场景(
docs +create,或docs +update --command append/overwrite的整段写入):XML 和 Markdown 都可以。用户提供.md本地文件、或明确说"导入 Markdown"时,直接用 Markdown;否则默认 XML(可用 callout、grid、checkbox 等富 block)。- 精准编辑场景(
docs +update的str_replace/block_insert_after/block_replace/block_delete/block_move_after等局部精修指令):优先使用 XML(--doc-format xml,即默认值)。XML 能稳定表达 block 结构和样式,局部精修更可控;不要因为 Markdown 更简单就自行切换。
快速决策
- 用户需要“某个 block 的直达链接 / 锚点链接”时:返回
文档基础 URL#block_id。如果当前只有文档 URL 没有 block_id,先用docs +fetch --detail with-ids拿到目标 block 的 id - 例:
- 已知文档 URL =
https://xxx.feishu.cn/docx/doxcn123 - 已知 block_id =
blkcn456 - 应返回
https://xxx.feishu.cn/docx/doxcn123#blkcn456
- 已知文档 URL =
- 用户需要在文档内创建、复制或移动资源块(画板、电子表格、多维表格等)时,必须先读取
lark-doc-xml.md的「三、资源块」章节 - 写文档时,重要信息(核心流程、架构、对比、风险、路线图、关键指标、因果关系)优先规划为画板,不要只用文字或表格承载
- 新增画板必须隔离到 SubAgent:简单图由 SubAgent 直接插入
<whiteboard type="svg">完整 SVG</whiteboard>,不读lark-whiteboard;复杂图才由主 Agent 先建<whiteboard type="blank"></whiteboard>,再启动 SubAgent 读取lark-whiteboard写入 - 用户说"看一下文档里的图片/附件/素材""预览素材" → 用
lark-cli docs +media-preview - 用户明确说"下载素材" → 用
lark-cli docs +media-download - 如果目标是画板/whiteboard/画板缩略图 → 只能用
lark-cli docs +media-download --type whiteboard(不要用+media-preview) - 拿到 spreadsheet URL/token 后 → 切到
lark-sheets做对象内部操作 - 用户说"给文档加评论""查看评论""回复评论""给评论加/删除表情 reaction" → 切到
lark-drive处理 - 文档内容中出现嵌入的
<sheet>、<bitable>或<cite file-type="sheets|bitable">标签时 → 必须主动提取 token 并切到对应技能下钻读取内部数据,不能只呈现标签本身
| 标签 / 属性 | 提取字段 | 切到技能 |
|---|---|---|
<sheet token="..." sheet-id="..."> | token -> spreadsheet_token, sheet-id | lark-sheets |
<bitable token="..." table-id="..."> | token -> app_token, table-id | lark-base |
<cite type="doc" file-type="sheets" token="..." sheet-id="..."> | 同 <sheet> | lark-sheets |
<cite type="doc" file-type="bitable" token="..." table-id="..."> | 同 <bitable> | lark-base |
<synced_reference src-token="..." src-block-id="..."> | src-token -> doc_token, src-block-id -> block_id | 用 docs +fetch --api-version v2 读取 src-token 文档,定位 block |
Shortcuts(推荐优先使用)
Shortcut 是对常用操作的高级封装(lark-cli docs +<verb> [flags])。有 Shortcut 的操作优先使用。
| Shortcut | 说明 |
|---|---|
+create | Create a Lark document (XML / Markdown) |
+fetch | Fetch Lark document content (XML / Markdown) |
+update | Update a Lark document (str_replace / block_insert_after / block_replace / ...) |
+media-insert | Insert a local image or file at the end of a Lark document (4-step orchestration + auto-rollback). Prefer --from-clipboard when the image is already on the system clipboard (screenshots, copy from Feishu/browser); use --file only for on-disk sources. |
+media-download | Download document media or whiteboard thumbnail (auto-detects extension) |
+media-preview | Preview document media file (auto-detects extension) |
+whiteboard-update | Alias of whiteboard +update. Update an existing whiteboard with DSL, Mermaid or PlantUML. Prefer whiteboard +update; refer to lark-whiteboard skill for details. |
Installs
201,852First seen
Jun 10, 2026
Auto-fetched from GitHub .
Stats via skills.sh.
Skills similar to lark-doc:
Installs
Installs
Installs