OpenClawSkills
GitHub
Channels • TutorialHeader.readTime

Nextcloud Talk

Nextcloud Talk: support status, capabilities, and configuration.

Status: Supported via plugin (webhook bot). Supports DMs, rooms, reactions, and Markdown messages.

Tutorial.step

Plugin Installation Required

Nextcloud Talk is provided as a plugin and is not bundled with core installation.

Install via CLI (npm registry):

Bash
openclaw plugins install @openclaw/nextcloud-talk

Local installation (when running from a git repository):

Bash
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''

Tutorial.step

Quick Setup

1. Install Nextcloud Talk plugin.

2. Create a bot on your Nextcloud server:

Json5
{
  channels: {
    "nextcloud-talk": {
      enabled: true,
      baseUrl: "https://cloud.example.com",
      botSecret: "shared-secret",
      dmPolicy: "pairing",
    },
  },
}
Tutorial.step

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).

Tutorial.step

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 &lt;CODE&gt;</code>

- Open DMs: <code>channels.nextcloud-talk.dmPolicy="open"</code> and <code>channels.nextcloud-talk.allowFrom=["*"]</code>.

Tutorial.step

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:

Json5
{
  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>.

Tutorial.step

Capabilities

| Feature | Status |

| -- |

| DMs | Supported|

| Rooms | Supported|

| Threads | Not supported|

| Media | URL only|

| Reactions | Supported|

| Native commands | Not supported|

Tutorial.step

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)