Feishu / Lark

Feishu (Lark) bot integration via WebSocket long connection with DMs, group chats, streaming card output, and multi-agent routing.

Feishu (also known as Lark internationally) is OpenClaw's integration for ByteDance's enterprise collaboration platform, widely used by companies in China and increasingly adopted globally. This plugin connects OpenClaw to a Feishu/Lark bot using the platform's WebSocket event subscription — meaning messages are received over an outbound connection with no public webhook URL required, similar to how Telegram long polling and Discord Gateway work. The plugin ships bundled with current OpenClaw releases, so no separate install is needed (though older builds may require manual installation via openclaw plugins install @openclaw/feishu). Setup involves creating a self-built app on Feishu Open Platform, configuring App ID and App Secret, enabling bot capability, setting required permissions (im:message, im:message.p2p_msg:readonly, im:resource, etc.), and pointing OpenClaw at the credentials. Feishu supports text, images, audio, video, files, stickers, and group chats. A standout feature is streaming card output — responses are delivered progressively using Feishu's interactive card system, giving users a real-time typing experience. Rich text (post format) inbound messages are parsed correctly. Lark (global) tenants are supported by setting domain: 'lark' in the config, which routes API calls to open.larksuite.com instead of open.feishu.cn. Multi-account and multi-agent routing are supported, making Feishu particularly useful for organizations that want different bot personalities or agent configurations across different groups or departments. The WebSocket long connection means the bot works behind corporate firewalls and NAT without any ingress configuration — a critical requirement for enterprise Chinese deployments where outbound-only connectivity is often mandated.

Tags: workspace, china, enterprise, lark

Category: Workspace

Use Cases

  • Enterprise AI assistant for Chinese companies using Feishu
  • Global team AI bot via Lark for international organizations
  • Behind-firewall corporate deployment (WebSocket outbound-only connectivity)
  • Department-specific agents using multi-agent routing
  • Streaming AI assistant with Feishu card-based progressive responses
  • Private conversational AI for individual team members via DM

Tips

  • Use the onboarding wizard (openclaw onboard) for guided Feishu setup — it walks through credential collection
  • Set domain: 'lark' in config if you're on the global Lark platform instead of China Feishu
  • WebSocket mode means no public URL needed — perfect for behind-firewall corporate environments
  • Use the streaming card output for better UX — responses appear progressively like ChatGPT
  • Start with a single-user DM setup before expanding to group chats
  • Check gateway logs (openclaw logs --follow) immediately after setup to catch permission errors early
  • Multi-agent routing lets different groups get different agent personalities — useful for department-specific bots

Known Issues & Gotchas

  • Feishu (China) and Lark (global) use different API domains — set domain: 'lark' for Lark tenants or API calls will fail
  • Permissions must be batch-imported using the exact JSON format — missing even one scope causes silent failures
  • The app must be published (or in development mode with your test users added) before the bot receives messages
  • WebSocket mode must be explicitly selected in Event Subscription — HTTP webhook mode is the default
  • App Secret is shown only once during creation — save it immediately
  • Group chat support requires adding the bot to groups manually — it doesn't auto-join
  • The bot is recommended as a private conversational assistant — avoid adding to large group chats for security
  • Feishu tenant admins can restrict which apps are installable — check organization policies

Alternatives

  • Slack
  • Google Chat
  • Microsoft Teams
  • Discord

Community Feedback

I ended up using OpenClaw on ClawCloud. OpenClaw uses Feishu's WebSocket long connection option instead of webhooks — the connection is outbound, so no public URL headache.

— Reddit r/OpenClawCloud

Feishu and Lark support added — WebSocket long connection. This came up often enough in questions that it felt worth a proper write-up. OpenClaw now runs on Feishu and Lark through ClawCloud.

— GitHub Discussions

The plugin offers several configuration options to tailor its behavior. All settings are located under the channels.feishu key in your OpenClaw config.

— NPM @larksuiteoapi/feishu-openclaw-plugin

Frequently Asked Questions

Do I need a public URL for Feishu?

No. Feishu uses WebSocket long connections, which are outbound from your server. This works behind NAT, firewalls, and corporate networks without any public URL configuration. This is one of Feishu's biggest advantages over Google Chat.

What's the difference between Feishu and Lark?

Feishu (飞书) is ByteDance's collaboration platform for the China market. Lark is the international version. They're functionally identical but use different API domains and account systems. Set domain: 'lark' in your OpenClaw config for Lark tenants.

Does the Feishu plugin need to be installed separately?

No, for current OpenClaw releases. The Feishu plugin ships bundled. Older builds or custom installations may need: openclaw plugins install @openclaw/feishu

Can I use Feishu in group chats?

Yes, but the bot must be manually added to groups. For security, OpenClaw recommends using the bot as a private conversational assistant rather than in large group chats where anyone can prompt it.

What are the streaming cards in Feishu?

Feishu supports interactive cards that can be updated in real time. OpenClaw uses this feature to deliver streaming responses — you see the AI's reply being composed progressively, similar to the ChatGPT interface. This provides much better UX than waiting for a complete response.

Configuration Examples

Basic Feishu setup (China)

channels:
  feishu:
    enabled: true
    appId: "cli_a1234567890b"
    appSecret: "your-app-secret"

Lark global setup

channels:
  feishu:
    enabled: true
    appId: "cli_a1234567890b"
    appSecret: "your-app-secret"
    domain: lark

Multi-account setup

channels:
  feishu:
    enabled: true
    appId: "cli_default_app"
    appSecret: "default-secret"
    accounts:
      hr-bot:
        appId: "cli_hr_bot_app"
        appSecret: "hr-secret"
      eng-bot:
        appId: "cli_eng_bot_app"
        appSecret: "eng-secret"

Installation

Built-in (bundled with OpenClaw)