feishu-messaging
Best practices for Feishu (Lark) message configuration and formatting. Use when: (1) Configuring Feishu channel settings, (2) Experiencing message formatting issues (raw vs card), (3) Setting up renderMode for stable message display, (4) Understanding differences between auto-replies and proactive messages. Essential for ensuring consistent message formatting in Feishu chats.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/heimo-he/feishu-messaging-enFeishu Messaging Configuration
Quick Start
For stable, consistent message formatting in Feishu, configure:
channels:
feishu:
renderMode: "card" # Recommended for most use cases
This ensures all auto-replies use interactive cards with proper markdown rendering.
Message Format Stability
The Problem: Raw vs Card Mixing
Without proper configuration, Feishu messages can inconsistently appear as:
- Raw text: Plain markdown source, no formatting
- Card format: Rendered markdown with syntax highlighting, tables, links
This creates a poor user experience with unpredictable message appearance.
The Solution: Explicit renderMode
Set renderMode explicitly instead of relying on "auto":
| Mode | Behavior | Use Case |
|---|---|---|
auto | Detects content, uses card for code/tables | Default, but can be inconsistent |
raw | Always plain text | Simple text-only responses |
card | Always interactive card | Recommended - consistent formatting |
Recommended configuration:
channels:
feishu:
renderMode: "card"
This guarantees:
- ✅ Consistent message appearance
- ✅ Proper markdown rendering (syntax highlighting, tables, links)
- ✅ No unexpected format switching
- ✅ Professional, polished look
Auto-Reply vs Proactive Messages
Auto-Replies (Bot responds to user messages)
Controlled by renderMode:
renderMode: "card"→ All auto-replies use card formatrenderMode: "raw"→ All auto-replies use plain text
Example flow:
- User: "Show me the code"
- Bot auto-reply uses card format (if
renderMode: "card")
Proactive Messages (Bot sends via message tool)
Always use plain text format via outbound.sendText.
To send card format proactively:
- Ask user to send a message first
- Bot replies to that message (uses
renderMode)
Example:
User: "Remind me about the meeting"
Bot (proactive): "OK, reminder set" # Plain text via message tool
vs
User: "Set up a reminder"
Bot (auto-reply): "OK, reminder set" # Card format if renderMode: "card"
Configuration Checklist
Basic Setup
channels:
feishu:
enabled: true
appId: "cli_xxxxx"
appSecret: "secret"
renderMode: "card" # 🔑 Key setting for stable formatting
Advanced Options
channels:
feishu:
# Connection
connectionMode: "websocket" # Recommended
domain: "feishu" # or "lark" for international
# Message behavior
requireMention: true # Groups: bot only responds when @mentioned
mediaMaxMb: 30
# Access control
dmPolicy: "pairing" # DM requires approval
groupPolicy: "allowlist" # Only allowed groups
Troubleshooting
Messages appear as raw markdown
Problem: Users see unformatted markdown source
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-heimo-he-feishu-messaging-en": {
"enabled": true,
"auto_update": true
}
}
}