openclaw/docs/channels/nextcloud-talk.md
Hunter Miller 0b3f4a27ba docs: update all plugin docs to reflect bundled + auto-install
Updated docs for all bundled plugins to reflect:
- Plugins are bundled with Clawdbot
- Dependencies auto-install on first load when enabled
- npm install is an alternative, not required
- Simplified setup steps

Updated channels:
- line, matrix, mattermost, msteams, nextcloud-talk, nostr, zalo, zalouser

Updated plugins:
- voice-call, zalouser
2026-01-26 12:55:13 -06:00

4.7 KiB

summary read_when
Nextcloud Talk support status, capabilities, and configuration
Working on Nextcloud Talk channel features

Nextcloud Talk (plugin)

Status: supported via plugin (webhook bot). Direct messages, rooms, reactions, and markdown messages are supported.

Plugin setup

Nextcloud Talk is bundled with Clawdbot. Its dependencies are automatically installed on first load when you enable the plugin.

To enable, add nextcloud-talk to your plugins allow list:

{
  plugins: {
    allow: ["nextcloud-talk"]
  }
}

The onboarding wizard and clawdbot channels add also offer to enable Nextcloud Talk.

Alternatively, install explicitly from npm:

clawdbot plugins install @clawdbot/nextcloud-talk

Details: Plugins

Quick setup (beginner)

  1. Install the Nextcloud Talk plugin.
  2. On your Nextcloud server, create a bot:
    ./occ talk:bot:install "Clawdbot" "<shared-secret>" "<webhook-url>" --feature reaction
    
  3. Enable the bot in the target room settings.
  4. Configure Clawdbot:
    • Config: channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • Or env: NEXTCLOUD_TALK_BOT_SECRET (default account only)
  5. Restart the gateway (or finish onboarding).

Minimal config:

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

Notes

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

  • Default: channels.nextcloud-talk.dmPolicy = "pairing". Unknown senders get a pairing code.
  • Approve via:
    • clawdbot pairing list nextcloud-talk
    • clawdbot pairing approve nextcloud-talk <CODE>
  • Public DMs: channels.nextcloud-talk.dmPolicy="open" plus channels.nextcloud-talk.allowFrom=["*"].

Rooms (groups)

  • Default: channels.nextcloud-talk.groupPolicy = "allowlist" (mention-gated).
  • Allowlist rooms with channels.nextcloud-talk.rooms:
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true }
      }
    }
  }
}
  • To allow no rooms, keep the allowlist empty or set channels.nextcloud-talk.groupPolicy="disabled".

Capabilities

Feature Status
Direct messages Supported
Rooms Supported
Threads Not supported
Media URL-only
Reactions Supported
Native commands Not supported

Configuration reference (Nextcloud Talk)

Full configuration: Configuration

Provider options:

  • channels.nextcloud-talk.enabled: enable/disable channel startup.
  • channels.nextcloud-talk.baseUrl: Nextcloud instance URL.
  • channels.nextcloud-talk.botSecret: bot shared secret.
  • channels.nextcloud-talk.botSecretFile: secret file path.
  • 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).
  • channels.nextcloud-talk.chunkMode: length (default) or newline to split on blank lines (paragraph boundaries) before length chunking.
  • 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).