Mattermost (Plugin)

Status: Unterstützt via Plugin (Bot-Token + WebSocket-Events). Channels, Gruppen und DMs werden unterstützt. Mattermost ist eine selbst-hostbare Team-Messaging-Plattform. Details und Downloads findest du auf der offiziellen Website unter mattermost.com.

Plugin erforderlich

Mattermost wird als Plugin ausgeliefert und ist nicht in der Kerninstallation enthalten.

Installation via CLI (npm Registry):

openclaw plugins install @openclaw/mattermost

Lokaler Checkout (wenn du aus einem Git-Repo arbeitest):

openclaw plugins install ./extensions/mattermost

Wenn du Mattermost während der Konfiguration/Onboarding auswählst und ein Git-Checkout erkannt wird, bietet OpenClaw automatisch den lokalen Installationspfad an.

Details: Plugins

Schnellstart

  1. Installiere das Mattermost-Plugin.
  2. Erstelle einen Mattermost-Bot-Account und kopiere das Bot-Token.
  3. Kopiere die Mattermost Base-URL (z. B. https://chat.example.com).
  4. Konfiguriere OpenClaw und starte das Gateway.

Minimale Konfiguration:

{
  channels: {
    mattermost: {
      enabled: true,
      botToken: "mm-token",
      baseUrl: "https://chat.example.com",
      dmPolicy: "pairing",
    },
  },
}

Umgebungsvariablen (Standard-Account)

Setze diese auf dem Gateway-Host, wenn du Umgebungsvariablen bevorzugst:

  • MATTERMOST_BOT_TOKEN=...
  • MATTERMOST_URL=https://chat.example.com

Umgebungsvariablen gelten nur für den Standard-Account (default). Andere Accounts müssen über Config-Werte konfiguriert werden.

Chat-Modi

Mattermost antwortet automatisch auf DMs. Das Verhalten in Channels wird über chatmode gesteuert:

  • oncall (Standard): Antwortet nur, wenn der Bot in Channels @erwähnt wird.
  • onmessage: Antwortet auf jede Channel-Nachricht.
  • onchar: Antwortet, wenn eine Nachricht mit einem Trigger-Präfix beginnt.

Config-Beispiel:

{
  channels: {
    mattermost: {
      chatmode: "onchar",
      oncharPrefixes: [">", "!"],
    },
  },
}

Hinweise:

  • onchar antwortet trotzdem auf explizite @Erwähnungen.
  • channels.mattermost.requireMention wird für Legacy-Configs unterstützt, aber chatmode ist die bevorzugte Option.

Zugriffskontrolle (DMs)

  • Standard: channels.mattermost.dmPolicy = "pairing" (unbekannte Absender erhalten einen Pairing-Code).
  • Freigabe via:
    • openclaw pairing list mattermost
    • openclaw pairing approve mattermost <CODE>
  • Öffentliche DMs: channels.mattermost.dmPolicy="open" plus channels.mattermost.allowFrom=["*"].

Channels (Gruppen)

  • Standard: channels.mattermost.groupPolicy = "allowlist" (Erwähnung erforderlich).
  • Absender zur Allowlist hinzufügen mit channels.mattermost.groupAllowFrom (User-IDs oder @username).
  • Offene Channels: channels.mattermost.groupPolicy="open" (Erwähnung erforderlich).

Ziele für ausgehende Nachrichten

Verwende diese Zielformate mit openclaw message send oder Cron/Webhooks:

  • channel:<id> für einen Channel
  • user:<id> für eine DM
  • @username für eine DM (wird über die Mattermost-API aufgelöst)

Reine IDs werden als Channels behandelt.

Multi-Account

Mattermost unterstützt mehrere Accounts unter channels.mattermost.accounts:

{
  channels: {
    mattermost: {
      accounts: {
        default: { name: "Primary", botToken: "mm-token", baseUrl: "https://chat.example.com" },
        alerts: { name: "Alerts", botToken: "mm-token-2", baseUrl: "https://alerts.example.com" },
      },
    },
  },
}

Troubleshooting

  • Keine Antworten in Channels: Stelle sicher, dass der Bot im Channel ist und erwähne ihn (oncall), verwende ein Trigger-Präfix (onchar), oder setze chatmode: "onmessage".
  • Auth-Fehler: Prüfe das Bot-Token, die Base-URL und ob der Account aktiviert ist.
  • Multi-Account-Probleme: Umgebungsvariablen gelten nur für den default-Account.