--- name: larksuite-wiki description: Manage and export Lark Suite (Feishu) Wiki/Knowledge Base documents. Read, search, sync with subdocuments, and incremental export to local Markdown files. homepage: https://open.larksuite.com tags: [lark, wiki, knowledge-base, export, sync, markdown] metadata: { "openclaw": { "emoji": "πŸ“š", "requires": { "env": ["LARK_APP_ID", "LARK_APP_SECRET"] }, "primaryEnv": "LARK_APP_ID", }, } --- # Lark Suite Wiki Manage and export Lark Suite (Feishu) Wiki/Knowledge Base documents with recursive sync and incremental updates. ## Prerequisites 1. Create a Lark/Feishu app at https://open.larksuite.com/console 2. Enable permissions: - `docs:doc:read` - `drive:drive:read` - `wiki:wiki:read` 3. Publish the app and authorize it to access your wiki 4. Set environment variables (or edit script defaults): ```bash export LARK_APP_ID="cli_xxxxxxxx" export LARK_APP_SECRET="xxxxxxxx" ``` ## Commands ### List Wiki Spaces ```bash larksuite-wiki spaces ``` ### Read Document (with subdocument links) ```bash larksuite-wiki read ``` ### Export Single Document ```bash larksuite-wiki export --output ./docs/ ``` ### Show Document Tree Structure ```bash larksuite-wiki tree ``` ### Sync Entire Wiki (Recursive Export) ```bash # First sync - exports all documents larksuite-wiki sync --output ./lark-wiki/ # Incremental sync - only exports changed documents larksuite-wiki sync --output ./lark-wiki/ # Force re-export everything larksuite-wiki sync --output ./lark-wiki/ --force ``` ## Features ### 1. βœ… Batch Export Export entire knowledge base with one command. ### 2. βœ… Recursive Subdocument Export Automatically follows and exports all linked subdocuments. ### 3. βœ… Preserves Directory Structure Creates nested folders matching your wiki structure: ``` lark-wiki/ β”œβ”€β”€ 01_ι¦–ι‘΅/ β”‚ β”œβ”€β”€ 01_ι¦–ι‘΅.md β”‚ └── 01_ζ—₯εΈΈε€η›˜/ β”‚ β”œβ”€β”€ 01_ζ—₯εΈΈε€η›˜.md β”‚ └── ... β”œβ”€β”€ 02_δΊ‘θͺι‡‘θžεˆ†ζž/ β”‚ └── ... ``` ### 4. βœ… Incremental Sync Tracks document revisions and only exports changed documents: - Saves sync state to `.lark-sync-state.json` - Compares revision IDs - Skips unchanged documents ## Quick Start ### Export your entire wiki ```bash # Get your wiki root document ID from the URL # https://xxx.larksuite.com/wiki/TDCZweBJ2iMFO4kI1LAlSE62gnd # Sync everything python3 larksuite-wiki.py sync TDCZweBJ2iMFO4kI1LAlSE62gnd --output ./my-wiki/ ``` ### Daily incremental sync ```bash # Run daily - only exports changed documents python3 larksuite-wiki.py sync TDCZweBJ2iMFO4kI1LAlSE62gnd --output ./my-wiki/ ``` ## Output Structure Each document gets its own folder: - Main `.md` file - Subfolders for child documents - Numbered prefixes for ordering (01_, 02_, etc.) ## API Reference - Lark Open Platform: https://open.larksuite.com/ - Wiki API: https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/wiki-v1/space/overview - Docx API: https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/docx-v1/document/overview ## Notes - Documents must be explicitly shared with your app - Some block types may not convert perfectly to Markdown - Large wikis with many subdocuments may take time to sync - Sync state is saved locally for incremental updates