Skip to content
Guides

OpenClaw Feishu setup

The channel login wizard with manual or QR setup, the Feishu versus Lark API domain, verifying the channel, durable queuing of message and comment events with the acceptance header, the socket that resets rather than skipping an uncommitted turn, and the one-hour webhook delivery window as replay defence

5 min read

Feishu, and its international twin Lark, connect through a wizard that can even create the bot for you by scanning a QR code. The interesting part of the docs is what happens after setup: how inbound events are queued so a restart loses nothing, and why a signed webhook older than an hour is refused. Here is the quick start, the durability model, and the delivery window.

Quick start

  • The channel requires OpenClaw 2026.5.29 or above, checked with the version command and upgraded with the update command.
  • The channels login command for the Feishu channel installs the plugin if it is missing and walks through setup: manual setup pastes an App ID and App Secret from the Feishu Open Platform or the Lark Developer console, and QR setup scans a code in the Feishu app to create a bot automatically, locking DMs to your own account with an allowlist policy and your open ID.
  • The wizard also asks for the API domain, Feishu or Lark, and the group policy, and if the domestic Feishu mobile app does not react to the QR code you rerun setup and choose manual setup.
  • Config changes follow hot reload, the status probe checks that Feishu is ready, and the gateway is started if it is offline.
There is no configuration key for this window; it is intentionally fixed.

Inbound durability

OpenClaw durably queues authenticated message-receive and comment-add envelopes before agent dispatch. In webhook mode the durable 200 carries the accepted-delivery header with the durable value, while verification challenges, non-durable event types and error responses omit it, so a reverse proxy can require the marker to distinguish durable acceptance from a generic 200. Pending or retryable events survive a gateway restart, remain serialised per chat or document, and use Feishu's event ID to suppress duplicate queue entries while the active or retained completion record exists. If a WebSocket event cannot be persisted after bounded retries, OpenClaw closes that socket and forces a fresh authenticated connection instead of continuing past an uncommitted turn. Other Feishu event types, including reactions and meeting invitations, use their normal event paths and do not receive the durable-queue guarantee.

The webhook delivery window

  • Feishu signs each webhook delivery at send time, so a captured signed callback stays validly signed forever; webhook mode therefore rejects any signed callback whose request timestamp is more than one hour before or after the gateway host's clock, before the body is parsed, as a replay defence that works with the per-message replay guard and its 24-hour window so a re-delivered signed callback cannot re-trigger the same action.
  • The practical consequences are a gateway host clock kept synchronised with NTP, since a drift of more than an hour rejects fresh deliveries, and ordinary redeliveries that carry fresh timestamps and are unaffected.
  • WebSocket mode is not affected by the window, and there is no configuration key for it; it is intentionally fixed.

OpenClaw on Feishu is the channel post this setup belongs to, and OpenClaw Feishu access control what to decide next about who may reach the bot.

Durable before dispatched

Queuing the envelope before the agent sees it is what lets a slow turn, a crash or a redelivery leave no duplicate and no gap, and the acceptance header lets the proxy in front verify that the queue took it. OpenClaw Telegram setup shows the same durable-ingress idea on Telegram's webhook, and Connect your first channel in five minutes the walkthrough for a first channel.

On Diali

Feishu and Lark are not among the channels Diali connects today: WhatsApp, Telegram, Discord, Slack, Mattermost, Matrix, SMS and voice. Hosted OpenClaw on Diali is the assistant and Diali security describes the boundary that applies to each connected channel.

  • Manual with an App ID, or QR that makes the bot for you.
  • Message and comment events are queued durably; reactions are not.
  • A signed webhook more than an hour off the clock is refused.
Get started

Stop reading about it, build one

Set up an agent, pick a channel, and have it working inside the app you already keep open.