Skip to content

Commit 95aa66b

Browse files
committed
Docs: expand config reference coverage for channels plugins and providers
1 parent d1365fa commit 95aa66b

File tree

1 file changed

+133
-0
lines changed

1 file changed

+133
-0
lines changed

docs/gateway/configuration-reference.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,30 @@ Use `channels.modelByChannel` to pin specific channel IDs to a model. Values acc
6565
}
6666
```
6767

68+
### Channel defaults and heartbeat
69+
70+
Use `channels.defaults` for shared group-policy and heartbeat behavior across providers:
71+
72+
```json5
73+
{
74+
channels: {
75+
defaults: {
76+
groupPolicy: "allowlist", // open | allowlist | disabled
77+
heartbeat: {
78+
showOk: false,
79+
showAlerts: true,
80+
useIndicator: true,
81+
},
82+
},
83+
},
84+
}
85+
```
86+
87+
- `channels.defaults.groupPolicy`: fallback group policy when a provider-level `groupPolicy` is unset.
88+
- `channels.defaults.heartbeat.showOk`: include healthy channel statuses in heartbeat output.
89+
- `channels.defaults.heartbeat.showAlerts`: include degraded/error statuses in heartbeat output.
90+
- `channels.defaults.heartbeat.useIndicator`: render compact indicator-style heartbeat output.
91+
6892
### WhatsApp
6993

7094
WhatsApp runs through the gateway's web channel (Baileys Web). It starts automatically when a linked session exists.
@@ -422,12 +446,20 @@ Mattermost ships as a plugin: `openclaw plugins install @openclaw/mattermost`.
422446

423447
Chat modes: `oncall` (respond on @-mention, default), `onmessage` (every message), `onchar` (messages starting with trigger prefix).
424448

449+
- `channels.mattermost.configWrites`: allow or deny Mattermost-initiated config writes.
450+
- `channels.mattermost.requireMention`: require `@mention` before replying in channels.
451+
425452
### Signal
426453

427454
```json5
428455
{
429456
channels: {
430457
signal: {
458+
enabled: true,
459+
account: "+15555550123", // optional account binding
460+
dmPolicy: "pairing",
461+
allowFrom: ["+15551234567", "uuid:123e4567-e89b-12d3-a456-426614174000"],
462+
configWrites: true,
431463
reactionNotifications: "own", // off | own | all | allowlist
432464
reactionAllowlist: ["+15551234567", "uuid:123e4567-e89b-12d3-a456-426614174000"],
433465
historyLimit: 50,
@@ -438,6 +470,29 @@ Chat modes: `oncall` (respond on @-mention, default), `onmessage` (every message
438470

439471
**Reaction notification modes:** `off`, `own` (default), `all`, `allowlist` (from `reactionAllowlist`).
440472

473+
- `channels.signal.account`: pin channel startup to a specific Signal account identity.
474+
- `channels.signal.configWrites`: allow or deny Signal-initiated config writes.
475+
476+
### BlueBubbles
477+
478+
BlueBubbles is the recommended iMessage path (plugin-backed, configured under `channels.bluebubbles`).
479+
480+
```json5
481+
{
482+
channels: {
483+
bluebubbles: {
484+
enabled: true,
485+
dmPolicy: "pairing",
486+
// serverUrl, password, webhookPath, group controls, and advanced actions:
487+
// see /channels/bluebubbles
488+
},
489+
},
490+
}
491+
```
492+
493+
- Core key paths covered here: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`.
494+
- Full BlueBubbles channel configuration is documented in [BlueBubbles](/channels/bluebubbles).
495+
441496
### iMessage
442497

443498
OpenClaw spawns `imsg rpc` (JSON-RPC over stdio). No daemon or port required.
@@ -469,6 +524,7 @@ OpenClaw spawns `imsg rpc` (JSON-RPC over stdio). No daemon or port required.
469524
- `cliPath` can point to an SSH wrapper; set `remoteHost` (`host` or `user@host`) for SCP attachment fetching.
470525
- `attachmentRoots` and `remoteAttachmentRoots` restrict inbound attachment paths (default: `/Users/*/Library/Messages/Attachments`).
471526
- SCP uses strict host-key checking, so ensure the relay host key already exists in `~/.ssh/known_hosts`.
527+
- `channels.imessage.configWrites`: allow or deny iMessage-initiated config writes.
472528

473529
<Accordion title="iMessage SSH wrapper example">
474530

@@ -479,6 +535,52 @@ exec ssh -T gateway-host imsg "$@"
479535

480536
</Accordion>
481537

538+
### Microsoft Teams
539+
540+
Microsoft Teams is extension-backed and configured under `channels.msteams`.
541+
542+
```json5
543+
{
544+
channels: {
545+
msteams: {
546+
enabled: true,
547+
configWrites: true,
548+
// appId, appPassword, tenantId, webhook, team/channel policies:
549+
// see /channels/msteams
550+
},
551+
},
552+
}
553+
```
554+
555+
- Core key paths covered here: `channels.msteams`, `channels.msteams.configWrites`.
556+
- Full Teams config (credentials, webhook, DM/group policy, per-team/per-channel overrides) is documented in [Microsoft Teams](/channels/msteams).
557+
558+
### IRC
559+
560+
IRC is extension-backed and configured under `channels.irc`.
561+
562+
```json5
563+
{
564+
channels: {
565+
irc: {
566+
enabled: true,
567+
dmPolicy: "pairing",
568+
configWrites: true,
569+
nickserv: {
570+
enabled: true,
571+
service: "NickServ",
572+
password: "${IRC_NICKSERV_PASSWORD}",
573+
register: false,
574+
registerEmail: "[email protected]",
575+
},
576+
},
577+
},
578+
}
579+
```
580+
581+
- Core key paths covered here: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`.
582+
- Full IRC channel configuration (host/port/TLS/channels/allowlists/mention gating) is documented in [IRC](/channels/irc).
583+
482584
### Multi-account (all channels)
483585

484586
Run multiple accounts per channel (each with its own `accountId`):
@@ -510,6 +612,11 @@ Run multiple accounts per channel (each with its own `accountId`):
510612
- Existing channel-only bindings (no `accountId`) keep matching the default account; account-scoped bindings remain optional.
511613
- `openclaw doctor --fix` also repairs mixed shapes by moving account-scoped top-level single-account values into `accounts.default` when named accounts exist but `default` is missing.
512614

615+
### Other extension channels
616+
617+
Many extension channels are configured as `channels.<id>` and documented in their dedicated channel pages (for example Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat, and Twitch).
618+
See the full channel index: [Channels](/channels).
619+
513620
### Group chat mention gating
514621

515622
Group messages default to **require mention** (metadata mention or regex patterns). Applies to WhatsApp, Telegram, Discord, Google Chat, and iMessage group chats.
@@ -1750,6 +1857,25 @@ OpenClaw uses the pi-coding-agent model catalog. Add custom providers via `model
17501857
- Empty or missing agent `apiKey`/`baseUrl` fall back to `models.providers` in config.
17511858
- Use `models.mode: "replace"` when you want config to fully rewrite `models.json`.
17521859

1860+
### Provider field details
1861+
1862+
- `models.mode`: provider catalog behavior (`merge` or `replace`).
1863+
- `models.providers`: custom provider map keyed by provider id.
1864+
- `models.providers.*.api`: request adapter (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai`, etc).
1865+
- `models.providers.*.apiKey`: provider credential (prefer SecretRef/env substitution).
1866+
- `models.providers.*.auth`: auth strategy (`api-key`, `token`, `oauth`, `aws-sdk`).
1867+
- `models.providers.*.authHeader`: force credential transport in the `Authorization` header when required.
1868+
- `models.providers.*.baseUrl`: upstream API base URL.
1869+
- `models.providers.*.headers`: extra static headers for proxy/tenant routing.
1870+
- `models.providers.*.models`: explicit provider model catalog entries.
1871+
- `models.bedrockDiscovery`: Bedrock auto-discovery settings root.
1872+
- `models.bedrockDiscovery.enabled`: turn discovery polling on/off.
1873+
- `models.bedrockDiscovery.region`: AWS region for discovery.
1874+
- `models.bedrockDiscovery.providerFilter`: optional provider-id filter for targeted discovery.
1875+
- `models.bedrockDiscovery.refreshInterval`: polling interval for discovery refresh.
1876+
- `models.bedrockDiscovery.defaultContextWindow`: fallback context window for discovered models.
1877+
- `models.bedrockDiscovery.defaultMaxTokens`: fallback max output tokens for discovered models.
1878+
17531879
### Provider examples
17541880

17551881
<Accordion title="Cerebras (GLM 4.6 / 4.7)">
@@ -2027,6 +2153,13 @@ See [Local Models](/gateway/local-models). TL;DR: run MiniMax M2.1 via LM Studio
20272153
- Loaded from `~/.openclaw/extensions`, `<workspace>/.openclaw/extensions`, plus `plugins.load.paths`.
20282154
- **Config changes require a gateway restart.**
20292155
- `allow`: optional allowlist (only listed plugins load). `deny` wins.
2156+
- `plugins.entries.<id>.apiKey`: plugin-level API key convenience field (when supported by the plugin).
2157+
- `plugins.entries.<id>.env`: plugin-scoped env var map.
2158+
- `plugins.entries.<id>.config`: plugin-defined config object (validated by plugin schema).
2159+
- `plugins.slots.memory`: pick the active memory plugin id, or `"none"` to disable memory plugins.
2160+
- `plugins.installs`: CLI-managed install metadata used by `openclaw plugins update`.
2161+
- Includes `source`, `spec`, `sourcePath`, `installPath`, `version`, `resolvedName`, `resolvedVersion`, `resolvedSpec`, `integrity`, `shasum`, `resolvedAt`, `installedAt`.
2162+
- Treat `plugins.installs.*` as managed state; prefer CLI commands over manual edits.
20302163

20312164
See [Plugins](/tools/plugin).
20322165

0 commit comments

Comments
 (0)