Bundled plugin
Tlon ships bundled in current OpenClaw releases; packaged builds do not need a separate install. On an older build or custom install that excludes it, install from npm:@openclaw/tlon@x.y.z)
only for reproducible installs.
From a local checkout:
Setup
Private/LAN ships
OpenClaw blocks private/internal hostnames and IP ranges for SSRF protection by default. If your ship runs on a private network (localhost, LAN IP, internal hostname), opt in explicitly:http://localhost:8080, http://192.168.x.x:8080, and
http://my-ship.local:8080. Only enable this for a ship URL you trust; it disables SSRF
protection for that account’s HTTP requests.
channels.tlon.allowPrivateNetwork (flat key) is retired. openclaw doctor --fix moves it to
channels.tlon.network.dangerouslyAllowPrivateNetwork automatically.Group channels
Pin channels manually, or turn on auto-discovery:autoDiscoverChannels defaults to false when unset in config; the setup wizard defaults the
prompt to yes and writes true explicitly. With it on, OpenClaw scries joined groups on startup,
watches new channels as group invites are accepted, and rechecks every 2 minutes.
Access control
DM allowlist (empty = no DMs allowed unless the sender isownerShip):
restricted per channel. Set defaultAuthorizedShips for a
baseline, and override per channel nest:
Owner and approval system
dmAllowlist, defaultAuthorizedShips, or groupInviteAllowlist.
When ownerShip is set, unauthorized requests do not just get dropped — they queue a pending
approval and DM the owner:
- DM requests from ships not on
dmAllowlist - Mentions in channels where the sender fails authorization
- Group invites from ships not on
groupInviteAllowlist(when auto-accept is off, or on but the inviter is not allowlisted)
Without
ownerShip configured, unauthorized DMs and channel mentions are just dropped and logged;
there is no approval prompt.
Auto-accept settings
Auto-accept DM invites from ships already ondmAllowlist (the owner is always auto-accepted
regardless of this flag):
autoAcceptGroupInvites: true and
an empty groupInviteAllowlist, no non-owner invite is accepted):
Hot-reload via Urbit settings store
Most of the settings above (dmAllowlist, groupInviteAllowlist, groupChannels,
defaultAuthorizedShips, autoDiscoverChannels, autoAcceptDmInvites,
autoAcceptGroupInvites, ownerShip, showModelSignature) are mirrored into the ship’s
%settings agent (desk moltbot, bucket tlon) on first run and then read live from there,
so changes made via a Landscape client or the bundled skill’s settings commands apply without a
gateway restart. channelRules and pending approvals are also persisted there as JSON. File
config stays the source of truth for values never written to the settings store.
Delivery targets (CLI/cron)
Use withopenclaw message send or cron delivery:
- DM:
~sampel-palnetordm/~sampel-palnet - Group:
chat/~host-ship/channelorgroup:~host-ship/channel
Bundled skill
The plugin bundles@tloncorp/tlon-skill, a CLI for
direct Urbit operations, available automatically once the plugin is installed:
- Activity: mentions, replies, unreads
- Channels: list, create, rename
- Contacts: list/get/update profiles
- Groups: create, join, invite/request flows, roles
- Hooks: manage channel hooks
- Messages: history, search
- DMs: send, react, accept/decline
- Posts: react, delete
- Notebook: post to diary channels
- Settings: hot-reload plugin config via the settings store above
Capabilities
Troubleshooting
- DMs ignored: sender not in
dmAllowlistand noownerShipconfigured for the approval flow. - Group messages ignored: channel not discovered/pinned, or sender fails authorization with no
ownerShipto queue an approval. - Connection errors: check the ship URL is reachable; set
network.dangerouslyAllowPrivateNetworkfor local ships. - Auth errors: login codes rotate — copy the current code from your ship.
Configuration reference
Full configuration: ConfigurationNotes
- Group replies need an @ mention (e.g.
~your-bot-ship) unless the bot already joined that thread. - Thread replies land in-thread; the bot also gets the last 10 messages of thread context prepended for the agent.
- Rich text (bold, italic, code, headers, lists) converts to Tlon’s native format.
- Sending an inbound message that asks for a channel summary (for example “summarize this channel”) triggers a built-in history summarization instead of the normal reply flow.
Related
- Channels Overview — all supported channels
- Pairing — DM authentication and pairing flow
- Groups — group chat behavior and mention gating
- Channel Routing — session routing for messages
- Security — access model and hardening