2026-01-20 11:11:42 +00:00
---
summary: "Nextcloud Talk support status, capabilities, and configuration"
read_when:
- Working on Nextcloud Talk channel features
2026-01-31 16:04:03 -05:00
title: "Nextcloud Talk"
2026-01-20 11:11:42 +00:00
---
2026-01-31 21:13:13 +09:00
2026-04-04 15:15:52 +01:00
# Nextcloud Talk
2026-01-20 11:11:42 +00:00
2026-04-04 15:15:52 +01:00
Status: bundled plugin (webhook bot). Direct messages, rooms, reactions, and markdown messages are supported.
2026-01-20 11:11:42 +00:00
2026-04-04 15:02:08 +01:00
## Bundled plugin
2026-01-31 21:13:13 +09:00
2026-04-04 15:02:08 +01:00
Nextcloud Talk ships as a bundled plugin in current OpenClaw releases, so
normal packaged builds do not need a separate install.
If you are on an older build or a custom install that excludes Nextcloud Talk,
install it manually:
2026-01-20 11:11:42 +00:00
Install via CLI (npm registry):
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
``` bash
2026-01-30 03:15:10 +01:00
openclaw plugins install @openclaw/nextcloud-talk
2026-01-20 11:11:42 +00:00
```
Local checkout (when running from a git repo):
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
``` bash
2026-03-29 09:09:56 +01:00
openclaw plugins install ./path/to/local/nextcloud-talk-plugin
2026-01-20 11:11:42 +00:00
```
2026-02-07 15:40:35 -05:00
Details: [Plugins ](/tools/plugin )
2026-01-20 11:11:42 +00:00
2026-02-21 11:18:29 -05:00
## Quick setup (beginner)
2026-01-31 21:13:13 +09:00
2026-04-04 15:06:39 +01:00
1. Ensure the Nextcloud Talk plugin is available.
- Current packaged OpenClaw releases already bundle it.
- Older/custom installs can add it manually with the commands above.
2026-01-31 21:13:13 +09:00
2. On your Nextcloud server, create a bot:
2026-02-06 10:08:59 -05:00
2026-01-20 11:11:42 +00:00
```bash
2026-01-30 03:15:10 +01:00
./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
2026-01-20 11:11:42 +00:00
` ``
2026-02-06 10:08:59 -05:00
2026-01-31 21:13:13 +09:00
3. Enable the bot in the target room settings.
4. Configure OpenClaw:
2026-01-20 11:11:42 +00:00
- Config: ` channels.nextcloud-talk.baseUrl` + ` channels.nextcloud-talk.botSecret`
- Or env: ` NEXTCLOUD_TALK_BOT_SECRET` (default account only)
2026-03-15 21:07:18 -07:00
5. Restart the gateway (or finish setup).
2026-01-20 11:11:42 +00:00
Minimal config:
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
` ``json5
{
channels: {
"nextcloud-talk": {
enabled: true,
baseUrl: "https://cloud.example.com",
botSecret: "shared-secret",
2026-01-31 21:13:13 +09:00
dmPolicy: "pairing",
},
},
2026-01-20 11:11:42 +00:00
}
` ``
## Notes
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
- Bots cannot initiate DMs. The user must message the bot first.
- Webhook URL must be reachable by the Gateway; set ` webhookPublicUrl` if behind a proxy.
- Media uploads are not supported by the bot API; media is sent as URLs.
- The webhook payload does not distinguish DMs vs rooms; set ` apiUser` + ` apiPassword` to enable room-type lookups (otherwise DMs are treated as rooms).
## Access control (DMs)
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
- Default: ` channels.nextcloud-talk.dmPolicy = "pairing"`. Unknown senders get a pairing code.
- Approve via:
2026-01-30 03:15:10 +01:00
- ` openclaw pairing list nextcloud-talk`
- ` openclaw pairing approve nextcloud-talk <CODE>`
2026-01-20 11:11:42 +00:00
- Public DMs: ` channels.nextcloud-talk.dmPolicy="open"` plus ` channels.nextcloud-talk.allowFrom=["*"]`.
2026-02-03 17:35:47 -08:00
- ` allowFrom` matches Nextcloud user IDs only; display names are ignored.
2026-01-20 11:11:42 +00:00
## Rooms (groups)
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
- Default: ` channels.nextcloud-talk.groupPolicy = "allowlist"` (mention-gated).
- Allowlist rooms with ` channels.nextcloud-talk.rooms`:
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
` ``json5
{
channels: {
"nextcloud-talk": {
rooms: {
2026-01-31 21:13:13 +09:00
"room-token": { requireMention: true },
},
},
},
2026-01-20 11:11:42 +00:00
}
` ``
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
- To allow no rooms, keep the allowlist empty or set ` channels.nextcloud-talk.groupPolicy="disabled"`.
## Capabilities
2026-01-31 21:13:13 +09:00
| Feature | Status |
| --------------- | ------------- |
| Direct messages | Supported |
| Rooms | Supported |
| Threads | Not supported |
| Media | URL-only |
| Reactions | Supported |
2026-01-20 11:11:42 +00:00
| Native commands | Not supported |
2026-02-21 11:18:29 -05:00
## Configuration reference (Nextcloud Talk)
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
Full configuration: [Configuration](/gateway/configuration)
Provider options:
2026-01-31 21:13:13 +09:00
2026-01-20 11:11:42 +00:00
- ` channels.nextcloud-talk.enabled`: enable/disable channel startup.
- ` channels.nextcloud-talk.baseUrl`: Nextcloud instance URL.
- ` channels.nextcloud-talk.botSecret`: bot shared secret.
2026-03-10 23:40:10 +00:00
- ` channels.nextcloud-talk.botSecretFile`: regular-file secret path. Symlinks are rejected.
2026-01-20 11:11:42 +00:00
- ` channels.nextcloud-talk.apiUser`: API user for room lookups (DM detection).
- ` channels.nextcloud-talk.apiPassword`: API/app password for room lookups.
- ` channels.nextcloud-talk.apiPasswordFile`: API password file path.
- ` channels.nextcloud-talk.webhookPort`: webhook listener port (default: 8788).
- ` channels.nextcloud-talk.webhookHost`: webhook host (default: 0.0.0.0).
- ` channels.nextcloud-talk.webhookPath`: webhook path (default: /nextcloud-talk-webhook).
- ` channels.nextcloud-talk.webhookPublicUrl`: externally reachable webhook URL.
- ` channels.nextcloud-talk.dmPolicy`: ` pairing | allowlist | open | disabled`.
- ` channels.nextcloud-talk.allowFrom`: DM allowlist (user IDs). ` open` requires ` "*"`.
- ` channels.nextcloud-talk.groupPolicy`: ` allowlist | open | disabled`.
- ` channels.nextcloud-talk.groupAllowFrom`: group allowlist (user IDs).
- ` channels.nextcloud-talk.rooms`: per-room settings and allowlist.
- ` channels.nextcloud-talk.historyLimit`: group history limit (0 disables).
- ` channels.nextcloud-talk.dmHistoryLimit`: DM history limit (0 disables).
- ` channels.nextcloud-talk.dms`: per-DM overrides (historyLimit).
- ` channels.nextcloud-talk.textChunkLimit`: outbound text chunk size (chars).
2026-01-25 13:24:00 +00:00
- ` channels.nextcloud-talk.chunkMode`: ` length` (default) or ` newline` to split on blank lines (paragraph boundaries) before length chunking.
2026-01-20 11:11:42 +00:00
- ` channels.nextcloud-talk.blockStreaming`: disable block streaming for this channel.
- ` channels.nextcloud-talk.blockStreamingCoalesce`: block streaming coalesce tuning.
- ` channels.nextcloud-talk.mediaMaxMb`: inbound media cap (MB).
2026-03-30 19:08:22 +09:00
## Related
- [Channels Overview ](/channels ) — all supported channels
- [Pairing ](/channels/pairing ) — DM authentication and pairing flow
- [Groups ](/channels/groups ) — group chat behavior and mention gating
- [Channel Routing ](/channels/channel-routing ) — session routing for messages
- [Security ](/gateway/security ) — access model and hardening