Tlon (plugin)
Tlon es un mensajero descentralizado construido sobre Urbit. OpenClaw se conecta a tu ship Urbit y puede responder a DMs y mensajes de chat grupal. Las respuestas en grupo requieren una mención @ de forma predeterminada y pueden restringirse adicionalmente vía listas de acceso.
Estado: compatible vía plugin. DMs, menciones en grupo, respuestas en hilos, formato de texto enriquecido y subida de imágenes son compatibles. Reacciones y encuestas aún no son compatibles.
Plugin requerido
Tlon se distribuye como plugin y no viene incluido en la instalación base.
Instalar vía CLI (registro npm):
openclaw plugins install @openclaw/tlon
Checkout local (cuando se ejecuta desde un repositorio git):
openclaw plugins install ./extensions/tlon
Detalles: Plugins
Configuración
- Instala el plugin de Tlon.
- Obtén la URL de tu ship y el código de inicio de sesión.
- Configura
channels.tlon. - Reinicia el gateway.
- Envía un DM al bot o menciónalo en un canal de grupo.
Configuración mínima (cuenta única):
{
channels: {
tlon: {
enabled: true,
ship: "~sampel-palnet",
url: "https://your-ship-host",
code: "lidlut-tabwed-pillex-ridrup",
ownerShip: "~your-main-ship", // recomendado: tu ship, siempre permitido
},
},
}
Ships privados/LAN
De forma predeterminada, OpenClaw bloquea nombres de host privados/internos y rangos de IP para protección contra SSRF. Si tu ship está ejecutándose en una red privada (localhost, IP de LAN o nombre de host interno), debes habilitarlo explícitamente:
{
channels: {
tlon: {
url: "http://localhost:8080",
allowPrivateNetwork: true,
},
},
}
Esto aplica a URLs como:
http://localhost:8080http://192.168.x.x:8080http://my-ship.local:8080
Solo habilita esto si confías en tu red local. Esta configuración desactiva las protecciones SSRF para solicitudes a la URL de tu ship.
Canales de grupo
El autodescubrimiento está habilitado de forma predeterminada. También puedes fijar canales manualmente:
{
channels: {
tlon: {
groupChannels: ["chat/~host-ship/general", "chat/~host-ship/support"],
},
},
}
Desactivar el autodescubrimiento:
{
channels: {
tlon: {
autoDiscoverChannels: false,
},
},
}
Control de acceso
Lista de acceso de DM (vacía = no se permiten DMs, usa ownerShip para flujo de aprobación):
{
channels: {
tlon: {
dmAllowlist: ["~zod", "~nec"],
},
},
}
Autorización de grupo (restringida de forma predeterminada):
{
channels: {
tlon: {
defaultAuthorizedShips: ["~zod"],
authorization: {
channelRules: {
"chat/~host-ship/general": {
mode: "restricted",
allowedShips: ["~zod", "~nec"],
},
"chat/~host-ship/announcements": {
mode: "open",
},
},
},
},
},
}
Propietario y sistema de aprobación
Configura un ship propietario para recibir solicitudes de aprobación cuando usuarios no autorizados intenten interactuar:
{
channels: {
tlon: {
ownerShip: "~your-main-ship",
},
},
}
El ship propietario está autorizado automáticamente en todas partes — las invitaciones de DM se aceptan automáticamente y
los mensajes de canal siempre se permiten. No necesitas añadir al propietario a dmAllowlist o
defaultAuthorizedShips.
Cuando está configurado, el propietario recibe notificaciones por DM para:
- Solicitudes de DM de ships no incluidos en la lista de acceso
- Menciones en canales sin autorización
- Solicitudes de invitación a grupos
Configuración de auto-aceptación
Auto-aceptar invitaciones de DM (para ships en dmAllowlist):
{
channels: {
tlon: {
autoAcceptDmInvites: true,
},
},
}
Auto-aceptar invitaciones a grupos:
{
channels: {
tlon: {
autoAcceptGroupInvites: true,
},
},
}
Destinos de entrega (CLI/cron)
Usa estos con openclaw message send o entregas cron:
- DM:
~sampel-palnetodm/~sampel-palnet - Grupo:
chat/~host-ship/channelogroup:~host-ship/channel
Skill incluido
El plugin de Tlon incluye un skill incorporado (@tloncorp/tlon-skill)
que proporciona acceso CLI a operaciones de Tlon:
- Contactos: obtener/actualizar perfiles, listar contactos
- Canales: listar, crear, publicar mensajes, obtener historial
- Grupos: listar, crear, gestionar miembros
- DMs: enviar mensajes, reaccionar a mensajes
- Reacciones: añadir/eliminar reacciones emoji a publicaciones y DMs
- Configuración: gestionar permisos del plugin vía comandos slash
El skill está disponible automáticamente cuando se instala el plugin.
Capacidades
| Característica | Estado |
|---|---|
| Mensajes directos | Soportado |
| Grupos/canales | Soportado (restricción por mención predeterminada) |
| Hilos | Soportado (auto-respuestas en hilo) |
| Texto enriquecido | Markdown convertido a formato Tlon |
| Imágenes | Subidas al almacenamiento de Tlon |
| Reacciones | Vía skill incluido |
| Encuestas | Aún no soportado |
| Comandos nativos | Soportado (solo propietario por defecto) |
Resolución de problemas
Ejecuta esta secuencia primero:
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
Fallos comunes:
- DMs ignorados: remitente no está en
dmAllowlisty no hayownerShipconfigurado para flujo de aprobación. - Mensajes de grupo ignorados: canal no descubierto o remitente no autorizado.
- Errores de conexión: verifica que la URL del ship sea accesible; habilita
allowPrivateNetworkpara ships locales. - Errores de autenticación: verifica que el código de inicio de sesión sea actual (los códigos rotan).
Referencia de configuración
Configuración completa: Configuración
Opciones del proveedor:
channels.tlon.enabled: habilitar/deshabilitar inicio del canal.channels.tlon.ship: nombre del ship Urbit del bot (ej.~sampel-palnet).channels.tlon.url: URL del ship (ej.https://sampel-palnet.tlon.network).channels.tlon.code: código de inicio de sesión del ship.channels.tlon.allowPrivateNetwork: permitir URLs localhost/LAN (bypass de SSRF).channels.tlon.ownerShip: ship propietario para sistema de aprobación (siempre autorizado).channels.tlon.dmAllowlist: ships permitidos para DM (vacío = ninguno).channels.tlon.autoAcceptDmInvites: auto-aceptar DMs de ships en la lista.channels.tlon.autoAcceptGroupInvites: auto-aceptar todas las invitaciones a grupos.channels.tlon.autoDiscoverChannels: auto-descubrir canales de grupo (predeterminado: true).channels.tlon.groupChannels: nests de canal fijados manualmente.channels.tlon.defaultAuthorizedShips: ships autorizados para todos los canales.channels.tlon.authorization.channelRules: reglas de autenticación por canal.channels.tlon.showModelSignature: añadir nombre del modelo a los mensajes.
Notas
- Las respuestas en grupo requieren una mención (ej.
~your-bot-ship) para responder. - Respuestas en hilo: si el mensaje entrante está en un hilo, OpenClaw responde dentro del hilo.
- Texto enriquecido: el formato Markdown (negrita, cursiva, código, encabezados, listas) se convierte al formato nativo de Tlon.
- Imágenes: las URLs se suben al almacenamiento de Tlon y se incrustan como bloques de imagen.