feishu-doc

Platform Integration |
📦 Install
npx clawhub@latest install feishu-doc

Feishu Document Tool

Single tool feishu_doc with action parameter for all document operations, including table creation for Docx.

Token Extraction

From URL https://xxx.feishu.cn/docx/ABC123defdoc_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 (![](url) 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", "owner_open_id": "ou_xxx" }

With folder:

{

"action": "create",

"title": "New Document",

"folder_token": "fldcnXXX",

"owner_open_id": "ou_xxx"

}

Important: Always pass owner_open_id with the requesting user's open_id (from inbound metadata sender_id) so the user automatically gets full_access permission on the created document. Without this, only the bot app has access.

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" }

Create Table (Docx Table Block)

{

"action": "create_table",

"doc_token": "ABC123def",

"row_size": 2,

"column_size": 2,

"column_width": [200, 200]

}

Optional: parent_block_id to insert under a specific block.

Write Table Cells

{

"action": "write_table_cells",

"doc_token": "ABC123def",

"table_block_id": "doxcnTABLE",

"values": [

["A1", "B1"],

["A2", "B2"]

]

}

Create Table With Values (One-step)

{

"action": "create_table_with_values",

"doc_token": "ABC123def",

"row_size": 2,

"column_size": 2,

"column_width": [200, 200],

"values": [

["A1", "B1"],

["A2", "B2"]

]

}

Optional: parent_block_id to insert under a specific block.

Upload Image to Docx (from URL or local file)

{

"action": "upload_image",

"doc_token": "ABC123def",

"url": "https://example.com/image.png"

}

Or local path with position control:

{

"action": "upload_image",

"doc_token": "ABC123def",

"file_path": "/tmp/image.png",

"parent_block_id": "doxcnParent",

"index": 5

}

Optional index (0-based) inserts the image at a specific position among sibling blocks. Omit to append at end.

Note: Image display size is determined by the uploaded image's pixel dimensions. For small images (e.g. 480x270 GIFs), scale to 800px+ width before uploading to ensure proper display.

Upload File Attachment to Docx (from URL or local file)

{

"action": "upload_file",

"doc_token": "ABC123def",

"url": "https://example.com/report.pdf"

}

Or local path:

{

"action": "upload_file",

"doc_token": "ABC123def",

"file_path": "/tmp/report.pdf",

"filename": "Q1-report.pdf"

}

Rules:

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: true

Note: 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

← Back to all skills

Get openclaw-cli free

Install in one command and start monitoring your AI gateway.

npm install -g openclaw-cli