by leemysw
🚀 Feishu/Lark Docs、Sheet、Bitable <-> Markdown | AI Agent-friendly knowledge base exporter and writer with OAuth 2.0, CLI, TUI & Claude Skills support - 飞书文档 <写入/导出> Markdown | AI Agent 友好型导出-写入工具
# Add to your Claude Code skills
git clone https://github.com/leemysw/feishu-docxexport-browser for public docs and docs readable in your current browser sessionexport improves public-share asset fallback by warming the document page session firstLet AI Agents read, write, and manage your Feishu/Lark knowledge base.
pip install and start exporting# Install
pip install feishu-docx
# Configure credentials (one-time)
feishu-docx config set --app-id YOUR_APP_ID --app-secret YOUR_APP_SECRET
# Export! (auto-obtains tenant_access_token, no OAuth needed)
feishu-docx export "https://my.feishu.cn/wiki/KUIJwaBuGiwaSIkkKJ6cfVY8nSg"
# Create a Feishu doc directly from a WeChat article
feishu-docx create --url "https://mp.weixin.qq.com/s/xxxxx"
# Manage app cloud-space documents
feishu-docx drive ls --type docx
# Optional: Use OAuth mode for user-level permissions
# feishu-docx config set --auth-mode oauth && feishu-docx auth
No comments yet. Be the first to share your thoughts!
Enable Agent to access your Feishu knowledge base directly!
This project includes a Claude Skill at .skills/feishu-docx/SKILL.md.
Supports OpenCode, Claude Code, Codex, Cursor, and more.
Copy this Skill to your agent project, and Claude can:
| Feature | Description | |-------------------------|-------------------------------------------------| | 📄 Document Export | Docx → Markdown with formatting, images, tables | | 📊 Spreadsheet Export | Sheet → Markdown tables | | 📋 Bitable Export | Multidimensional tables → Markdown | | 📚 Wiki Export | Auto-resolve wiki nodes | | 🗂️ Wiki Batch Export | Recursively export entire wiki space with hierarchy | | ✍️ Document Writing | Create docs, append Markdown, update specific blocks | | 📰 WeChat Import/Export | Export WeChat articles or create Feishu docs from them | | 🌐 Browser-Based Export | Export public docs or docs accessible in the current browser session, with local assets | | ☁️ Drive Management | List files, delete files, manage permissions, clear files | | 🗄️ Database Schema | Export APaaS database structure to Markdown | | 🧷 Local Asset Download | Images and attachments saved locally with relative paths | | 🔐 Auth | Auto tenant_access_token (recommended) or OAuth 2.0 | | 🎨 Beautiful TUI | Terminal UI powered by Textual |
This tool currently supports exporting the following Feishu/Lark document components:
| Category | Features | Status | Notes | |----------------|----------------------------------------------------------------|--------|------------------------------------------| | Basic Text | Headings, Paragraphs, Lists, Tasks (Todo), Code Blocks, Quotes | ✅ | Fully Supported | | Formatting | Bold, Italic, Strikethrough, Underline, Links, @Mentions | ✅ | Fully Supported | | Layout | Columns, Callouts, Dividers | ✅ | Fully Supported | | Tables | Native Tables | ✅ | Export to Markdown/HTML | | Media | Images, Drawing Boards | ✅ | Drawing boards exported as images | | Embedded | Spreadsheets (Sheets), Bitable | ✅ | Text content only | | Special | Synced Blocks | ⚠️ | Original blocks within the same doc only | | Files | Attachments | ✅ | Local download when possible, temp link fallback |
export-browser requires Playwright:
pip install playwright
playwright install chromium
# Export single document to specific directory
feishu-docx export "https://xxx.feishu.cn/docx/xxx" -o ./docs
# Choose display values or formulas for Sheets (affects Sheet and embedded Sheet only)
feishu-docx export "https://xxx.feishu.cn/wiki/xxx" --table md --sheet-value-mode display
feishu-docx export "https://xxx.feishu.cn/wiki/xxx" --table md --sheet-value-mode formula
# Export a public or browser-readable doc in a real browser session
feishu-docx export-browser "https://xxx.larkoffice.com/wiki/xxx" -o ./browser_docs
# Export with existing Playwright storage state
feishu-docx export-browser "https://xxx.larkoffice.com/wiki/xxx" --storage-state ./storage_state.json
# Batch export entire wiki space (preserves hierarchy)
feishu-docx export-wiki-space <space_id_or_url> -o ./wiki_backup --max-depth 5
# Export APaaS database schema
feishu-docx export-workspace-schema <workspace_id> -o ./database_schema.md
# Export WeChat article to Markdown
feishu-docx export-wechat "https://mp.weixin.qq.com/s/xxxxxx"
# Fetch a WeChat article and create a Feishu doc
feishu-docx create --url "https://mp.weixin.qq.com/s/xxxxxx"
# List app cloud-space documents in tenant mode
feishu-docx drive ls --type docx
# Manage public permission of a document
feishu-docx drive perm-show "https://xxx.feishu.cn/docx/xxx"
feishu-docx drive perm-set "https://xxx.feishu.cn/docx/xxx" --share-entity anyone_can_view
# Clear files in cloud space with double confirmation
feishu-docx drive clear --type docx
# Use token directly
feishu-docx export "URL" -t your_access_token
# Launch TUI
feishu-docx tui
from feishu_docx import FeishuExporter
# Initialize (uses tenant_access_token by default)
exporter = FeishuExporter(app_id="xxx", app_secret="xxx")
# Export single document
path = exporter.export("https://xxx.feishu.cn/wiki/xxx", "./output")
# Get content without saving
content = exporter.export_content("https://xxx.feishu.cn/docx/xxx")
# Export a public or browser-readable doc via a real browser session
browser_path = exporter.export_with_browser(
"https://xxx.larkoffice.com/wiki/xxx",
"./browser_output",
)
# Get browser-based export content without saving
browser_content = exporter.export_content_with_browser(
"https://xxx.larkoffice.com/wiki/xxx",
)
# Batch export entire wiki space
result = exporter.export_wiki_space(
space_id="xxx",
output_dir="./wiki_backup",
max_depth=3,
)
print(f"Exported {result['exported']} docs to {result['space_dir']}")
http://127.0.0.1:9527/"docx:document:readonly" # 查看云文档
"wiki:wiki:readonly" # 查看知识库
"drive:drive:readonly" # 查看云空间文件(图片下载)
"sheets:spreadsheet:readonly" # 查看电子表格
"bitable:app:readonly" # 查看多维表格
"board:whiteboard:node:read" # 查看白板
"contact:contact.base:readonly" # 获取用户基本信息(@用户名称)
"offline_access" # 离线访问(获取 refresh_token)
feishu-docx config set --app-id cli_xxx --app-secret xxx
| | Tenant Mode (Default) | OAuth Mode |
|---|---|---|
| Token Type | tenant_access_token | user_access_token |
| Setup | Configure permissions in Open Platform | Request permissions during OAuth flow |
| User Interaction | ✅ Automatic, no user action needed | ❌ Requires browser authorization |
| Access Scope | Documents the app has permission to | Documents the user has permission to |
| Best For | Server automation, AI Agents | Accessing user's private documents |
Tenant Mode (Recommended for most cases):
# One-time setup
feishu-docx config set --app-id xxx --app-secret xxx
# Export (auto-obtains tenant_access_token)
feishu-docx export "https://xxx.feishu.cn/docx/xxx"
⚠️ Tenant mode requires pre-configuring document permissions in