OpenClaw on Tlon
An Urbit ship as a channel, mention-gated groups, the owner approval flow, allowlists that fail closed, and settings that hot-reload from the ship
Tlon is a decentralised messenger built on Urbit, and OpenClaw connects to your Urbit ship to respond to direct messages and group chat messages. Group replies require a mention by default, with authorisation rules and an owner-approval flow layered on top. It ships as a bundled plugin supporting DMs, group mentions, threads, rich text, image upload and download and the approval system; reactions and polls are not supported natively. Here is setup, durability, the private-ship opt-in, group channels, access control, the owner flow, auto-accept, the settings-store hot reload, and the bundled skill.
Setup and durability
- Add the channel with the ship name, the ship URL and the login code, or write the same into the config with an owner ship, recommended, that is always authorised; the login code is the ship’s web login code printed by the code command in the dojo, and it rotates, so re-read it whenever authentication starts failing. Config changes hot-reload, and the channel status probe confirms the connection.
- Accepted DM and group-chat events are persisted before agent dispatch, so pending or retryable turns survive a Gateway restart, work stays serialised per group channel or direct peer, and stable Urbit message ids suppress redelivered events while a queue or completion record exists; delivery is at least once across the queue-to-agent boundary, so side-effecting actions should stay idempotent.
- Private or LAN ships are blocked by the SSRF protection by default; a network setting opts a trusted ship URL in explicitly, disabling that protection for the account’s requests, and the older flat key is migrated by the doctor fix.
- Group channels are pinned manually by nest or auto-discovered: with discovery on, the Gateway scries joined groups at startup, watches new channels as invites are accepted, and rechecks every two minutes; the setting is off by default in config, though the wizard defaults its prompt to yes.
Without ownerShip configured, unauthorized DMs and channel mentions are just dropped and logged; there is no approval prompt.
Access control and the owner
The DM allowlist is empty by default, which means no DMs are allowed unless the sender is the owner ship. Group authorisation defaults to restricted per channel, with a baseline of default authorised ships and per-nest rules that set restricted with an allowed list or open. Once the bot has replied inside a thread it keeps responding there without another mention, unless thread participation is switched off in the implicit-mentions setting. The owner ship is authorised everywhere: its DM and group invites are always auto-accepted and its channel messages always pass, without appearing in any allowlist. With an owner set, unauthorised requests are not dropped but queued as pending approvals with a DM to the owner: DMs from ships off the allowlist, mentions from senders failing authorisation, and group invites from ships off the invite allowlist. The owner answers in DM with approve, deny or block for the most recent request or with an id for a specific one; block also blocks the ship natively so it cannot reconnect, unblock reverses it, and blocked and pending list the current state.
Auto-accept, hot reload, skill
- DM invites from ships already on the allowlist can be auto-accepted, the owner always is, and group invites can be auto-accepted from an invite allowlist that fails closed: with auto-accept on and an empty allowlist, no non-owner invite is accepted.
- Most of these settings are mirrored into the ship’s settings agent on first run and then read live from there, so changes made through a Landscape client or the bundled skill apply without a Gateway restart; channel rules and pending approvals are persisted there too, and the file config stays the source of truth for values never written to the store.
- The plugin bundles Tlon’s CLI skill for direct Urbit operations, activity, channels, contacts, groups, hooks, message history and search, DMs including reactions, posts, notebook entries and settings, which is also the only way to react. A media cap in mebibytes bounds inbound downloads and outbound uploads under a six-mebibyte ceiling, thread replies land in-thread with the last ten messages of context prepended, Markdown converts to Tlon’s native format, and a message asking for a channel summary triggers built-in history summarisation. Delivery targets for sends and cron are a ship name for DMs and a chat nest for groups.
OpenClaw on Matrix and OpenClaw on Nostr are the other decentralised networks OpenClaw speaks, each with its own trust model.
On Diali
Tlon is not among the channels Diali connects today: WhatsApp, Telegram, Discord, Slack, Mattermost, Matrix, SMS and voice. Connect your first channel in five minutes explains how those are linked, and Diali security the boundary that applies to every one of them.
Troubleshooting
Ignored DMs mean a sender off the allowlist with no owner configured for the approval flow; ignored group messages mean an undiscovered or unpinned channel or a sender failing authorisation with no owner to queue an approval; connection errors point at the ship URL or the private-network opt-in; and auth errors mean a rotated login code. Hosted OpenClaw on Diali is the assistant and OpenClaw plugins the surface Tlon ships in.
- A ship, a URL, a rotating login code.
- Mention-gated groups; an owner who approves the rest.
- Allowlists fail closed; settings live on the ship.
Stop reading about it, build one
Set up an agent, pick a channel, and have it working inside the app you already keep open.
