Tlon (Plugin)

Tlon ist ein dezentraler Messenger, der auf Urbit aufbaut. OpenClaw verbindet sich mit deinem Urbit-Ship und kann auf DMs und Gruppenchat-Nachrichten antworten. Gruppenantworten erfordern standardmäßig eine @-Erwähnung und können über Allowlists weiter eingeschränkt werden.

Status: Unterstützt via Plugin. DMs, Gruppen-Mentions, Thread-Antworten, Rich-Text-Formatierung und Bild-Uploads werden unterstützt. Reaktionen und Umfragen werden noch nicht unterstützt.

Plugin erforderlich

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

Installation über CLI (npm-Registry):

openclaw plugins install @openclaw/tlon

Lokaler Checkout (wenn aus einem Git-Repo ausgeführt):

openclaw plugins install ./extensions/tlon

Details: Plugins

Einrichtung

  1. Installiere das Tlon-Plugin.
  2. Sammle deine Ship-URL und den Login-Code.
  3. Konfiguriere channels.tlon.
  4. Starte das Gateway neu.
  5. Sende dem Bot eine DM oder erwähne ihn in einem Gruppenkanal.

Minimale Konfiguration (Einzelkonto):

{
  channels: {
    tlon: {
      enabled: true,
      ship: "~sampel-palnet",
      url: "https://your-ship-host",
      code: "lidlut-tabwed-pillex-ridrup",
      ownerShip: "~your-main-ship", // empfohlen: dein Ship, immer erlaubt
    },
  },
}

Private/LAN-Ships

Standardmäßig blockiert OpenClaw private/interne Hostnamen und IP-Bereiche zum SSRF-Schutz. Wenn dein Ship in einem privaten Netzwerk läuft (localhost, LAN-IP oder interner Hostname), musst du ausdrücklich zustimmen:

{
  channels: {
    tlon: {
      url: "http://localhost:8080",
      allowPrivateNetwork: true,
    },
  },
}

Dies gilt für URLs wie:

  • http://localhost:8080
  • http://192.168.x.x:8080
  • http://my-ship.local:8080

Warnung: Aktiviere dies nur, wenn du deinem lokalen Netzwerk vertraust. Diese Einstellung deaktiviert den SSRF-Schutz für Anfragen an deine Ship-URL.

Gruppenkanäle

Auto-Discovery ist standardmäßig aktiviert. Du kannst Kanäle auch manuell festlegen:

{
  channels: {
    tlon: {
      groupChannels: ["chat/~host-ship/general", "chat/~host-ship/support"],
    },
  },
}

Auto-Discovery deaktivieren:

{
  channels: {
    tlon: {
      autoDiscoverChannels: false,
    },
  },
}

Zugriffssteuerung

DM-Allowlist (leer = keine DMs erlaubt, verwende ownerShip für den Genehmigungsfluss):

{
  channels: {
    tlon: {
      dmAllowlist: ["~zod", "~nec"],
    },
  },
}

Gruppen-Autorisierung (standardmäßig eingeschränkt):

{
  channels: {
    tlon: {
      defaultAuthorizedShips: ["~zod"],
      authorization: {
        channelRules: {
          "chat/~host-ship/general": {
            mode: "restricted",
            allowedShips: ["~zod", "~nec"],
          },
          "chat/~host-ship/announcements": {
            mode: "open",
          },
        },
      },
    },
  },
}

Besitzer und Genehmigungssystem

Setze ein Besitzer-Ship, um Genehmigungsanfragen zu erhalten, wenn unautorisierte Benutzer interagieren:

{
  channels: {
    tlon: {
      ownerShip: "~your-main-ship",
    },
  },
}

Das Besitzer-Ship ist überall automatisch autorisiert — DM-Einladungen werden automatisch akzeptiert und Kanalnachrichten sind immer erlaubt. Du musst den Besitzer nicht zur dmAllowlist oder zu defaultAuthorizedShips hinzufügen.

Wenn gesetzt, erhält der Besitzer DM-Benachrichtigungen für:

  • DM-Anfragen von Ships, die nicht in der Allowlist stehen
  • Erwähnungen in Kanälen ohne Autorisierung
  • Gruppeneinladungs-Anfragen

Automatische Annahme-Einstellungen

DM-Einladungen automatisch annehmen (für Ships in der dmAllowlist):

{
  channels: {
    tlon: {
      autoAcceptDmInvites: true,
    },
  },
}

Gruppeneinladungen automatisch annehmen:

{
  channels: {
    tlon: {
      autoAcceptGroupInvites: true,
    },
  },
}

Zustellziele (CLI/Cron)

Verwende diese mit openclaw message send oder Cron-Zustellung:

  • DM: ~sampel-palnet oder dm/~sampel-palnet
  • Gruppe: chat/~host-ship/channel oder group:~host-ship/channel

Mitgelieferter Skill

Das Tlon-Plugin enthält einen mitgelieferten Skill (@tloncorp/tlon-skill), der CLI-Zugriff auf Tlon-Operationen bietet:

  • Kontakte: Profile abrufen/aktualisieren, Kontakte auflisten
  • Kanäle: Auflisten, erstellen, Nachrichten senden, Verlauf abrufen
  • Gruppen: Auflisten, erstellen, Mitglieder verwalten
  • DMs: Nachrichten senden, auf Nachrichten reagieren
  • Reaktionen: Emoji-Reaktionen zu Beiträgen und DMs hinzufügen/entfernen
  • Einstellungen: Plugin-Berechtigungen über Slash-Befehle verwalten

Der Skill ist automatisch verfügbar, wenn das Plugin installiert ist.

Fähigkeiten

FeatureStatus
DirektnachrichtenUnterstützt
Gruppen/KanäleUnterstützt (standardmäßig Mention-gated)
ThreadsUnterstützt (automatische Antwort im Thread)
Rich TextMarkdown wird in Tlon-Format konvertiert
BilderUpload in Tlon-Speicher
ReaktionenVia mitgeliefertem Skill
UmfragenNoch nicht unterstützt
Native BefehleUnterstützt (standardmäßig nur Besitzer)

Fehlerbehebung

Führe zuerst diese Befehle aus:

openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor

Häufige Fehler:

  • DMs werden ignoriert: Absender nicht in dmAllowlist und kein ownerShip für den Genehmigungsfluss konfiguriert.
  • Gruppennachrichten werden ignoriert: Kanal nicht entdeckt oder Absender nicht autorisiert.
  • Verbindungsfehler: Prüfe, ob die Ship-URL erreichbar ist; aktiviere allowPrivateNetwork für lokale Ships.
  • Authentifizierungsfehler: Überprüfe, ob der Login-Code aktuell ist (Codes rotieren).

Konfigurationsreferenz

Vollständige Konfiguration: Configuration

Provider-Optionen:

  • channels.tlon.enabled: Kanal-Start aktivieren/deaktivieren.
  • channels.tlon.ship: Bot-Urbit-Ship-Name (z. B. ~sampel-palnet).
  • channels.tlon.url: Ship-URL (z. B. https://sampel-palnet.tlon.network).
  • channels.tlon.code: Ship-Login-Code.
  • channels.tlon.allowPrivateNetwork: Localhost/LAN-URLs erlauben (SSRF-Bypass).
  • channels.tlon.ownerShip: Besitzer-Ship für das Genehmigungssystem (immer autorisiert).
  • channels.tlon.dmAllowlist: Ships, die DMs senden dürfen (leer = keine).
  • channels.tlon.autoAcceptDmInvites: DMs von Allowlist-Ships automatisch annehmen.
  • channels.tlon.autoAcceptGroupInvites: Alle Gruppeneinladungen automatisch annehmen.
  • channels.tlon.autoDiscoverChannels: Gruppenkanäle automatisch entdecken (Standard: true).
  • channels.tlon.groupChannels: Manuell festgelegte Kanal-Nests.
  • channels.tlon.defaultAuthorizedShips: Ships, die für alle Kanäle autorisiert sind.
  • channels.tlon.authorization.channelRules: Pro-Kanal-Autorisierungsregeln.
  • channels.tlon.showModelSignature: Modellnamen an Nachrichten anhängen.

Hinweise

  • Gruppenantworten erfordern eine Erwähnung (z. B. ~your-bot-ship).
  • Thread-Antworten: Wenn die eingehende Nachricht in einem Thread ist, antwortet OpenClaw im Thread.
  • Rich Text: Markdown-Formatierung (fett, kursiv, Code, Überschriften, Listen) wird in Tlons natives Format konvertiert.
  • Bilder: URLs werden in den Tlon-Speicher hochgeladen und als Bildblöcke eingebettet.