Tlon (плагин)

Tlon — децентрализованный мессенджер, построенный на Urbit. OpenClaw подключается к вашему кораблю Urbit и может отвечать на ЛС и сообщения в групповых чатах. Ответы в группах по умолчанию требуют @-упоминания и могут быть дополнительно ограничены через списки доступа.

Статус: поддерживается через плагин. ЛС, упоминания в группах, ответы в потоках, rich text и загрузка изображений поддерживаются. Реакции и опросы пока не поддерживаются.

Требуется плагин

Tlon поставляется как плагин и не входит в базовую установку.

Установка через CLI (npm-реестр):

openclaw plugins install @openclaw/tlon

Из локальной копии (при работе из git-репозитория):

openclaw plugins install ./extensions/tlon

Подробнее: Плагины

Настройка

  1. Установите плагин Tlon.
  2. Подготовьте URL корабля и код входа.
  3. Настройте channels.tlon.
  4. Перезапустите шлюз.
  5. Отправьте ЛС боту или упомяните его в групповом канале.

Минимальная конфигурация (один аккаунт):

{
  channels: {
    tlon: {
      enabled: true,
      ship: "~sampel-palnet",
      url: "https://your-ship-host",
      code: "lidlut-tabwed-pillex-ridrup",
      ownerShip: "~your-main-ship", // рекомендуется: ваш корабль, всегда разрешён
    },
  },
}

Приватные/LAN-корабли

По умолчанию OpenClaw блокирует приватные/внутренние имена хостов и диапазоны IP для защиты от SSRF. Если ваш корабль работает в приватной сети (localhost, LAN IP или внутреннее имя хоста), необходимо явно разрешить это:

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

Применимо к URL вида:

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

Предупреждение: Включайте это, только если вы доверяете вашей локальной сети. Эта настройка отключает защиту от SSRF для запросов к URL вашего корабля.

Групповые каналы

Автообнаружение включено по умолчанию. Также можно закрепить каналы вручную:

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

Отключение автообнаружения:

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

Контроль доступа

Список доступа для ЛС (пустой = ЛС запрещены, используйте ownerShip для потока подтверждения):

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

Авторизация групп (по умолчанию ограничена):

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

Владелец и система подтверждения

Задайте корабль-владелец для получения запросов на подтверждение, когда неавторизованные пользователи пытаются взаимодействовать:

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

Корабль-владелец автоматически авторизован везде — приглашения в ЛС принимаются автоматически, а сообщения в каналах всегда разрешены. Не нужно добавлять владельца в dmAllowlist или defaultAuthorizedShips.

При задании владелец получает уведомления в ЛС о:

  • Запросах ЛС от кораблей не из списка доступа
  • Упоминаниях в каналах без авторизации
  • Запросах на приглашение в группы

Настройки автоприёма

Автоприём приглашений в ЛС (для кораблей из dmAllowlist):

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

Автоприём приглашений в группы:

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

Цели доставки (CLI/cron)

Используйте с openclaw message send или доставкой через cron:

  • ЛС: ~sampel-palnet или dm/~sampel-palnet
  • Группа: chat/~host-ship/channel или group:~host-ship/channel

Встроенный навык

Плагин Tlon включает встроенный навык (@tloncorp/tlon-skill), предоставляющий CLI-доступ к операциям Tlon:

  • Контакты: получение/обновление профилей, список контактов
  • Каналы: список, создание, отправка сообщений, получение истории
  • Группы: список, создание, управление участниками
  • ЛС: отправка сообщений, реакции на сообщения
  • Реакции: добавление/удаление эмодзи-реакций к постам и ЛС
  • Настройки: управление разрешениями плагина через slash-команды

Навык автоматически доступен при установке плагина.

Возможности

ФункцияСтатус
Прямые сообщенияПоддерживается
Группы/каналыПоддерживается (упоминание по умолчанию)
Потоки (threads)Поддерживается (автоответ в потоке)
Rich textMarkdown преобразуется в формат Tlon
ИзображенияЗагружаются в хранилище Tlon
РеакцииЧерез встроенный навык
ОпросыПока не поддерживается
Нативные командыПоддерживается (только для владельца по умолчанию)

Устранение неполадок

Выполните эти команды первыми:

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

Частые сбои:

  • ЛС игнорируются: отправитель не в dmAllowlist и ownerShip не настроен для потока подтверждения.
  • Групповые сообщения игнорируются: канал не обнаружен или отправитель не авторизован.
  • Ошибки подключения: проверьте доступность URL корабля; включите allowPrivateNetwork для локальных кораблей.
  • Ошибки авторизации: проверьте актуальность кода входа (коды ротируются).

Справочник конфигурации

Полная конфигурация: Конфигурация

Опции провайдера:

  • channels.tlon.enabled: включение/выключение канала.
  • channels.tlon.ship: имя корабля Urbit бота (например, ~sampel-palnet).
  • channels.tlon.url: URL корабля (например, https://sampel-palnet.tlon.network).
  • channels.tlon.code: код входа корабля.
  • channels.tlon.allowPrivateNetwork: разрешить localhost/LAN URL (обход SSRF).
  • channels.tlon.ownerShip: корабль-владелец для системы подтверждения (всегда авторизован).
  • channels.tlon.dmAllowlist: корабли, которым разрешено писать в ЛС (пусто = никому).
  • channels.tlon.autoAcceptDmInvites: автоприём ЛС от кораблей из списка доступа.
  • channels.tlon.autoAcceptGroupInvites: автоприём всех групповых приглашений.
  • channels.tlon.autoDiscoverChannels: автообнаружение групповых каналов (по умолчанию: true).
  • channels.tlon.groupChannels: вручную закреплённые гнёзда каналов.
  • channels.tlon.defaultAuthorizedShips: корабли, авторизованные для всех каналов.
  • channels.tlon.authorization.channelRules: правила авторизации по каналам.
  • channels.tlon.showModelSignature: добавлять имя модели к сообщениям.

Примечания

  • Ответы в группах требуют упоминания (например, ~your-bot-ship).
  • Ответы в потоках: если входящее сообщение в потоке, OpenClaw отвечает внутри потока.
  • Rich text: Markdown-форматирование (жирный, курсив, код, заголовки, списки) преобразуется в нативный формат Tlon.
  • Изображения: URL загружаются в хранилище Tlon и встраиваются как блоки изображений.