Tlon (plugin)

Tlon is een gedecentraliseerde messenger gebouwd op Urbit. OpenClaw maakt verbinding met je Urbit-ship en kan reageren op DM’s en groepschatberichten. Groepsantwoorden vereisen standaard een @-vermelding en kunnen verder worden beperkt via allowlists.

Status: ondersteund via plugin. DM’s, groepsvermeldingen, thread-antwoorden, rijke tekstopmaak en afbeeldingsuploads worden ondersteund. Reacties en polls worden nog niet ondersteund.

Plugin vereist

Tlon wordt als plugin geleverd en is niet gebundeld met de kerninstallatie.

Installeren via CLI (npm-register):

openclaw plugins install @openclaw/tlon

Lokale checkout (vanuit een git-repo):

openclaw plugins install ./extensions/tlon

Details: Plugins

Installatie

  1. Installeer de Tlon-plugin.
  2. Verzamel je ship-URL en inlogcode.
  3. Configureer channels.tlon.
  4. Herstart de gateway.
  5. Stuur de bot een DM of vermeld hem in een groepskanaal.

Minimale configuratie (enkel account):

{
  channels: {
    tlon: {
      enabled: true,
      ship: "~sampel-palnet",
      url: "https://your-ship-host",
      code: "lidlut-tabwed-pillex-ridrup",
      ownerShip: "~your-main-ship", // recommended: your ship, always allowed
    },
  },
}

Privé-/LAN-ships

Standaard blokkeert OpenClaw privé/interne hostnamen en IP-bereiken voor SSRF-bescherming. Als je ship op een privénetwerk draait (localhost, LAN-IP of interne hostnaam), moet je expliciet opt-in geven:

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

Dit geldt voor URL’s zoals:

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

Waarschuwing: Schakel dit alleen in als je je lokale netwerk vertrouwt. Deze instelling schakelt SSRF-beschermingen uit voor verzoeken naar je ship-URL.

Groepskanalen

Auto-discovery is standaard ingeschakeld. Je kunt kanalen ook handmatig vastpinnen:

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

Auto-discovery uitschakelen:

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

Toegangscontrole

DM-allowlist (leeg = geen DM’s toegestaan, gebruik ownerShip voor de goedkeuringsflow):

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

Groepsautorisatie (standaard beperkt):

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

Eigenaar en goedkeuringssysteem

Stel een eigenaar-ship in om goedkeuringsverzoeken te ontvangen wanneer ongeautoriseerde gebruikers proberen te interacteren:

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

Het eigenaar-ship is overal automatisch geautoriseerd — DM-uitnodigingen worden automatisch geaccepteerd en kanaalberichten zijn altijd toegestaan. Je hoeft de eigenaar niet toe te voegen aan dmAllowlist of defaultAuthorizedShips.

Wanneer ingesteld, ontvangt de eigenaar DM-meldingen voor:

  • DM-verzoeken van ships die niet op de allowlist staan
  • Vermeldingen in kanalen zonder autorisatie
  • Groepsuitnodigingsverzoeken

Auto-acceptatie-instellingen

DM-uitnodigingen automatisch accepteren (voor ships in dmAllowlist):

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

Groepsuitnodigingen automatisch accepteren:

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

Afleveringsdoelen (CLI/cron)

Gebruik deze met openclaw message send of cron-aflevering:

  • DM: ~sampel-palnet of dm/~sampel-palnet
  • Groep: chat/~host-ship/channel of group:~host-ship/channel

Gebundelde skill

De Tlon-plugin bevat een gebundelde skill (@tloncorp/tlon-skill) die CLI-toegang biedt tot Tlon-bewerkingen:

  • Contacten: profielen ophalen/bijwerken, contacten tonen
  • Kanalen: tonen, aanmaken, berichten plaatsen, geschiedenis ophalen
  • Groepen: tonen, aanmaken, leden beheren
  • DM’s: berichten sturen, reageren op berichten
  • Reacties: emoji-reacties toevoegen/verwijderen bij berichten en DM’s
  • Instellingen: pluginmachtigingen beheren via slash-commando’s

De skill is automatisch beschikbaar zodra de plugin is geinstalleerd.

Mogelijkheden

FunctieStatus
Directe berichtenOndersteund
Groepen/kanalenOndersteund (standaard mention-gated)
ThreadsOndersteund (automatisch antwoord in thread)
Rijke tekstMarkdown omgezet naar Tlon-formaat
AfbeeldingenGeupload naar Tlon-opslag
ReactiesVia gebundelde skill
PollsNog niet ondersteund
Native commando’sOndersteund (standaard alleen eigenaar)

Probleemoplossing

Voer eerst deze commandoladder uit:

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

Veelvoorkomende fouten:

  • DM’s genegeerd: afzender niet in dmAllowlist en geen ownerShip geconfigureerd voor de goedkeuringsflow.
  • Groepsberichten genegeerd: kanaal niet ontdekt of afzender niet geautoriseerd.
  • Verbindingsfouten: controleer of de ship-URL bereikbaar is; schakel allowPrivateNetwork in voor lokale ships.
  • Authenticatiefouten: verifieer of de inlogcode actueel is (codes roteren).

Configuratiereferentie

Volledige configuratie: Configuratie

Provideropties:

  • channels.tlon.enabled: kanaal in-/uitschakelen bij opstart.
  • channels.tlon.ship: Urbit-shipnaam van de bot (bijv. ~sampel-palnet).
  • channels.tlon.url: ship-URL (bijv. https://sampel-palnet.tlon.network).
  • channels.tlon.code: ship-inlogcode.
  • channels.tlon.allowPrivateNetwork: localhost-/LAN-URL’s toestaan (SSRF-bypass).
  • channels.tlon.ownerShip: eigenaar-ship voor het goedkeuringssysteem (altijd geautoriseerd).
  • channels.tlon.dmAllowlist: ships die mogen DM’en (leeg = geen).
  • channels.tlon.autoAcceptDmInvites: DM’s van ships op de allowlist automatisch accepteren.
  • channels.tlon.autoAcceptGroupInvites: alle groepsuitnodigingen automatisch accepteren.
  • channels.tlon.autoDiscoverChannels: groepskanalen automatisch ontdekken (standaard: true).
  • channels.tlon.groupChannels: handmatig vastgepinde kanaalnests.
  • channels.tlon.defaultAuthorizedShips: ships geautoriseerd voor alle kanalen.
  • channels.tlon.authorization.channelRules: per-kanaal autorisatieregels.
  • channels.tlon.showModelSignature: modelnaam toevoegen aan berichten.

Opmerkingen

  • Groepsantwoorden vereisen een vermelding (bijv. ~your-bot-ship) om te reageren.
  • Thread-antwoorden: als het inkomende bericht in een thread is, antwoordt OpenClaw in-thread.
  • Rijke tekst: Markdown-opmaak (vet, cursief, code, kopjes, lijsten) wordt omgezet naar het native Tlon-formaat.
  • Afbeeldingen: URL’s worden geupload naar Tlon-opslag en ingebed als afbeeldingsblokken.