codecamp

OpenClaw Tlon/Urbit 支持状态、功能和配置

Tlon(插件)

Tlon 是一个基于 Urbit 构建的去中心化即时通讯工具。OpenClaw 连接到你的 Urbit ship,可以响应私信和群聊消息。群组回复默认需要 @ 提及,并可通过允许列表进一步限制。

状态:通过插件支持。支持私信、群组提及、话题回复和纯文本媒体回退(URL 附加到说明文字)。不支持表情回应、投票和原生媒体上传。

需要插件

Tlon 作为插件提供,不包含在核心安装中。

通过 CLI 安装(npm 仓库):

openclaw plugins install @openclaw/tlon

本地检出(从 git 仓库运行时):

openclaw plugins install ./extensions/tlon

详情:插件

设置

  1. 安装 Tlon 插件。
  2. 获取你的 ship URL 和登录代码。
  3. 配置 channels.tlon
  4. 重启 Gateway 网关。
  5. 私信机器人或在群组频道中提及它。

最小配置(单账户):

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

群组频道

默认启用自动发现。你也可以手动固定频道:

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

禁用自动发现:

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

访问控制

私信允许列表(空 = 允许全部):

{
  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",
          },
        },
      },
    },
  },
}

投递目标(CLI/cron)

openclaw message send 或 cron 投递一起使用:

  • 私信:~sampel-palnetdm/~sampel-palnet
  • 群组:chat/~host-ship/channelgroup:~host-ship/channel

注意事项

  • 群组回复需要提及(例如 ~your-bot-ship)才能响应。
  • 话题回复:如果入站消息在话题中,OpenClaw 会在话题内回复。
  • 媒体:sendMedia 回退为文本 + URL(无原生上传)。
OpenClaw Telegram 机器人支持状态、功能和配置
OpenClaw Twitch 聊天机器人配置和设置
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OpenClaw 消息渠道

OpenClaw 工具

OpenClaw 模型

OpenClaw 平台

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }