Aller au contenu

Tlon

Tlon est un messager décentralisé construit sur Urbit. OpenClaw se connecte à votre vaisseau Urbit et peut répondre aux DMs et aux messages de chat de groupe. Les réponses de groupe nécessitent une mention @ par défaut et peuvent être davantage restreintes via des listes d’autorisation.

Statut : plugin inclus. Les DMs, les mentions de groupe, les réponses aux fils de discussion, le formatage de texte enrichi et les téléchargements d’images sont pris en charge. Les réactions et les sondages ne sont pas encore pris en charge.

Tlon est fourni en tant que plugin inclus dans les versions actuelles de OpenClaw, les versions empaquetées normales n’ont donc pas besoin d’une installation séparée.

Si vous utilisez une ancienne version ou une installation personnalisée qui exclut Tlon, installez un package npm actuel :

Installer via CLI (registre npm) :

Fenêtre de terminal
openclaw plugins install @openclaw/tlon

Utilisez le package nu pour suivre le tag de publication officiel actuel. Épinglez une version exacte uniquement lorsque vous avez besoin d’une installation reproductible.

Extraction locale (lors de l’exécution depuis un dépôt git) :

Fenêtre de terminal
openclaw plugins install ./path/to/local/tlon-plugin

Détails : Plugins

  1. Assurez-vous que le plugin Tlon est disponible.
    • Les versions empaquetées actuelles de OpenClaw l’incluent déjà.
    • Les installations anciennes/personnalisées peuvent l’ajouter manuellement avec les commandes ci-dessus.
  2. Récupérez l’URL de votre vaisseau et votre code de connexion.
  3. Configurez channels.tlon.
  4. Redémarrez la passerelle.
  5. Envoyez un DM au bot ou mentionnez-le dans un channel de groupe.

Configuration minimale (compte unique) :

{
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
},
},
}

Par défaut, OpenClaw bloque les noms d’hôte privés/internes et les plages d’adresses IP pour la protection SSRF. Si votre vaisseau fonctionne sur un réseau privé (localhost, IP LAN ou nom d’hôte interne), vous devez explicitement l’accepter :

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

Cela s’applique aux URL telles que :

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

⚠️ N’activez ceci que si vous faites confiance à votre réseau local. Ce paramètre désactive les protections SSRF pour les requêtes vers l’URL de votre vaisseau.

La découverte automatique est activée par défaut. Vous pouvez également épingler des channels manuellement :

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

Désactiver la découverte automatique :

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

Liste blanche de DMs (vide = aucun DM autorisé, utilisez ownerShip pour le flux d’approbation) :

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

Autorisation de groupe (restreinte par défaut) :

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

Définissez un vaisseau propriétaire pour recevoir les demandes d’approbation lorsque des utilisateurs non autorisés tentent d’interagir :

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

Le vaisseau propriétaire est automatiquement autorisé partout — les invitations DM sont acceptées automatiquement et les messages dans les channels sont toujours autorisés. Vous n’avez pas besoin d’ajouter le propriétaire à dmAllowlist ou defaultAuthorizedShips.

Lorsqu’il est défini, le propriétaire reçoit des notifications DM pour :

  • Demandes DM de vaisseaux non présents sur la liste blanche
  • Mentions dans les channels sans autorisation
  • Demandes d’invitation à un groupe

Acceptation automatique des invitations DM (pour les vaisseaux dans dmAllowlist) :

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

Accepter automatiquement les invitations de groupe des navires de confiance :

{
channels: {
tlon: {
autoAcceptGroupInvites: true,
groupInviteAllowlist: ["~zod"],
},
},
}

autoAcceptGroupInvites échoue en mode fermé lorsque groupInviteAllowlist est vide. Définissez la liste d’autorisation aux navires dont les invitations de groupe doivent être acceptées automatiquement.

Utilisez-les avec openclaw message send ou la livraison par cron :

  • DM : ~sampel-palnet ou dm/~sampel-palnet
  • Groupe : chat/~host-ship/channel ou group:~host-ship/channel

Le plugin Tlon inclut une compétence groupée (@tloncorp/tlon-skill) qui fournit un accès CLI aux opérations Tlon :

  • Contacts : obtenir/mettre à jour les profils, lister les contacts
  • Channels : lister, créer, publier des messages, récupérer l’historique
  • Groupes : lister, créer, gérer les membres
  • DMs : envoyer des messages, réagir aux messages
  • Réactions : ajouter/supprimer des réactions emoji aux posts et DMs
  • Paramètres : gérer les permissions du plugin via les commandes slash

La compétence est automatiquement disponible lorsque le plugin est installé.

FonctionnalitéStatut
Messages directs✅ Pris en charge
Groupes/channels✅ Pris en charge (limité aux mentions par défaut)
Fils de discussion✅ Pris en charge (réponses automatiques dans le fil)
Texte enrichi✅ Markdown converti au format Tlon
Images✅ Téléversées vers le stockage Tlon
Réactions✅ Via compétence groupée
Sondages❌ Pas encore pris en charge
Commandes natives✅ Pris en charge (propriétaire uniquement par défaut)

Exécutez d’abord cette échelle :

Fenêtre de terminal
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor

Échecs courants :

  • DMs ignorés : l’expéditeur n’est pas dans dmAllowlist et aucun ownerShip n’est configuré pour le flux d’approbation.
  • Messages de groupe ignorés : channel non découvert ou expéditeur non autorisé.
  • Erreurs de connexion : vérifiez que l’URL du navire est accessible ; activez allowPrivateNetwork pour les navires locaux.
  • Erreurs d’authentification : vérifiez que le code de connexion est à jour (les codes changent).

Configuration complète : Configuration

Options du fournisseur :

  • channels.tlon.enabled : activer/désactiver le démarrage du channel.
  • channels.tlon.ship : nom du navire Urbit du bot (ex. ~sampel-palnet).
  • channels.tlon.url : URL du navire (ex. https://sampel-palnet.tlon.network).
  • channels.tlon.code : code de connexion du navire.
  • channels.tlon.allowPrivateNetwork : autoriser les URLs localhost/LAN (contournement SSRF).
  • channels.tlon.ownerShip : navire propriétaire pour le système d’approbation (toujours autorisé).
  • channels.tlon.dmAllowlist : navires autorisés à envoyer des DMs (vide = aucun).
  • channels.tlon.autoAcceptDmInvites : accepter automatiquement les DMs des navires autorisés.
  • channels.tlon.autoAcceptGroupInvites : accepter automatiquement les invitations de groupe des navires autorisés.
  • channels.tlon.groupInviteAllowlist : navires dont les invitations de groupe peuvent être acceptées automatiquement.
  • channels.tlon.autoDiscoverChannels : découvrir automatiquement les canaux de groupe (par défaut : true).
  • channels.tlon.groupChannels : nids de canaux épinglés manuellement.
  • channels.tlon.defaultAuthorizedShips : navires autorisés pour tous les canaux.
  • channels.tlon.authorization.channelRules : règles d’authentification par canal.
  • channels.tlon.showModelSignature : ajouter le nom du model aux messages.
  • Les réponses de groupe nécessitent une mention (ex. ~your-bot-ship) pour répondre.
  • Réponses dans les fils : si le message entrant est dans un fil, OpenClaw répond dans le fil.
  • Texte riche : le formatage Markdown (gras, italique, code, en-têtes, listes) est converti au format natif de Tlon.
  • Images : les URL sont téléchargées vers le stockage Tlon et intégrées sous forme de blocs d’image.