Nextcloud Talk
Nextcloud Talk: support status, capabilities, and configuration.
Status: Supported via plugin (webhook bot). Supports DMs, rooms, reactions, and Markdown messages.
Plugin Installation Required
Nextcloud Talk is provided as a plugin and is not bundled with core installation.
Install via CLI (npm registry):
openclaw plugins install @openclaw/nextcloud-talk
Local installation (when running from a git repository):
openclaw plugins install ./extensions/nextcloud-talk
If you selected Nextcloud Talk in configure/onboarding and a git checkout is detected, OpenClaw will automatically provide the local installation path.
Details: ''/plugin''
Quick Setup
1. Install Nextcloud Talk plugin.
2. Create a bot on your Nextcloud server:
{
channels: {
"nextcloud-talk": {
enabled: true,
baseUrl: "https://cloud.example.com",
botSecret: "shared-secret",
dmPolicy: "pairing",
},
},
}Notes
- Bot cannot initiate DMs: the user must send the first message to the bot.
- webhook URL must be accessible by Gateway; if behind reverse proxy, set <code>webhookPublicUrl</code>.
- Bot API does not support media upload; media is sent as URLs.
- webhook payload does not distinguish "DM vs room"; to distinguish, set <code>apiUser</code> + <code>apiPassword</code> for room type queries (otherwise DMs are treated as rooms).
Access Control (DMs)
- Default: <code>channels.nextcloud-talk.dmPolicy = "pairing"</code>. Unknown senders receive a pairing code.
- Approve:
- <code>openclaw pairing list nextcloud-talk</code>
- <code>openclaw pairing approve nextcloud-talk <CODE></code>
- Open DMs: <code>channels.nextcloud-talk.dmPolicy="open"</code> and <code>channels.nextcloud-talk.allowFrom=["*"]</code>.
Rooms (Group Chats)
- Default: <code>channels.nextcloud-talk.groupPolicy = "allowlist"</code> (and requires mention by default).
- Use <code>channels.nextcloud-talk.rooms</code> to allowlist rooms:
{
channels: {
"nextcloud-talk": {
rooms: {
"room-token": { requireMention: true },
},
},
},
}- To not process any rooms: keep allowlist empty, or set <code>channels.nextcloud-talk.groupPolicy="disabled"</code>.
Capabilities
| Feature | Status |
| -- |
| DMs | Supported|
| Rooms | Supported|
| Threads | Not supported|
| Media | URL only|
| Reactions | Supported|
| Native commands | Not supported|
Configuration Reference (Nextcloud Talk)
Full configuration: ''/gateway/configuration''
Provider options:
- <code>channels.nextcloud-talk.enabled</code>: enable/disable
- <code>channels.nextcloud-talk.baseUrl</code>: Nextcloud instance URL
- <code>channels.nextcloud-talk.botSecret</code>: bot shared secret
- <code>channels.nextcloud-talk.botSecretFile</code>: secret file path
- <code>channels.nextcloud-talk.apiUser</code>: API user for room lookups (DM identification)
- <code>channels.nextcloud-talk.apiPassword</code>: API/app password for room lookups
- <code>channels.nextcloud-talk.apiPasswordFile</code>: API password file path
- <code>channels.nextcloud-talk.webhookPort</code>: webhook listen port (default 8788)
- <code>channels.nextcloud-talk.webhookHost</code>: webhook host (default 0.0.0.0)
- <code>channels.nextcloud-talk.webhookPath</code>: webhook path (default <code>/nextcloud-talk-webhook</code>)
- <code>channels.nextcloud-talk.webhookPublicUrl</code>: externally accessible webhook URL
- <code>channels.nextcloud-talk.dmPolicy</code>: <code>pairing | allowlist | open | disabled</code>
- <code>channels.nextcloud-talk.allowFrom</code>: DM allowlist (user IDs); open requires <code>"*"</code>
- <code>channels.nextcloud-talk.groupPolicy</code>: <code>allowlist | open | disabled</code>
- <code>channels.nextcloud-talk.groupAllowFrom</code>: group sender allowlist (user IDs)
- <code>channels.nextcloud-talk.rooms</code>: per-room config and allowlist
- <code>channels.nextcloud-talk.historyLimit</code>: group history count (<code>0</code> disables)
- <code>channels.nextcloud-talk.dmHistoryLimit</code>: DM history count (<code>0</code> disables)
- <code>channels.nextcloud-talk.dms</code>: per-DM overrides (historyLimit)
- <code>channels.nextcloud-talk.textChunkLimit</code>: outbound chunk size (characters)
- <code>channels.nextcloud-talk.chunkMode</code>: <code>length</code> (default) / <code>newline</code>
- <code>channels.nextcloud-talk.blockStreaming</code>: disable block streaming for this channel
- <code>channels.nextcloud-talk.blockStreamingCoalesce</code>: block streaming coalesce parameters
- <code>channels.nextcloud-talk.mediaMaxMb</code>: inbound media limit (MB)