← Back to Skills
Productivity

larksuite-wiki

ryanhong666 By ryanhong666 👁 6 views ▲ 0 votes

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

GitHub
---
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 <doc_id_or_url>
```

### Export Single Document
```bash
larksuite-wiki export <doc_id_or_url> --output ./docs/
```

### Show Document Tree Structure
```bash
larksuite-wiki tree <doc_id_or_url>
```

### Sync Entire Wiki (Recursive Export)
```bash
# 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
```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
productivity

Comments

Sign in to leave a comment

Loading comments...