Developer and self-hosted
Tlon
Tlon is een gedecentraliseerde messenger die is 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: gebundelde Plugin. DM's, groepsvermeldingen, threadantwoorden, rich-text-opmaak en afbeeldingsuploads worden ondersteund. Reacties en polls worden nog niet ondersteund.
Gebundelde Plugin
Tlon wordt meegeleverd als gebundelde Plugin in huidige OpenClaw-releases, dus normale verpakte builds hebben geen aparte installatie nodig.
Als je een oudere build gebruikt of een aangepaste installatie waarin Tlon is uitgesloten, installeer dan een huidig npm-pakket:
Installeren via CLI (npm-register):
openclaw plugins install @openclaw/tlon
Gebruik het kale pakket om de huidige officiële releasetag te volgen. Pin alleen een exacte versie wanneer je een reproduceerbare installatie nodig hebt.
Lokale checkout (wanneer je vanuit een git-repo draait):
openclaw plugins install ./path/to/local/tlon-plugin
Details: Plugins
Instellen
- Zorg dat de Tlon-Plugin beschikbaar is.
- Huidige verpakte OpenClaw-releases bundelen deze al.
- Oudere/aangepaste installaties kunnen deze handmatig toevoegen met de bovenstaande opdrachten.
- Verzamel je ship-URL en logincode.
- Configureer
channels.tlon. - Herstart de gateway.
- Stuur de bot een DM of vermeld deze in een groepskanaal.
Minimale configuratie (één 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 ter bescherming tegen SSRF. Als je ship op een privénetwerk draait (localhost, LAN-IP of interne hostnaam), moet je dit expliciet inschakelen:
{
channels: {
tlon: {
url: "http://localhost:8080",
allowPrivateNetwork: true,
},
},
}
Dit geldt voor URL's zoals:
http://localhost:8080http://192.168.x.x:8080http://my-ship.local:8080
⚠️ Schakel dit alleen in als je je lokale netwerk vertrouwt. Deze instelling schakelt SSRF-bescherming uit voor verzoeken naar je ship-URL.
Groepskanalen
Automatische detectie is standaard ingeschakeld. Je kunt kanalen ook handmatig vastzetten:
{
channels: {
tlon: {
groupChannels: ["chat/~host-ship/general", "chat/~host-ship/support"],
},
},
}
Automatische detectie uitschakelen:
{
channels: {
tlon: {
autoDiscoverChannels: false,
},
},
}
Toegangsbeheer
DM-allowlist (leeg = geen DM's toegestaan, gebruik ownerShip voor 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 owner-ship in om goedkeuringsverzoeken te ontvangen wanneer niet-geautoriseerde gebruikers proberen te interacteren:
{
channels: {
tlon: {
ownerShip: "~your-main-ship",
},
},
}
De owner-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 dit is ingesteld, ontvangt de eigenaar DM-meldingen voor:
- DM-verzoeken van ships die niet in de allowlist staan
- Vermeldingen in kanalen zonder autorisatie
- Groepsuitnodigingsverzoeken
Instellingen voor automatisch accepteren
DM-uitnodigingen automatisch accepteren (voor ships in dmAllowlist):
{
channels: {
tlon: {
autoAcceptDmInvites: true,
},
},
}
Groepsuitnodigingen van vertrouwde ships automatisch accepteren:
{
channels: {
tlon: {
autoAcceptGroupInvites: true,
groupInviteAllowlist: ["~zod"],
},
},
}
autoAcceptGroupInvites faalt gesloten wanneer groupInviteAllowlist leeg is. Stel de
allowlist in op de ships waarvan groepsuitnodigingen automatisch moeten worden geaccepteerd.
Bezorgdoelen (CLI/cron)
Gebruik deze met openclaw message send of cron-bezorging:
- DM:
~sampel-palnetofdm/~sampel-palnet - Groep:
chat/~host-ship/channelofgroup:~host-ship/channel
Gebundelde skill
De Tlon-Plugin bevat een gebundelde skill (@tloncorp/tlon-skill)
die CLI-toegang tot Tlon-bewerkingen biedt:
- Contacten: profielen ophalen/bijwerken, contacten weergeven
- Kanalen: weergeven, maken, berichten plaatsen, geschiedenis ophalen
- Groepen: weergeven, maken, leden beheren
- DM's: berichten verzenden, op berichten reageren
- Reacties: emoji-reacties toevoegen aan/verwijderen van posts en DM's
- Instellingen: Plugin-machtigingen beheren via slash-opdrachten
De skill is automatisch beschikbaar wanneer de Plugin is geïnstalleerd.
Mogelijkheden
| Functie | Status |
|---|---|
| Directe berichten | ✅ Ondersteund |
| Groepen/kanalen | ✅ Ondersteund (standaard achter vermeldingspoort) |
| Threads | ✅ Ondersteund (automatische antwoorden in thread) |
| Rich text | ✅ Markdown omgezet naar Tlon-formaat |
| Afbeeldingen | ✅ Geüpload naar Tlon-opslag |
| Reacties | ✅ Via gebundelde skill |
| Polls | ❌ Nog niet ondersteund |
| Native opdrachten | ✅ Ondersteund (standaard alleen eigenaar) |
Problemen oplossen
Voer eerst deze ladder uit:
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
Veelvoorkomende fouten:
- DM's genegeerd: afzender staat niet in
dmAllowlisten er is geenownerShipgeconfigureerd voor de goedkeuringsflow. - Groepsberichten genegeerd: kanaal niet ontdekt of afzender niet geautoriseerd.
- Verbindingsfouten: controleer of de ship-URL bereikbaar is; schakel
allowPrivateNetworkin voor lokale ships. - Authenticatiefouten: controleer of de logincode actueel is (codes roteren).
Configuratiereferentie
Volledige configuratie: Configuratie
Provideropties:
channels.tlon.enabled: kanaalstart in-/uitschakelen.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-logincode.channels.tlon.allowPrivateNetwork: localhost-/LAN-URL's toestaan (SSRF-bypass).channels.tlon.ownerShip: owner-ship voor goedkeuringssysteem (altijd geautoriseerd).channels.tlon.dmAllowlist: ships die een DM mogen sturen (leeg = geen).channels.tlon.autoAcceptDmInvites: DM's van ships op de allowlist automatisch accepteren.channels.tlon.autoAcceptGroupInvites: groepsuitnodigingen van ships op de allowlist automatisch accepteren.channels.tlon.groupInviteAllowlist: ships waarvan groepsuitnodigingen automatisch mogen worden geaccepteerd.channels.tlon.autoDiscoverChannels: groepskanalen automatisch ontdekken (standaard: true).channels.tlon.groupChannels: handmatig vastgezette kanaalnests.channels.tlon.defaultAuthorizedShips: ships die voor alle kanalen zijn geautoriseerd.channels.tlon.authorization.channelRules: auth-regels per kanaal.channels.tlon.showModelSignature: modelnaam aan berichten toevoegen.
Opmerkingen
- Groepsantwoorden vereisen een vermelding (bijv.
~your-bot-ship) om te reageren. - Threadantwoorden: als het inkomende bericht in een thread staat, antwoordt OpenClaw in de thread.
- Rich text: Markdown-opmaak (vet, cursief, code, koppen, lijsten) wordt omgezet naar de native indeling van Tlon.
- Afbeeldingen: URL's worden geüpload naar Tlon-opslag en ingesloten als afbeeldingsblokken.
Gerelateerd
- Overzicht van kanalen — alle ondersteunde kanalen
- Koppelen — DM-authenticatie en koppelingsflow
- Groepen — groepschatgedrag en vermeldingspoort
- Kanaalroutering — sessieroutering voor berichten
- Beveiliging — toegangsmodel en hardening