Tlon(プラグイン)

TlonはUrbit上に構築された分散型メッセンジャーです。OpenClawはあなたのUrbit shipに接続し、DMおよびグループチャットメッセージに応答できます。グループの返信はデフォルトで@メンションが必要であり、許可リストでさらに制限できます。

ステータス:プラグイン経由でサポート。DM、グループメンション、スレッド返信、リッチテキストフォーマット、画像アップロードがサポートされています。リアクションと投票はまだサポートされていません。

プラグインが必要

Tlonはプラグインとして提供され、コアインストールにはバンドルされていません。

CLI経由でインストール(npmレジストリ):

openclaw plugins install @openclaw/tlon

ローカルチェックアウト(gitリポジトリから実行する場合):

openclaw plugins install ./extensions/tlon

詳細:プラグイン

セットアップ

  1. Tlonプラグインをインストールします。
  2. shipのURLとログインコードを準備します。
  3. channels.tlon を設定します。
  4. ゲートウェイを再起動します。
  5. BotにDMを送るか、グループチャンネルでメンションします。

最小設定(シングルアカウント):

{
  channels: {
    tlon: {
      enabled: true,
      ship: "~sampel-palnet",
      url: "https://your-ship-host",
      code: "lidlut-tabwed-pillex-ridrup",
      ownerShip: "~your-main-ship", // 推奨:あなたのship、常に許可
    },
  },
}

プライベート/LAN ship

デフォルトでは、OpenClawはSSRF保護のためにプライベート/内部ホスト名およびIP範囲をブロックします。shipがプライベートネットワーク(localhost、LAN IP、または内部ホスト名)で動作している場合、明示的にオプトインする必要があります:

{
  channels: {
    tlon: {
      url: "http://localhost:8080",
      allowPrivateNetwork: true,
    },
  },
}

これは以下のようなURLに適用されます:

  • http://localhost:8080
  • http://192.168.x.x:8080
  • http://my-ship.local:8080

警告: ローカルネットワークを信頼できる場合にのみ有効にしてください。この設定はship URLへのリクエストに対するSSRF保護を無効にします。

グループチャンネル

自動検出はデフォルトで有効です。チャンネルを手動でピン留めすることもできます:

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

自動検出を無効にする:

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

アクセス制御

DM許可リスト(空 = DMなし、承認フローには ownerShip を使用):

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

グループ認証(デフォルトで制限あり):

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

オーナーと承認システム

非認証ユーザーが操作しようとした際に承認リクエストを受け取るため、オーナーshipを設定します:

{
  channels: {
    tlon: {
      ownerShip: "~your-main-ship",
    },
  },
}

オーナーshipはあらゆる場所で自動的に認証されます — DM招待は自動承認され、チャンネルメッセージは常に許可されます。オーナーを dmAllowlistdefaultAuthorizedShips に追加する必要はありません。

設定すると、オーナーは以下のDM通知を受け取ります:

  • 許可リストにないshipからのDMリクエスト
  • 認証なしのチャンネルでのメンション
  • グループ招待リクエスト

自動承認設定

DM招待の自動承認(dmAllowlistのship向け):

{
  channels: {
    tlon: {
      autoAcceptDmInvites: true,
    },
  },
}

グループ招待の自動承認:

{
  channels: {
    tlon: {
      autoAcceptGroupInvites: true,
    },
  },
}

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

openclaw message send またはcron配信で使用します:

  • DM:~sampel-palnet または dm/~sampel-palnet
  • グループ:chat/~host-ship/channel または group:~host-ship/channel

バンドルスキル

Tlonプラグインにはバンドルスキル(@tloncorp/tlon-skill)が含まれており、Tlon操作へのCLIアクセスを提供します:

  • 連絡先:プロフィールの取得/更新、連絡先の一覧
  • チャンネル:一覧、作成、メッセージ投稿、履歴の取得
  • グループ:一覧、作成、メンバー管理
  • DM:メッセージ送信、メッセージへのリアクション
  • リアクション:投稿やDMへの絵文字リアクションの追加/削除
  • 設定:スラッシュコマンドによるプラグイン権限の管理

スキルはプラグインのインストール時に自動的に利用可能になります。

機能

機能ステータス
ダイレクトメッセージ✅ サポート済み
グループ/チャンネル✅ サポート済み(デフォルトでメンションゲーティング)
スレッド✅ サポート済み(スレッド内に自動返信)
リッチテキスト✅ MarkdownをTlon形式に変換
画像✅ Tlonストレージにアップロード
リアクションバンドルスキル経由
投票❌ 未サポート
ネイティブコマンド✅ サポート済み(デフォルトでオーナーのみ)

トラブルシューティング

まず以下の手順を実行してください:

openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor

よくある障害:

  • DMが無視される:送信者が dmAllowlist に含まれておらず、承認フローの ownerShip が設定されていません。
  • グループメッセージが無視される:チャンネルが検出されていないか、送信者が認証されていません。
  • 接続エラー:ship URLが到達可能か確認してください。ローカルshipの場合は allowPrivateNetwork を有効にしてください。
  • 認証エラー:ログインコードが最新か確認してください(コードはローテーションされます)。

設定リファレンス

完全な設定:Configuration

プロバイダーオプション:

  • channels.tlon.enabled:チャンネルの起動を有効/無効にします。
  • channels.tlon.ship:BotのUrbit ship名(例:~sampel-palnet)。
  • channels.tlon.url:ship URL(例:https://sampel-palnet.tlon.network)。
  • channels.tlon.code:shipのログインコード。
  • channels.tlon.allowPrivateNetwork:localhost/LAN URLを許可(SSRFバイパス)。
  • channels.tlon.ownerShip:承認システムのオーナーship(常に認証済み)。
  • channels.tlon.dmAllowlist:DMを許可されたship(空 = なし)。
  • channels.tlon.autoAcceptDmInvites:許可リストのshipからのDMを自動承認。
  • channels.tlon.autoAcceptGroupInvites:すべてのグループ招待を自動承認。
  • channels.tlon.autoDiscoverChannels:グループチャンネルの自動検出(デフォルト:true)。
  • channels.tlon.groupChannels:手動でピン留めされたチャンネルネスト。
  • channels.tlon.defaultAuthorizedShips:すべてのチャンネルで認証されたship。
  • channels.tlon.authorization.channelRules:チャンネルごとの認証ルール。
  • channels.tlon.showModelSignature:メッセージにモデル名を付加。

注意事項

  • グループの返信はメンション(例:~your-bot-ship)が必要です。
  • スレッド返信:インバウンドメッセージがスレッド内にある場合、OpenClawはスレッド内で返信します。
  • リッチテキスト:Markdownフォーマット(太字、斜体、コード、見出し、リスト)はTlonのネイティブフォーマットに変換されます。
  • 画像:URLはTlonストレージにアップロードされ、画像ブロックとして埋め込まれます。