← Back to Plugins
Tools

Feishu Mention All Fanout

wopanda By wopanda 👁 40 views ▲ 0 votes

OpenClaw companion plugin: fans out Feishu @all group messages to other enabled Feishu accounts

GitHub

Configuration Example

{
  "plugins": {
    "entries": {
      "feishu-mention-all-fanout": {
        "enabled": true
      }
    }
  }
}

README

# Feishu Mention-All Fanout

Companion plugin for `@larksuite/openclaw-lark`.

It makes a Feishu group `@all` message behave like an explicit mention for the
other enabled Feishu accounts in the same OpenClaw Gateway process.

## How it works

The plugin wraps the Feishu inbound handler at Gateway startup.

When one account receives a group message containing Feishu's `@_all` mention,
the plugin waits briefly, records which accounts already received the real
message, then creates synthetic inbound events for the enabled accounts that did
not receive it.

Each synthetic event includes:

- the original Feishu message content
- the original sender
- the original chat/thread
- the original message id as the reply target
- `@_all`
- an explicit mention of the target bot's `open_id`

That last point is important: target accounts still run through the normal
Feishu group and sender policy gates. The plugin does not use `forceMention`.

## Requirements

- OpenClaw `>=2026.3.24`
- `@larksuite/openclaw-lark >=2026.5.7`
- The Feishu plugin package must include its `src/` runtime files. The official
  package currently does.
- Multiple Feishu accounts must be configured in the same OpenClaw Gateway if
  you want local multi-bot fanout.

For separate cloud Gateways, install this plugin on each Gateway. A Gateway can
only fan out to the Feishu accounts configured in that same Gateway process.

## Config

Default config is usually enough:

```json
{
  "plugins": {
    "entries": {
      "feishu-mention-all-fanout": {
        "enabled": true
      }
    }
  }
}
```

Optional scoped config:

```json
{
  "plugins": {
    "entries": {
      "feishu-mention-all-fanout": {
        "enabled": true,
        "fanoutDelayMs": 1000,
        "includeAccounts": ["bot-a", "bot-b", "bot-c"],
        "excludeAccounts": ["bot-debug"],
        "probeBotOpenIds": true,
        "maxProbeAgeMs": 600000,
        "sendLifecycleCommandConfirmation": true,
        "lifecycleCommandConfirmationTemplate": "[{botName}] 已执行 {command}",
        "debug": false
      }
    }
  }
}
```

## Behavior

If Feishu already delivers the `@all` message to every bot, the delay window
lets the plugin see those real deliveries and skip synthetic fanout.

If Feishu only delivers the `@all` message to one bot, that bot fans the message
out to the other enabled accounts.

For lifecycle commands such as `@all /new` and `@all /reset`, OpenClaw may reset
the session silently. This plugin sends a short confirmation from each target bot
after the command has been dispatched, so the group can see which bots received
the fanout.

Synthetic message ids look like:

```text
fanout:mention-all:<source-message-id>:<target-account-id>
```
tools

Comments

Sign in to leave a comment

Loading comments...