
Feishu Doc
- 2 installs
- 385k repo stars
- Updated August 3, 2026
- steipete/clawdis
Read and write Feishu (Lark) documents via a single feishu_doc tool - read, write, append, create docs, and list/get/update/delete individual blocks.
About
Exposes a single feishu_doc tool with actions to read, write, append, and create Feishu documents plus fine-grained block operations for tables and images. A developer uses it to read or programmatically edit Feishu cloud docs from an agent.
- Actions: read, write, append, create, list_blocks, update/delete block
- Markdown write supports images but not tables; feishu_wiki depends on it
Feishu Doc by the numbers
- 2 all-time installs (skills.sh)
- Ranked #548 of 687 Office & Documents skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/steipete/clawdis --skill feishu-docAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2 |
|---|---|
| repo stars | ★ 385k |
| Last updated | August 3, 2026 |
| Repository | steipete/clawdis ↗ |
What it does
Read and write Feishu (Lark) documents via a single feishu_doc tool - read, write, append, create docs, and list/get/update/delete individual blocks.
Files
Feishu Document Tool
Single tool feishu_doc with action parameter for all document operations.
Token Extraction
From URL https://xxx.feishu.cn/docx/ABC123def → doc_token = ABC123def
Actions
Read Document
{ "action": "read", "doc_token": "ABC123def" }Returns: title, plain text content, block statistics. Check hint field - if present, structured content (tables, images) exists that requires list_blocks.
Write Document (Replace All)
{ "action": "write", "doc_token": "ABC123def", "content": "# Title\n\nMarkdown content..." }Replaces entire document with markdown content. Supports: headings, lists, code blocks, quotes, links, images ( auto-uploaded), bold/italic/strikethrough.
Limitation: Markdown tables are NOT supported.
Append Content
{ "action": "append", "doc_token": "ABC123def", "content": "Additional content" }Appends markdown to end of document.
Create Document
{ "action": "create", "title": "New Document" }With folder:
{ "action": "create", "title": "New Document", "folder_token": "fldcnXXX" }List Blocks
{ "action": "list_blocks", "doc_token": "ABC123def" }Returns full block data including tables, images. Use this to read structured content.
Get Single Block
{ "action": "get_block", "doc_token": "ABC123def", "block_id": "doxcnXXX" }Update Block Text
{
"action": "update_block",
"doc_token": "ABC123def",
"block_id": "doxcnXXX",
"content": "New text"
}Delete Block
{ "action": "delete_block", "doc_token": "ABC123def", "block_id": "doxcnXXX" }Reading Workflow
1. Start with action: "read" - get plain text + statistics 2. Check block_types in response for Table, Image, Code, etc. 3. If structured content exists, use action: "list_blocks" for full data
Configuration
channels:
feishu:
tools:
doc: true # default: trueNote: feishu_wiki depends on this tool - wiki page content is read/written via feishu_doc.
Permissions
Required: docx:document, docx:document:readonly, docx:document.block:convert, drive:drive
Feishu Block Types Reference
Complete reference for Feishu document block types. Use with feishu_doc_list_blocks, feishu_doc_update_block, and feishu_doc_delete_block.
Block Type Table
| block_type | Name | Description | Editable |
|---|---|---|---|
| 1 | Page | Document root (contains title) | No |
| 2 | Text | Plain text paragraph | Yes |
| 3 | Heading1 | H1 heading | Yes |
| 4 | Heading2 | H2 heading | Yes |
| 5 | Heading3 | H3 heading | Yes |
| 6 | Heading4 | H4 heading | Yes |
| 7 | Heading5 | H5 heading | Yes |
| 8 | Heading6 | H6 heading | Yes |
| 9 | Heading7 | H7 heading | Yes |
| 10 | Heading8 | H8 heading | Yes |
| 11 | Heading9 | H9 heading | Yes |
| 12 | Bullet | Unordered list item | Yes |
| 13 | Ordered | Ordered list item | Yes |
| 14 | Code | Code block | Yes |
| 15 | Quote | Blockquote | Yes |
| 16 | Equation | LaTeX equation | Partial |
| 17 | Todo | Checkbox / task item | Yes |
| 18 | Bitable | Multi-dimensional table | No |
| 19 | Callout | Highlight block | Yes |
| 20 | ChatCard | Chat card embed | No |
| 21 | Diagram | Diagram embed | No |
| 22 | Divider | Horizontal rule | No |
| 23 | File | File attachment | No |
| 24 | Grid | Grid layout container | No |
| 25 | GridColumn | Grid column | No |
| 26 | Iframe | Embedded iframe | No |
| 27 | Image | Image | Partial |
| 28 | ISV | Third-party widget | No |
| 29 | MindnoteBlock | Mindmap embed | No |
| 30 | Sheet | Spreadsheet embed | No |
| 31 | Table | Table | Partial |
| 32 | TableCell | Table cell | Yes |
| 33 | View | View embed | No |
| 34 | Undefined | Unknown type | No |
| 35 | QuoteContainer | Quote container | No |
| 36 | Task | Lark Tasks integration | No |
| 37 | OKR | OKR integration | No |
| 38 | OKRObjective | OKR objective | No |
| 39 | OKRKeyResult | OKR key result | No |
| 40 | OKRProgress | OKR progress | No |
| 41 | AddOns | Add-ons block | No |
| 42 | JiraIssue | Jira issue embed | No |
| 43 | WikiCatalog | Wiki catalog | No |
| 44 | Board | Board embed | No |
| 45 | Agenda | Agenda block | No |
| 46 | AgendaItem | Agenda item | No |
| 47 | AgendaItemTitle | Agenda item title | No |
| 48 | SyncedBlock | Synced block reference | No |
Editing Guidelines
Text-based blocks (2-17, 19)
Update text content using feishu_doc_update_block:
{
"doc_token": "ABC123",
"block_id": "block_xxx",
"content": "New text content"
}Image blocks (27)
Images cannot be updated directly via update_block. Use feishu_doc_write or feishu_doc_append with markdown to add new images.
Table blocks (31)
Important: Table blocks CANNOT be created via the documentBlockChildren.create API (error 1770029). This affects feishu_doc_write and feishu_doc_append - markdown tables will be skipped with a warning.
Tables can only be read (via list_blocks) and individual cells (type 32) can be updated, but new tables cannot be inserted programmatically via markdown.
Container blocks (24, 25, 35)
Grid and QuoteContainer are layout containers. Edit their child blocks instead.
Common Patterns
Replace specific paragraph
1. feishu_doc_list_blocks - find the block_id 2. feishu_doc_update_block - update its content
Insert content at specific location
Currently, the API only supports appending to document end. For insertion at specific positions, consider:
1. Read existing content 2. Delete affected blocks 3. Rewrite with new content in desired order
Delete multiple blocks
Blocks must be deleted one at a time. Delete child blocks before parent containers.