← Back to Notes & PKM
Notes & PKM by @ryanhong666

larksuite-wiki

Manage and export Lark Suite (Feishu) Wiki/Knowledge Base

0
Source Code

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):
    export LARK_APP_ID="cli_xxxxxxxx"
    export LARK_APP_SECRET="xxxxxxxx"
    

Commands

List Wiki Spaces

larksuite-wiki spaces

Read Document (with subdocument links)

larksuite-wiki read <doc_id_or_url>

Export Single Document

larksuite-wiki export <doc_id_or_url> --output ./docs/

Show Document Tree Structure

larksuite-wiki tree <doc_id_or_url>

Sync Entire Wiki (Recursive Export)

# First sync - exports all documents
larksuite-wiki sync <doc_id_or_url> --output ./lark-wiki/

# Incremental sync - only exports changed documents
larksuite-wiki sync <doc_id_or_url> --output ./lark-wiki/

# Force re-export everything
larksuite-wiki sync <doc_id_or_url> --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

# 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

# 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

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