Files
bot/docs/channels/tlon.md
zeekay 4bdc9ee3e4 chore: rebrand openclaw → hanzo-bot for bridge merge
Comprehensive rename of all openclaw references to hanzo-bot equivalents:
- Package: openclaw → @hanzo/bot
- Binary: openclaw → hanzo-bot
- Types: OpenClaw* → Bot*
- Env vars: OPENCLAW_* → BOT_*
- Android: ai.openclaw.android → ai.hanzo.bot.android
- iOS/macOS: ai.openclaw.* → ai.hanzo.*
- Swift modules: OpenClaw* → Bot*
- Plugins: openclaw.plugin.json → bot.plugin.json
- Paths: .openclaw/ → .hanzo/bot/
- URLs: github.com/openclaw → github.com/hanzoai
2026-02-26 22:36:01 -08:00

2.9 KiB

summary, read_when, title
summary read_when title
Tlon/Urbit support status, capabilities, and configuration
Working on Tlon/Urbit channel features
Tlon

Tlon (plugin)

Tlon is a decentralized messenger built on Urbit. Hanzo Bot connects to your Urbit ship and can respond to DMs and group chat messages. Group replies require an @ mention by default and can be further restricted via allowlists.

Status: supported via plugin. DMs, group mentions, thread replies, and text-only media fallback (URL appended to caption). Reactions, polls, and native media uploads are not supported.

Plugin required

Tlon ships as a plugin and is not bundled with the core install.

Install via CLI (npm registry):

hanzo-bot plugins install @bot/tlon

Local checkout (when running from a git repo):

hanzo-bot plugins install ./extensions/tlon

Details: Plugins

Setup

  1. Install the Tlon plugin.
  2. Gather your ship URL and login code.
  3. Configure channels.tlon.
  4. Restart the gateway.
  5. DM the bot or mention it in a group channel.

Minimal config (single account):

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

Private/LAN ship URLs (advanced):

By default, Bot blocks private/internal hostnames and IP ranges for this plugin (SSRF hardening). If your ship URL is on a private network (for example http://192.168.1.50:8080 or http://localhost:8080), you must explicitly opt in:

{
  channels: {
    tlon: {
      allowPrivateNetwork: true,
    },
  },
}

Group channels

Auto-discovery is enabled by default. You can also pin channels manually:

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

Disable auto-discovery:

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

Access control

DM allowlist (empty = allow all):

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

Group authorization (restricted by default):

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

Delivery targets (CLI/cron)

Use these with hanzo-bot message send or cron delivery:

  • DM: ~sampel-palnet or dm/~sampel-palnet
  • Group: chat/~host-ship/channel or group:~host-ship/channel

Notes

  • Group replies require a mention (e.g. ~your-bot-ship) to respond.
  • Thread replies: if the inbound message is in a thread, Hanzo Bot replies in-thread.
  • Media: sendMedia falls back to text + URL (no native upload).