Connect Lark (Feishu) messaging to OpenClaw via webhook bridge. Supports text, rich text (post), and image messages bidirectionally. Use when setting up Lark/Feishu as a messaging channel, receiving messages with images, sending replies back to Lark, reading Lark documents/wikis/bitables, or troubleshooting Lark integration issues. Covers both Lark International (larksuite.com) and China Feishu (feishu.cn).
Connect Lark (Feishu) to OpenClaw for bidirectional messaging with full rich content support.
# 1. Set credentials
echo "FEISHU_APP_ID=cli_xxx" >> ~/.openclaw/workspace/.env
mkdir -p ~/.openclaw/secrets
echo "your_app_secret" > ~/.openclaw/secrets/feishu_app_secret
# 2. Start bridge
cd skills/lark-integration/scripts
node bridge-webhook.mjs
# 3. Configure Lark webhook URL in developer console
# https://open.larksuite.com → Your App → Event Subscriptions
# URL: http://YOUR_SERVER_IP:3000/webhook
Lark App ──webhook──► Bridge (port 3000) ──WebSocket──► OpenClaw Gateway
│ │
◄────────── Reply ──────────────────┘
| Type | Direction | Format |
|---|---|---|
text | ↔ Both | Plain text |
post | → Receive | Rich text with images, links |
image | → Receive | Single image |
| Reply | ← Send | Text (cards via feishu-card skill) |
The bridge auto-detects platform from URLs:
*.larksuite.com → https://open.larksuite.com (International)*.feishu.cn → https://open.feishu.cn (China)| Variable | Required | Description |
|---|---|---|
FEISHU_APP_ID | Yes | App ID from Lark Developer Console |
FEISHU_APP_SECRET_PATH | No | Path to secret file (default: ~/.openclaw/secrets/feishu_app_secret) |
WEBHOOK_PORT | No | Webhook listen port (default: 3000) |
FEISHU_THINKING_THRESHOLD_MS | No | Delay before "Thinking..." placeholder (default: 2500) |
FEISHU_ENCRYPT_KEY | No | Encryption key if enabled in Lark |
OPENCLAW_AGENT_ID | No | Agent to route messages to (default: main) |
Enable these scopes in Lark Developer Console → Permissions & Scopes:
Messaging:
im:message - Send and receive messagesim:message:send_as_bot - Send messages as botim:resource - Download message resources (images)Documents (optional):
docx:document:readonly - Read documentswiki:wiki:readonly - Read wiki spacessheets:spreadsheet:readonly - Read spreadsheetsbitable:bitable:readonly - Read bitablesdrive:drive:readonly - Access drive filesMain webhook bridge. Receives Lark events, forwards to OpenClaw, sends replies.
FEISHU_APP_ID=cli_xxx node scripts/bridge-webhook.mjs
Install as systemd service for auto-start:
node scripts/setup-service.mjs
# Creates /etc/systemd/system/lark-bridge.service
Images in messages are:
post content or image message typemessage_id and image_keyattachments parameter