Tlon (Urbit)

Decentralized Tlon/Urbit messenger integration with DMs, group channels, threads, rich text, image uploads, and owner approval system.

Tlon is the messaging application built on Urbit, the decentralized computing platform where every user owns their own server (called a 'ship'). OpenClaw's Tlon plugin connects your AI agent directly to this sovereign network, enabling DMs, group channel participation, threaded replies, rich text formatting, image uploads, and emoji reactions — all within the Urbit ecosystem. The integration authenticates via your Urbit ship's URL and login code, establishing a persistent connection that receives events in real-time. The plugin automatically discovers group channels your ship belongs to, or you can pin specific channels manually. Rich text is handled by converting Markdown to Tlon's native format, and images are uploaded directly to Tlon's storage system — no external hosting needed. Access control uses an owner approval system unique to decentralized identity: ships in your allowlist can DM freely, while group channels support open or restricted modes with per-channel ship allowlists. The bundled Tlon skill provides CLI commands for managing contacts, channels, and groups, giving your AI agent deep awareness of the social graph. Tlon is the most feature-rich decentralized channel OpenClaw supports. Where Nostr offers minimalist encrypted DMs, Tlon delivers a full messaging experience with groups, threads, reactions, and media — all running on infrastructure you personally own. For Urbit enthusiasts who want an AI companion that respects the network's sovereignty-first ethos, this is the integration that brings OpenClaw into the Urbit universe.

Tags: decentralized, urbit, web3, privacy

Category: Decentralized

Use Cases

  • Sovereign AI assistant on your personal Urbit ship
  • Group knowledge bot in Urbit community channels
  • Decentralized AI agent with a persistent Urbit identity
  • Privacy-first AI chat where all data stays on your ship
  • Community moderation assistant in Tlon group channels
  • AI companion for Urbit power users who want everything on-network

Tips

  • Use a dedicated moon or planet for the bot rather than your personal ship identity
  • Pin critical channels with groupChannels config instead of relying solely on auto-discovery
  • Set up per-channel authorization rules to control which ships can interact in each channel
  • Use defaultAuthorizedShips for a global allowlist that applies across all channels
  • Run your Urbit ship on a VPS or always-on server for reliable uptime
  • The bundled Tlon skill provides CLI commands for managing contacts and channels — explore it
  • Keep your ship's login code in an environment variable rather than hardcoding in config
  • Test with a simple DM before configuring group channels to verify connectivity

Known Issues & Gotchas

  • Your Urbit ship must be accessible via HTTP — local ships behind NAT need port forwarding or a tunnel
  • The login code changes when you breach your ship — update OpenClaw config after any breach
  • autoDiscoverChannels defaults to true — set to false if you only want specific channels
  • Group replies require an @mention of the bot ship (e.g., ~your-bot-ship) to trigger a response
  • Image uploads use Tlon's native storage — if upload fails, the URL is appended as text instead
  • Reactions and polls are NOT supported — the plugin will silently ignore reaction attempts
  • Thread replies follow the inbound context — if a message is in a thread, the reply stays in that thread
  • The plugin uses the ship's identity — your bot IS a full Urbit citizen, not a webhook

Alternatives

  • Nostr
  • Matrix
  • Signal
  • IRC

Community Feedback

It is now possible to run a full Tlon Messenger bot on your own computer alongside OpenClaw. On Urbit, every identity can spawn lightweight agents that live on your personal server.

— Twitter/X @tloncorporation

The OpenClaw Tlon plugin is exactly what Urbit needed — an AI agent that lives on YOUR ship, talks through YOUR identity, and respects the sovereignty model. No cloud APIs involved in the messaging layer.

— Reddit r/urbit

Tlon channel works well for group chat bots. The auto-discover feature is convenient — just add the bot ship to a group and it shows up. Thread replies are a nice touch.

— GitHub Discussions

Frequently Asked Questions

Do I need to run my own Urbit ship?

Yes. The Tlon plugin connects to a running Urbit ship via its HTTP API. You need a ship (planet, star, or moon) that's accessible over the network. Hosted Tlon app access alone is not sufficient — the plugin needs direct ship access.

What's the difference between Tlon and Nostr in OpenClaw?

Tlon runs on Urbit with full messaging features (groups, threads, reactions, media). Nostr is a simpler protocol with only encrypted DMs. Tlon requires running a ship; Nostr only needs a keypair and relay access.

Can I use a moon instead of a planet?

Yes. Moons are lightweight Urbit identities spawned from planets. They're ideal for bot use — they have their own identity and can join groups and receive DMs independently.

Is the Tlon plugin bundled with OpenClaw?

No. Tlon is a separate plugin: openclaw plugins install @openclaw/tlon. It's maintained by the Tlon team (tloncorp) and published on npm.

Does it support image uploads?

Yes. Images are uploaded to Tlon's native storage system. If the native upload fails, the image URL is appended to the text message as a fallback. Other file types (documents, audio, video) are not supported.

How does auto-discovery work?

By default, the plugin discovers all group channels your ship belongs to and listens for messages. You can disable this with autoDiscoverChannels: false and manually pin channels via the groupChannels config array.

What happens if my ship goes down?

The plugin loses connectivity and stops receiving messages. When the ship comes back online, the plugin reconnects automatically. Messages sent while the ship was down may be missed depending on relay buffering.

Configuration Examples

Basic single-ship setup

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

Pinned channels with authorization

channels:
  tlon:
    enabled: true
    ship: "~sampel-palnet"
    url: "https://your-ship-host"
    code: "lidlut-tabwed-pillex-ridrup"
    groupChannels:
      - "chat/~host-ship/general"
      - "chat/~host-ship/support"
    autoDiscoverChannels: false
    authorization:
      channelRules:
        "chat/~host-ship/general":
          mode: restricted
          allowedShips:
            - "~zod"
            - "~nec"
        "chat/~host-ship/support":
          mode: open

DM-only with allowlist

channels:
  tlon:
    enabled: true
    ship: "~sampel-palnet"
    url: "https://your-ship-host"
    code: "lidlut-tabwed-pillex-ridrup"
    dmPolicy: allowlist
    defaultAuthorizedShips:
      - "~zod"
      - "~bus"
    autoDiscoverChannels: false

Installation

openclaw plugins install @openclaw/tlon