メインコンテンツへスキップ
Tlon は Urbit 上に構築された分散型メッセンジャーです。OpenClaw はあなたの Urbit ship に接続し、 DM とグループチャットメッセージに応答します。グループ返信はデフォルトで @ メンションが必要で、 その上に認可ルールと所有者承認フローが重ねられています。 ステータス: バンドル Plugin。DM、グループメンション、スレッド、リッチテキスト、画像のアップロード/ダウンロード、 所有者承認システムに対応しています。リアクションと投票には対応していません。

バンドル Plugin

Tlon は現在の OpenClaw リリースにバンドルされています。パッケージ化されたビルドでは別途インストールは不要です。 古いビルド、またはこれを除外したカスタムインストールでは、npm からインストールします。
openclaw plugins install @openclaw/tlon
現在のリリースタグを追跡するには、裸のパッケージ名を使用します。バージョンを固定する(@openclaw/tlon@x.y.z) のは、再現可能なインストールが必要な場合だけにしてください。 ローカルチェックアウトから:
openclaw plugins install ./path/to/local/tlon-plugin
詳細: Plugin

セットアップ

openclaw channels add --channel tlon --ship ~sampel-palnet --url https://your-ship-host --code lidlut-tabwed-pillex-ridrup
または、設定を直接編集します。
{
  channels: {
    tlon: {
      enabled: true,
      ship: "~sampel-palnet",
      url: "https://your-ship-host",
      code: "lidlut-tabwed-pillex-ridrup",
      ownerShip: "~your-main-ship", // recommended: your ship, always authorized
    },
  },
}
設定を直接編集した後は Gateway を再起動してください。その後、ボットに DM するか、グループチャンネルで @ メンションします。

プライベート/LAN ship

OpenClaw は SSRF 保護のため、デフォルトでプライベート/内部ホスト名と IP 範囲をブロックします。ship が プライベートネットワーク(localhost、LAN IP、内部ホスト名)で動作している場合は、明示的にオプトインしてください。
{
  channels: {
    tlon: {
      url: "http://localhost:8080",
      network: {
        dangerouslyAllowPrivateNetwork: true,
      },
    },
  },
}
http://localhost:8080http://192.168.x.x:8080http://my-ship.local:8080 のようなターゲットに適用されます。 信頼できる ship URL に対してのみ有効にしてください。そのアカウントの HTTP リクエストについて SSRF 保護が無効になります。
channels.tlon.allowPrivateNetwork(フラットキー)は廃止されています。openclaw doctor --fix がこれを channels.tlon.network.dangerouslyAllowPrivateNetwork に自動的に移動します。

グループチャンネル

チャンネルを手動でピン留めするか、自動検出を有効にします。
{
  channels: {
    tlon: {
      groupChannels: ["chat/~host-ship/general", "chat/~host-ship/support"],
      autoDiscoverChannels: true,
    },
  },
}
autoDiscoverChannels は、設定で未指定の場合はデフォルトで false です。セットアップウィザードではプロンプトのデフォルトが yes になり、true が明示的に書き込まれます。有効にすると、OpenClaw は起動時に参加済みグループを scry し、 グループ招待が承認されると新しいチャンネルを監視し、2 分ごとに再チェックします。

アクセス制御

DM 許可リスト(空 = 送信者が ownerShip でない限り DM は許可されません):
{
  channels: {
    tlon: {
      dmAllowlist: ["~zod", "~nec"],
    },
  },
}
グループ認可はチャンネルごとにデフォルトで restricted です。ベースラインとして defaultAuthorizedShips を設定し、 チャンネル nest ごとに上書きします。
{
  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",
    },
  },
}
所有者 ship はどこでも認可されます。DM 招待は常に自動承認され、グループ招待も常に自動承認され、チャンネルメッセージも常に認可を通過します。 所有者は dmAllowlistdefaultAuthorizedShipsgroupInviteAllowlist に含まれている必要はありません。 ownerShip が設定されている場合、未認可のリクエストは単に破棄されるのではなく、保留中の承認としてキューに入り、 所有者に DM されます。
  • dmAllowlist に含まれていない ship からの DM リクエスト
  • 送信者が認可に失敗したチャンネル内のメンション
  • groupInviteAllowlist に含まれていない ship からのグループ招待(自動承認がオフの場合、またはオンでも 招待者が許可リストに含まれていない場合)
所有者は DM で返信してリクエストに対処します。
所有者の返信効果
approve / deny / block最新の保留中承認に対処します
approve <id> / deny <id>id で特定の承認に対処します
blockship もネイティブにブロックし、再接続できないようにします
unblock ~shipネイティブブロックを取り消します
blocked現在ブロックされている ship を一覧表示します
pending保留中の承認リクエストを一覧表示します
ownerShip が設定されていない場合、未認可の DM とチャンネルメンションは単に破棄され、ログに記録されます。 承認プロンプトはありません。

自動承認設定

dmAllowlist にすでに含まれている ship からの DM 招待を自動承認します(所有者はこのフラグに関係なく常に自動承認されます)。
{
  channels: {
    tlon: {
      autoAcceptDmInvites: true,
    },
  },
}
許可リストからのグループ招待を自動承認します(フェイルクローズ: autoAcceptGroupInvites: truegroupInviteAllowlist が空の場合、所有者以外からの招待は承認されません)。
{
  channels: {
    tlon: {
      autoAcceptGroupInvites: true,
      groupInviteAllowlist: ["~zod"],
    },
  },
}

Urbit 設定ストアによるホットリロード

上記の設定のほとんど(dmAllowlistgroupInviteAllowlistgroupChannelsdefaultAuthorizedShipsautoDiscoverChannelsautoAcceptDmInvitesautoAcceptGroupInvitesownerShipshowModelSignature)は、初回実行時に ship の %settings agent(desk moltbot、bucket tlon)へミラーされ、その後はそこからライブで読み込まれます。 そのため、Landscape クライアントまたはバンドル Skills の設定コマンドから行った変更は、Gateway の再起動なしで適用されます。 channelRules と保留中の承認も JSON としてそこに永続化されます。設定ストアに一度も書き込まれていない値については、 ファイル設定が信頼できる情報源のままです。

配信ターゲット(CLI/cron)

openclaw message send または cron 配信で使用します。
  • DM: ~sampel-palnet または dm/~sampel-palnet
  • グループ: chat/~host-ship/channel または group:~host-ship/channel

バンドル Skills

この Plugin は、直接 Urbit 操作を行う CLI である @tloncorp/tlon-skill をバンドルしています。 Plugin がインストールされると自動的に利用できます。
  • アクティビティ: メンション、返信、未読
  • チャンネル: 一覧表示、作成、名前変更
  • 連絡先: プロファイルの一覧表示/取得/更新
  • グループ: 作成、参加、招待/リクエストフロー、ロール
  • フック: チャンネルフックの管理
  • メッセージ: 履歴、検索
  • DM: 送信、リアクション、承認/拒否
  • 投稿: リアクション、削除
  • Notebook: diary チャンネルへの投稿
  • 設定: 上記の設定ストアを介した Plugin 設定のホットリロード

機能

機能ステータス
ダイレクトメッセージ対応
グループ/チャンネル対応(デフォルトでメンションゲートあり)
スレッド対応(一度参加すると返信し続けます)
リッチテキストMarkdown を Tlon のネイティブ形式へ変換
画像受信時にダウンロード、送信時にアップロード
リアクションバンドル Skills 経由のみ
投票非対応
ネイティブコマンドデフォルトで所有者のみ

トラブルシューティング

openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
よくある失敗:
  • DM が無視される: 送信者が dmAllowlist に含まれておらず、承認フロー用の ownerShip も設定されていません。
  • グループメッセージが無視される: チャンネルが検出/ピン留めされていないか、送信者が認可に失敗しており、 承認をキューに入れるための ownerShip がありません。
  • 接続エラー: ship URL に到達できることを確認してください。ローカル ship には network.dangerouslyAllowPrivateNetwork を設定します。
  • 認証エラー: ログインコードはローテーションされます。ship から現在のコードをコピーしてください。

設定リファレンス

完全な設定: 設定
キー意味
channels.tlon.enabledチャンネル起動を有効/無効にします。
channels.tlon.shipボットの Urbit ship 名(例: ~sampel-palnet)。
channels.tlon.urlship URL(例: https://sampel-palnet.tlon.network)。
channels.tlon.codeship ログインコード。
channels.tlon.network.dangerouslyAllowPrivateNetworklocalhost/LAN の ship URL を許可します(SSRF オプトイン)。
channels.tlon.ownerShip所有者 ship: 常に認可され、承認リクエストを受け取ります。
channels.tlon.dmAllowlistDM を許可された ship(空 = 所有者以外なし)。
channels.tlon.autoAcceptDmInvitesdmAllowlist 内の ship からの DM を自動承認します。
channels.tlon.autoAcceptGroupInvitesgroupInviteAllowlist からのグループ招待を自動承認します。
channels.tlon.groupInviteAllowlistグループ招待が自動承認される ship。
channels.tlon.autoDiscoverChannels参加済みグループチャンネルを自動検出します(デフォルト: false)。
channels.tlon.groupChannels手動でピン留めされたチャンネル nest。
channels.tlon.defaultAuthorizedShipsすべてのチャンネルで認可される ship(どのルールにも一致しない場合に使用)。
channels.tlon.authorization.channelRulesチャンネル nest ごとの認可モード + 許可リスト。
channels.tlon.showModelSignature返信に _[Generated by <model>]_ を追加します。
channels.tlon.responsePrefix送信返信の前に付ける静的プレフィックス。
channels.tlon.accounts.<id>追加の名前付きアカウント(複数 ship セットアップ)。

注記

  • ボットがすでにそのスレッドに参加していない限り、グループ返信には @ メンション(例: ~your-bot-ship)が必要です。
  • スレッド返信はスレッド内に送信されます。ボットには、agent 用にスレッドコンテキストの直近 10 件のメッセージも前置されます。
  • リッチテキスト(太字、斜体、コード、ヘッダー、リスト)は Tlon のネイティブ形式に変換されます。
  • チャンネル要約を求める受信メッセージ(たとえば「このチャンネルを要約して」)を送信すると、 通常の返信フローではなく組み込みの履歴要約がトリガーされます。

関連