Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Export, write, and manage Feishu/Lark cloud documents. Supports docx, sheets, bitable, wiki, WeChat article import/export, drive management, and browser-based export for public or browser-readable docs. Use this skill when you need to read, analyze, write, or manage content in a Feishu knowledge base.
.claude/skills/leemysw-feishu-docx/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 45% | 0% |
Export Feishu/Lark cloud documents to Markdown for AI analysis, writing, and automation.
bashpip install feishu-docx feishu-docx config set --app-id YOUR_APP_ID --app-secret YOUR_APP_SECRET
> Token auto-refreshes. No user interaction required.
Optional features are split into extras so the core install stays lightweight. Quote extras in zsh and similar shells.
export-browser requires Playwright and a Chromium runtime:
bashpip install 'feishu-docx[browser]' playwright install chromium
PDF export requires the pdf extra:
bashpip install 'feishu-docx[pdf]'
bashfeishu-docx export "<FEISHU_URL>" -o ./output
The exported Markdown file will be saved with the document's title as filename.
If the document is public or only readable in your current browser session, prefer:
bashfeishu-docx export-browser "<FEISHU_OR_LARK_URL>" -o ./output
Or reuse an existing Playwright session:
bashfeishu-docx export-browser "<FEISHU_OR_LARK_URL>" --storage-state ./storage_state.json
| Command | Description | |---------|-------------| | feishu-docx export <URL> | Export document to Markdown | | feishu-docx export <URL> --pdf | Export document to Markdown and PDF | | feishu-docx export-browser <URL> | Export in a real browser session with local assets | | feishu-docx export-wechat <URL> | Export WeChat article to Markdown | | feishu-docx create <TITLE> | Create new document | | feishu-docx create --url <URL> | Create document from WeChat article | | feishu-docx write <URL> | Append content to document | | feishu-docx update <URL> | Update specific block | | feishu-docx drive ls | List app or personal cloud-space files | | feishu-docx drive perm-show <TOKEN> | Show public permission | | feishu-docx drive perm-members <TOKEN> | List permission members | | feishu-docx drive clear | Clear files with double confirmation | | feishu-docx export-wiki-space <URL> | Batch export entire wiki space | | feishu-docx export-workspace-schema <ID> | Export bitable database schema | | feishu-docx auth | OAuth authorization | | feishu-docx config set | Set credentials | | feishu-docx config show | Show current config | | feishu-docx config clear | Clear token cache | | feishu-docx tui | Interactive TUI interface |
bashfeishu-docx export "https://xxx.feishu.cn/wiki/ABC123" -o ./docs
bashfeishu-docx export "https://xxx.feishu.cn/docx/XYZ789" -o ./docs -n meeting_notes
bashfeishu-docx export-browser "https://xxx.larkoffice.com/wiki/ABC123" -o ./browser_docs
bashfeishu-docx export "https://xxx.feishu.cn/docx/XYZ789" --pdf
bash# Output content to stdout instead of saving to file feishu-docx export "https://xxx.feishu.cn/wiki/ABC123" --stdout # or use short flag feishu-docx export "https://xxx.feishu.cn/wiki/ABC123" -c
bash# Include block IDs as HTML comments in the Markdown output feishu-docx export "https://xxx.feishu.cn/wiki/ABC123" --with-block-ids # or use short flag feishu-docx export "https://xxx.feishu.cn/wiki/ABC123" -b
bash# Export all documents in a wiki space (auto-extract space_id from URL) feishu-docx export-wiki-space "https://xxx.feishu.cn/wiki/ABC123" -o ./wiki_backup # Specify depth limit feishu-docx export-wiki-space "https://xxx.feishu.cn/wiki/ABC123" -o ./docs --max-depth 3 # Export with Block IDs for later updates feishu-docx export-wiki-space "https://xxx.feishu.cn/wiki/ABC123" -o ./docs -b
bash# Export bitable/workspace database schema as Markdown feishu-docx export-workspace-schema <workspace_id> # Specify output file feishu-docx export-workspace-schema <workspace_id> -o ./schema.md
bash# Create empty document feishu-docx create "我的笔记" # Create with Markdown content feishu-docx create "会议记录" -c "# 会议纪要\n\n- 议题一\n- 议题二" # Create from Markdown file feishu-docx create "周报" -f ./weekly_report.md # Create in specific folder feishu-docx create "笔记" --folder fldcnXXXXXX # Create from a WeChat article URL feishu-docx create --url "https://mp.weixin.qq.com/s/xxxxx"
如何获取 folder token:
https://xxx.feishu.cn/drive/folder/fldcnXXXXXXfldcnXXXXXX 就是 folder tokenbash# Append Markdown content feishu-docx write "https://xxx.feishu.cn/docx/xxx" -c "## 新章节\n\n内容" # Append from file feishu-docx write "https://xxx.feishu.cn/docx/xxx" -f ./content.md
bash# List app cloud-space documents feishu-docx drive ls --auth-mode tenant --type docx # List personal cloud-space documents feishu-docx drive ls --auth-mode oauth --type docx # Show public permission feishu-docx drive perm-show "https://xxx.feishu.cn/docx/ABC123" # List permission members feishu-docx drive perm-members "https://xxx.feishu.cn/docx/ABC123" # Clear files with double confirmation feishu-docx drive clear --type docx
bash# Step 1: Export with Block IDs feishu-docx export "https://xxx.feishu.cn/docx/xxx" -b -o ./ # Step 2: Find block ID from HTML comments # <!-- block:blk123abc --> # # Heading # <!-- /block --> # Step 3: Update the specific block feishu-docx update "https://xxx.feishu.cn/docx/xxx" -b blk123abc -c "新内容"
> Tip for AI Agents: When you need to update a specific section: > 1. Export with -b to get block IDs > 2. Find the target block ID from HTML comments > 3. Use feishu-docx update with that block ID
{doc_title}/ folder when local assets are availableexport-browser for public share links or browser-readable docs--stdout or -c for direct content output (recommended for agents)-b to export with block IDs for later updates--lark flagtenant_access_token manages app cloud space, user_access_token manages personal cloud space| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-09 | fail→pass | 10,019 | 2,054 | -79% | 1 | 1 | 0% | 1,793 | 2,351 | +31% | 0 | 0 | — |
case-10 | fail→pass | 17,244 | 2,629 | -85% | 1 | 1 | 0% | 2,946 | 2,456 | -17% | 0 | 0 | — |
case-01 | fail→pass | 14,322 | 4,014 | -72% | 1 | 1 | 0% | 2,790 | 2,602 | -7% | 0 | 0 | — |
case-02 | fail→pass | 13,029 | 2,667 | -80% | 1 | 1 | 0% | 2,520 | 2,464 | -2% | 0 | 0 | — |
case-03 | fail→pass | 9,330 | 3,147 | -66% | 1 | 1 | 0% | 1,732 | 2,503 | +45% | 0 | 0 | — |
case-04 | pass→pass | 11,598 | 9,304 | -20% | 1 | 1 | 0% | 1,928 | 3,659 | +90% | 0 | 0 | — |
case-05 | pass→pass | 13,563 | 7,036 | -48% | 1 | 1 | 0% | 2,287 | 3,346 | +46% | 0 | 0 | — |
case-06 | pass→pass | 13,437 | 7,707 | -43% | 1 | 1 | 0% | 2,447 | 3,443 | +41% | 0 | 0 | — |
case-07 | fail→pass | 10,875 | 2,565 | -76% | 1 | 1 | 0% | 1,968 | 2,412 | +23% | 0 | 0 | — |
case-08 | fail→pass | 8,428 | 2,351 | -72% | 1 | 1 | 0% | 1,460 | 2,452 | +68% | 0 | 0 | — |
case-11 | fail→pass | 12,486 | 2,423 | -81% | 1 | 1 | 0% | 1,971 | 2,453 | +24% | 0 | 0 | — |
case-12 | fail→pass | 16,110 | 2,445 | -85% | 1 | 1 | 0% | 3,189 | 2,442 | -23% | 0 | 0 | — |
case-13 | fail→pass | 13,472 | 1,723 | -87% | 1 | 1 | 0% | 2,348 | 2,278 | -3% | 0 | 0 | — |
case-14 | fail→pass | 10,969 | 2,257 | -79% | 1 | 1 | 0% | 1,533 | 2,347 | +53% | 0 | 0 | — |
case-15 | fail→pass | 10,110 | 2,093 | -79% | 1 | 1 | 0% | 1,952 | 2,413 | +24% | 0 | 0 | — |
case-16 | fail→pass | 13,107 | 2,377 | -82% | 1 | 1 | 0% | 2,255 | 2,431 | +8% | 0 | 0 | — |
case-17 | fail→pass | 5,867 | 1,883 | -68% | 1 | 1 | 0% | 988 | 2,300 | +133% | 0 | 0 | — |
case-18 | fail→pass | 10,554 | 3,139 | -70% | 1 | 1 | 0% | 1,944 | 2,359 | +21% | 0 | 0 | — |
case-19 | fail→pass | 8,847 | 2,669 | -70% | 1 | 1 | 0% | 1,474 | 2,419 | +64% | 0 | 0 | — |
case-20 | fail→pass | 16,255 | 3,580 | -78% | 1 | 1 | 0% | 2,545 | 2,586 | +2% | 0 | 0 | — |
case-21 | fail→pass | 7,656 | 1,742 | -77% | 1 | 1 | 0% | 1,150 | 2,225 | +93% | 0 | 0 | — |
case-22 | fail→pass | 9,677 | 2,375 | -75% | 1 | 1 | 0% | 1,552 | 2,416 | +56% | 0 | 0 | — |
case-23 | fail→pass | 22,570 | 3,065 | -86% | 1 | 1 | 0% | 4,251 | 2,507 | -41% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +87 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.