home / skills / openclaw / openclaw / feishu-doc
This skill helps you read, write, and manage Feishu documents by issuing feishu_doc actions from URLs or tokens, boosting collaboration.
npx playbooks add skill openclaw/openclaw --skill feishu-docReview the files below or copy the command above to add this skill to your agents.
---
name: feishu-doc
description: |
Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.
---
# 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
```json
{ "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)
```json
{ "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
```json
{ "action": "append", "doc_token": "ABC123def", "content": "Additional content" }
```
Appends markdown to end of document.
### Create Document
```json
{ "action": "create", "title": "New Document" }
```
With folder:
```json
{ "action": "create", "title": "New Document", "folder_token": "fldcnXXX" }
```
### List Blocks
```json
{ "action": "list_blocks", "doc_token": "ABC123def" }
```
Returns full block data including tables, images. Use this to read structured content.
### Get Single Block
```json
{ "action": "get_block", "doc_token": "ABC123def", "block_id": "doxcnXXX" }
```
### Update Block Text
```json
{
"action": "update_block",
"doc_token": "ABC123def",
"block_id": "doxcnXXX",
"content": "New text"
}
```
### Delete Block
```json
{ "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
```yaml
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`
This skill provides read and write operations for Feishu (Lark) documents. It activates when you mention Feishu docs, cloud docs, or docx links and lets the assistant inspect, create, update, and manage document blocks. It supports full-document replace, append, block-level edits, and structured block listing for tables and images.
The tool accepts a single action parameter that selects read, write, append, create, list_blocks, get_block, update_block, or delete_block. Reading returns plain text, title, and block statistics; if the response includes a hint about structured content you should call list_blocks to retrieve tables, images, and other block data. Write replaces the entire document with Markdown (except Markdown tables), while append adds Markdown to the end. Block-level APIs let you fetch, update, or delete individual blocks.
How do I read tables or images in a Feishu doc?
Call action: read first. If the response includes a hint about structured content, call action: list_blocks to retrieve full block data including tables and images.
Can I use Markdown tables when writing a document?
No. Markdown tables are not supported by the write/append endpoints. Use list_blocks to access or recreate table content via block-level operations if needed.