lark-integrationConnect 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).
Install via ClawdBot CLI:
clawdbot install boyangwang/lark-integrationConnect 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 parameterattachments: [{ mimeType: "image/png", content: "<base64>" }]
In group chats, the bridge responds when:
? or ?Otherwise, messages are ignored to avoid noise.
Use the feishu-doc skill to read Lark documents:
node skills/feishu-doc/index.js fetch "https://xxx.larksuite.com/docx/TOKEN"
Supported URL types:
/docx/ - New documents/wiki/ - Wiki pages (auto-resolves to underlying doc)/sheets/ - Spreadsheets/base/ - Bitables (multi-dimensional tables)Permission Note: Documents must be shared with the bot, or the bot must have tenant-wide read permission.
docx:document:readonly in consolecurl http://YOUR_IP:3000/healthjournalctl -u lark-bridge -fattachments for imagesim:resource scope → Enable in Lark console# Check status
systemctl status lark-bridge
# View logs
journalctl -u lark-bridge -f
# Restart
systemctl restart lark-bridge
references/api-formats.md for message format detailsreferences/setup-guide.md for step-by-step setupGenerated Mar 1, 2026
Automate responses to customer inquiries in Lark group chats, handling text and image queries. The bot can be triggered by mentions or questions, reducing manual support workload and providing 24/7 assistance.
Set up a Lark bot to troubleshoot common IT issues, such as password resets or software errors, by analyzing text and screenshot attachments. It routes complex cases to human agents based on trigger words.
Enable employees to fetch and summarize Lark documents, wikis, or spreadsheets via chat commands. This streamlines access to company knowledge bases without leaving the messaging interface.
Use the bridge to send automated updates from CRM systems into Lark sales channels, with rich text posts. The bot can also collect feedback or questions from team chats for follow-up.
Deliver course materials and assignments through Lark, allowing students to submit images or ask questions. The bot responds with tailored resources or escalates to instructors based on query complexity.
Offer the Lark integration as part of a subscription service for businesses, providing ongoing support, updates, and premium features like advanced document parsing. Revenue comes from monthly or annual fees per user or tenant.
Provide one-time consulting services to help companies configure the bridge, set up Lark apps, and train teams. This model targets organizations needing custom integration or troubleshooting assistance.
Offer a basic version of the skill for free, with paid add-ons for features like high-volume messaging, priority support, or integration with other enterprise systems. This attracts small teams and scales with usage.
💬 Integration Tip
Ensure the Lark app has all required permissions, like im:message and im:resource, and test the webhook connectivity before deployment to avoid common errors.
iMessage/SMS CLI for listing chats, history, watch, and sending.
Use when you need to control Discord from Clawdbot via the discord tool: send messages, react, post or upload stickers, upload emojis, run polls, manage threads/pins/search, fetch permissions or member/role/channel info, or handle moderation actions in Discord DMs or channels.
Use when you need to control Slack from Clawdbot via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).
Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound).
OpenClaw skill for designing Telegram Bot API workflows and command-driven conversations using direct HTTPS requests (no SDKs).