Bundled plugin
Feishu は現在の OpenClaw リリースに同梱されているため、通常は別途プラグインをインストールする必要はありません。 ただし、同梱版を含まない古いビルドやカスタムインストールを使っている場合は、手動でインストールしてください。Quickstart
Feishu チャンネルの追加方法は 2 つあります。Method 1: onboarding wizard (recommended)
OpenClaw をインストールした直後であれば、ウィザードを実行してください。- Feishu アプリを作成し、認証情報を取得する
- OpenClaw にアプリ認証情報を設定する
- ゲートウェイを起動する
openclaw gateway statusopenclaw logs --follow
Method 2: CLI setup
初期セットアップがすでに完了している場合は、CLI からチャンネルを追加できます。openclaw gateway statusopenclaw gateway restartopenclaw logs --follow
Step 1: Create a Feishu app
1. Open Feishu Open Platform
Feishu Open Platform を開いてサインインします。 Lark (グローバル) テナントを使う場合は https://open.larksuite.com/app を開き、Feishu の設定でdomain: "lark" を指定してください。
2. Create an app
- Create enterprise app をクリックします。
- アプリ名と説明を入力します。
- アプリアイコンを選択します。

3. Copy credentials
Credentials & Basic Info から次の値を控えます。- App ID (形式:
cli_xxx) - App Secret

4. Configure permissions
Permissions で Batch import をクリックし、次の内容を貼り付けます。
5. Enable bot capability
App Capability > Bot で次を設定します。- ボット機能を有効にする
- ボット名を設定する

6. Configure event subscription
⚠️ Important: イベントサブスクリプションを設定する前に、次の 2 点を確認してください。- Feishu に対して
openclaw channels addをすでに実行済みであること - ゲートウェイが起動していること (
openclaw gateway status)
- Use long connection to receive events (WebSocket) を選択する
im.message.receive_v1イベントを追加する

7. Publish the app
- Version Management & Release でバージョンを作成します。
- レビューへ提出して公開します。
- 管理者承認を待ちます。enterprise app では自動承認されることが一般的です。
Step 2: Configure OpenClaw
Configure with the wizard (recommended)
Configure via config file
~/.openclaw/openclaw.json を編集します。
connectionMode: "webhook" を使う場合は verificationToken を設定してください。Feishu の webhook サーバーはデフォルトで 127.0.0.1 に bind されます。意図的に別の bind address が必要な場合にだけ webhookHost を設定してください。
Verification Token (webhook mode)
webhook モードを使う場合は、設定でchannels.feishu.verificationToken を指定します。取得手順は次のとおりです。
- Feishu Open Platform で対象アプリを開きます。
- Development → Events & Callbacks (开发配置 → 事件与回调) を開きます。
- Encryption タブ (加密策略) を開きます。
- Verification Token をコピーします。

Configure via environment variables
Lark (global) domain
テナントが Lark (国際版) にある場合は、domain をlark に設定してください。完全なドメイン文字列を指定することもできます。設定先は channels.feishu.domain またはアカウント単位の channels.feishu.accounts.<id>.domain です。
Quota optimization flags
Feishu API の利用量を減らしたい場合は、次の 2 つのオプションフラグを使えます。typingIndicator(デフォルトtrue):falseにすると、入力中リアクションの API 呼び出しを省略します。resolveSenderNames(デフォルトtrue):falseにすると、送信者プロフィール解決の API 呼び出しを省略します。
Step 3: Start + test
1. Start the gateway
2. Send a test message
Feishu 上でボットを探し、テストメッセージを送信します。3. Approve pairing
デフォルトでは、ボットはペアリングコードを返します。次のコマンドで承認します。Overview
- Feishu bot channel: ゲートウェイが管理する Feishu ボットチャンネルです。
- Deterministic routing: 返信は常に Feishu へ戻ります。
- Session isolation: DM は main session を共有し、グループは分離されます。
- WebSocket connection: Feishu SDK を使う長時間接続で動作し、公開 URL は不要です。
Access control
Direct messages
-
デフォルト:
dmPolicy: "pairing"。未知のユーザーにはペアリングコードが返されます。 -
ペアリング承認:
-
allowlist モード:
channels.feishu.allowFromに許可する Open ID を設定します。
Group chats
1. Group policy (channels.feishu.groupPolicy)
"open"= グループ内の全員を許可します (デフォルト)"allowlist"=groupAllowFromに含まれるものだけを許可します"disabled"= グループメッセージを無効化します
channels.feishu.groups.<chat_id>.requireMention)
true= @mention 必須 (デフォルト)false= メンションなしでも応答
Group configuration examples
Allow all groups, require @mention (default)
Allow all groups, no @mention required
Allow specific groups only
Restrict which senders can message in a group (sender allowlist)
グループ自体を許可するだけでなく、そのグループ内の すべてのメッセージ を送信者のopen_id で制限できます。groups.<chat_id>.allowFrom に含まれるユーザーのメッセージだけが処理され、それ以外のメンバーからのメッセージは無視されます。これは /reset や /new のような制御コマンドだけでなく、通常のメッセージにも適用されます。
Get group/user IDs
Group IDs (chat_id)
グループ ID はoc_xxx のような形式です。
Method 1 (recommended)
- ゲートウェイを起動し、グループ内でボットを @mention します。
openclaw logs --followを実行し、chat_idを探します。
User IDs (open_id)
ユーザー ID はou_xxx のような形式です。
Method 1 (recommended)
- ゲートウェイを起動し、ボットへ DM を送ります。
openclaw logs --followを実行し、open_idを探します。
Common commands
| Command | Description |
|---|---|
/status | ボットの状態を表示 |
/reset | セッションをリセット |
/model | モデルの表示 / 切り替え |
Note: Feishu は現時点でネイティブなコマンドメニューをサポートしていないため、コマンドはテキストとして送信する必要があります。
Gateway management commands
| Command | Description |
|---|---|
openclaw gateway status | ゲートウェイ状態を表示 |
openclaw gateway install | ゲートウェイサービスをインストール / 起動 |
openclaw gateway stop | ゲートウェイサービスを停止 |
openclaw gateway restart | ゲートウェイサービスを再起動 |
openclaw logs --follow | ゲートウェイログを追跡 |
Troubleshooting
Bot does not respond in group chats
- ボットがグループへ追加されていることを確認します。
- デフォルト挙動では @mention が必要です。メンションしているか確認します。
groupPolicyが"disabled"になっていないことを確認します。openclaw logs --followでログを確認します。
Bot does not receive messages
- アプリが公開済みかつ承認済みであることを確認します。
- イベントサブスクリプションに
im.message.receive_v1が含まれていることを確認します。 - long connection が有効であることを確認します。
- アプリ権限が不足していないことを確認します。
- ゲートウェイが起動していることを確認します:
openclaw gateway status openclaw logs --followでログを確認します。
App Secret leak
- Feishu Open Platform 上で App Secret をリセットします。
- 設定内の App Secret を更新します。
- ゲートウェイを再起動します。
Message send failures
- アプリに
im:message:send_as_bot権限があることを確認します。 - アプリが公開済みであることを確認します。
- ログで詳細エラーを確認します。
Advanced configuration
Multiple accounts
defaultAccount は、送信 API で accountId を明示しない場合に、どの Feishu アカウントを使うかを決めます。
Message limits
textChunkLimit: 送信テキストのチャンクサイズ (デフォルト 2000 文字)mediaMaxMb: メディアのアップロード / ダウンロード上限 (デフォルト 30 MB)
Streaming
Feishu は interactive card を使ったストリーミング返信に対応しています。有効にすると、ボットはテキスト生成中にカードを更新します。streaming: false を設定してください。
Multi-agent routing
bindings を使うと、Feishu の DM やグループを別のエージェントへルーティングできます。
match.channel:"feishu"match.peer.kind:"direct"または"group"match.peer.id: ユーザー Open ID (ou_xxx) またはグループ ID (oc_xxx)
Configuration reference
完全な設定一覧: Gateway configuration| Setting | Description | Default |
|---|---|---|
channels.feishu.enabled | チャンネルの有効 / 無効 | true |
channels.feishu.domain | API ドメイン (feishu または lark) | feishu |
channels.feishu.connectionMode | イベント転送モード | websocket |
channels.feishu.defaultAccount | 送信ルーティング時のデフォルトアカウント | default |
channels.feishu.verificationToken | webhook モードで必須 | - |
channels.feishu.webhookPath | webhook のルートパス | /feishu/events |
channels.feishu.webhookHost | webhook の bind host | 127.0.0.1 |
channels.feishu.webhookPort | webhook の bind port | 3000 |
channels.feishu.accounts.<id>.appId | App ID | - |
channels.feishu.accounts.<id>.appSecret | App Secret | - |
channels.feishu.accounts.<id>.domain | アカウント単位の API ドメイン上書き | feishu |
channels.feishu.dmPolicy | DM ポリシー | pairing |
channels.feishu.allowFrom | DM allowlist (open_id 一覧) | - |
channels.feishu.groupPolicy | グループポリシー | open |
channels.feishu.groupAllowFrom | グループ allowlist | - |
channels.feishu.groups.<chat_id>.requireMention | @mention 必須かどうか | true |
channels.feishu.groups.<chat_id>.enabled | グループを有効にするか | true |
channels.feishu.textChunkLimit | メッセージのチャンクサイズ | 2000 |
channels.feishu.mediaMaxMb | メディアサイズ上限 | 30 |
channels.feishu.streaming | ストリーミングカード出力を有効化 | true |
channels.feishu.blockStreaming | ブロックストリーミングを有効化 | true |
dmPolicy reference
| Value | Behavior |
|---|---|
"pairing" | デフォルト。 未知のユーザーにはペアリングコードが返り、承認が必要です |
"allowlist" | allowFrom に含まれるユーザーだけが利用できます |
"open" | すべてのユーザーを許可します (allowFrom に "*" が必要) |
"disabled" | DM を無効化します |
Supported message types
Receive
- ✅ Text
- ✅ Rich text (post)
- ✅ Images
- ✅ Files
- ✅ Audio
- ✅ Video
- ✅ Stickers
Send
- ✅ Text
- ✅ Images
- ✅ Files
- ✅ Audio
- ⚠️ Rich text (partial support)