MAX messenger (max.ru) channel plugin for OpenClaw.
Requires OpenClaw ≥ 2026.3.24
- DM and group chat support
- Long polling (default) and webhook modes
- Streaming replies with typing indicator
- Media sending and receiving (images)
- Allowlist-based access control
openclaw plugins install @olegbalbekov/openclaw-maxOr manually — clone/copy the plugin directory into ~/.openclaw/extensions/max/ and add to your config:
{
plugins: {
load: {
paths: ["~/.openclaw/extensions/max"]
},
entries: {
max: { enabled: true }
}
}
}Important: Do NOT add
plugins.allowunless you explicitly need it. Whenplugins.allowis set, it acts as a strict allowlist and will block all bundled plugins (including Telegram) that are not listed. Useplugins.entriesinstead to enable/disable individual plugins.
- Go to business.max.ru and create a bot
- Copy the bot token
Add to ~/.openclaw/openclaw.json:
{
channels: {
max: {
enabled: true,
token: "YOUR_BOT_TOKEN_HERE",
dmPolicy: "allowlist", // "open" | "allowlist" | "closed"
allowFrom: ["YOUR_USER_ID"], // MAX user IDs — must be strings
}
},
bindings: [
{
agentId: "main",
match: { channel: "max", accountId: "default" }
}
]
}sudo systemctl restart openclaw
# or
openclaw gateway restartopenclaw channels statusShould show: MAX default: enabled, dm:allowlist, allow:YOUR_USER_ID
| Field | Type | Default | Description |
|---|---|---|---|
token |
string | required | MAX Bot API token |
enabled |
boolean | true |
Enable/disable channel |
dmPolicy |
string | "allowlist" |
DM access policy: open, allowlist, closed |
allowFrom |
string[] | [] |
MAX user IDs allowed to DM (when dmPolicy=allowlist) |
webhookUrl |
string | — | Webhook URL (optional, uses long polling if not set) |
webhookSecret |
string | — | Webhook secret for request verification |
For production, configure a webhook instead of long polling:
{
channels: {
max: {
token: "YOUR_BOT_TOKEN",
webhookUrl: "https://your-domain.com/api/channels/max/webhook",
webhookSecret: "your-secret"
}
}
}If upgrading from v0.2.x with OpenClaw < 2026.3.24, the plugin imports changed:
openclaw/plugin-sdk/synology-chat→ removedbuildChannelConfigSchema,DEFAULT_ACCOUNT_ID,setAccountEnabledInConfigSection→openclaw/plugin-sdk/coreregisterPluginHttpRoute→openclaw/plugin-sdk/webhook-ingress- Entry point now uses
defineChannelPluginEntryfromopenclaw/plugin-sdk/core
Rebuild with npm run build after updating the openclaw devDependency to >=2026.3.24.
Plugin not starting / channels.max: unknown channel id
- Check that OpenClaw version is ≥ 2026.3.24 (
openclaw --version) - Check
OPENCLAW_VERSIONin/opt/openclaw.envmatches actual installed version - Make sure
plugins.allowis NOT set (or includes"max"explicitly)
Telegram stops working after adding MAX
- Do NOT set
plugins.allow: ["max"]— this blocks all other plugins including Telegram - Use
plugins.entries.max.enabled: trueinstead
Gateway won't start
- Validate config JSON:
python3 -c "import json; json.load(open('~/.openclaw/openclaw.json'))" - Check logs:
journalctl -u openclaw -n 50
Supported by Evrone — a software development company that builds products and helps companies improve their development processes.
MIT © Oleg Balbekov