BlueBubbles(macOS REST)

状态:内置插件,通过 HTTP 与 BlueBubbles macOS 服务器通信。由于其更丰富的 API 和更简便的设置,推荐用于 iMessage 集成,优于旧版 imsg 渠道。 概述 通过 BlueBubbles 辅助应用在 macOS 上运行(bluebubbles.app)。 推荐/已测试版本:macOS Sequoia (15)。macOS Tahoe (26) 可用;但在 Tahoe 上编辑功能目前不可用,群组图标更新可能显示成功但实际未同步。 OpenClaw 通过其 REST API 与之通信(GET /api/v1/ping、POST /message/text、POST /chat/:id/*)。 传入消息通过 webhook 到达;发出的回复、输入指示器、已读回执和 tapback 均为 REST 调用。 附件和贴纸作为入站媒体被接收(并在可能时呈现给智能体)。 配对/白名单的工作方式与其他渠道相同(/channels/pairing 等),使用 channels.bluebubbles.allowFrom + 配对码。 回应作为系统事件呈现,与 Slack/Telegram 类似,智能体可以在回复前"提及"它们。 高级功能:编辑、撤回、回复线程、消息效果、群组管理。 快速开始 在你的 Mac 上安装 BlueBubbles 服务器(按照 bluebubbles.app/install 的说明操作)。 在 BlueBubbles 配置中,启用 web API 并设置密码。 运行 openclaw onboard 并选择 BlueBubbles,或手动配置: { channels: { bluebubbles: { enabled: true, serverUrl: "http://192.168.1.100:1234", password: "example-password", webhookPath: "/bluebubbles-webhook", }, }, } 将 BlueBubbles webhook 指向你的 Gateway 网关(示例:https://your-gateway-host:3000/bluebubbles-webhook?password=<password>)。 启动 Gateway 网关;它将注册 webhook 处理程序并开始配对。 新手引导 BlueBubbles 可在交互式设置向导中使用: ...

Discord(Bot API)

状态:已支持通过官方 Discord 机器人网关进行私信和服务器文字频道通信。 快速设置(新手) 创建 Discord 机器人并复制机器人令牌。 在 Discord 应用设置中启用 Message Content Intent(如果你计划使用允许列表或名称查找,还需启用 Server Members Intent)。 为 OpenClaw 设置令牌: 环境变量:DISCORD_BOT_TOKEN=... 或配置:channels.discord.token: "..."。 如果两者都设置,配置优先(环境变量回退仅适用于默认账户)。 使用消息权限邀请机器人到你的服务器(如果你只想使用私信,可以创建一个私人服务器)。 启动 Gateway 网关。 私信访问默认采用配对模式;首次联系时需批准配对码。 最小配置: { channels: { discord: { enabled: true, token: "YOUR_BOT_TOKEN", }, }, } 目标 通过 Discord 私信或服务器频道与 OpenClaw 对话。 直接聊天会合并到智能体的主会话(默认 agent:main:main);服务器频道保持隔离为 agent:<agentId>:discord:channel:<channelId>(显示名称使用 discord:<guildSlug>#<channelSlug>)。 群组私信默认被忽略;通过 channels.discord.dm.groupEnabled 启用,并可选择通过 channels.discord.dm.groupChannels 进行限制。 保持路由确定性:回复始终返回到消息来源的渠道。 工作原理 创建 Discord 应用程序 → Bot,启用你需要的意图(私信 + 服务器消息 + 消息内容),并获取机器人令牌。 使用所需权限邀请机器人到你的服务器,以便在你想使用的地方读取/发送消息。 使用 channels.discord.token 配置 OpenClaw(或使用 DISCORD_BOT_TOKEN 作为回退)。 运行 Gateway 网关;当令牌可用(配置优先,环境变量回退)且 channels.discord.enabled 不为 false 时,它会自动启动 Discord 渠道。 如果你更喜欢使用环境变量,设置 DISCORD_BOT_TOKEN(配置块是可选的)。 直接聊天:发送时使用 user:<id>(或 <@id> 提及);所有对话都进入共享的 main 会话。纯数字 ID 是模糊的,会被拒绝。 服务器频道:发送时使用 channel:<channelId>。默认需要提及,可以按服务器或按频道设置。 直接聊天:默认通过 channels.discord.dm.policy 进行安全保护(默认:"pairing")。未知发送者会收到配对码(1 小时后过期);通过 openclaw pairing approve discord <code> 批准。 要保持旧的"对任何人开放"行为:设置 channels.discord.dm.policy="open" 和 channels.discord.dm.allowFrom=["*"]。 要使用硬编码允许列表:设置 channels.discord.dm.policy="allowlist" 并在 channels.discord.dm.allowFrom 中列出发送者。 要忽略所有私信:设置 channels.discord.dm.enabled=false 或 channels.discord.dm.policy="disabled"。 群组私信默认被忽略;通过 channels.discord.dm.groupEnabled 启用,并可选择通过 channels.discord.dm.groupChannels 进行限制。 可选服务器规则:设置 channels.discord.guilds,以服务器 ID(首选)或 slug 为键,并包含每个频道的规则。 可选原生命令:commands.native 默认为 "auto"(Discord/Telegram 开启,Slack 关闭)。使用 channels.discord.commands.native: true|false|"auto" 覆盖;false 会清除之前注册的命令。文本命令由 commands.text 控制,必须作为独立的 /... 消息发送。使用 commands.useAccessGroups: false 可跳过命令的访问组检查。 完整命令列表 + 配置:斜杠命令 可选服务器上下文历史:设置 channels.discord.historyLimit(默认 20,回退到 messages.groupChat.historyLimit)以在回复提及时包含最近 N 条服务器消息作为上下文。设置 0 禁用。 表情反应:智能体可以通过 discord 工具触发表情反应(受 channels.discord.actions.* 控制)。 表情反应移除语义:参见 /tools/reactions。 discord 工具仅在当前渠道是 Discord 时暴露。 原生命令使用隔离的会话键(agent:<agentId>:discord:slash:<userId>)而不是共享的 main 会话。 注意:名称 → ID 解析使用服务器成员搜索,需要 Server Members Intent;如果机器人无法搜索成员,请使用 ID 或 <@id> 提及。 注意:Slug 为小写,空格替换为 -。频道名称的 slug 不包含前导 #。 注意:服务器上下文 [from:] 行包含 author.tag + id,便于进行可提及的回复。 ...

Google Chat(Chat API)

状态:已支持通过 Google Chat API webhooks(仅 HTTP)使用私信和空间。 快速设置(新手) 创建一个 Google Cloud 项目并启用 Google Chat API。 前往:Google Chat API Credentials 如果 API 尚未启用,请启用它。 创建一个服务账号: 点击 Create Credentials > Service Account。 随意命名(例如 openclaw-chat)。 权限留空(点击 Continue)。 有访问权限的主账号留空(点击 Done)。 创建并下载 JSON 密钥: 在服务账号列表中,点击刚刚创建的账号。 前往 Keys 标签页。 点击 Add Key > Create new key。 选择 JSON 并点击 Create。 将下载的 JSON 文件存储在 Gateway 网关主机上(例如 ~/.openclaw/googlechat-service-account.json)。 在 Google Cloud Console Chat Configuration 中创建一个 Google Chat 应用: 填写 Application info: App name:(例如 OpenClaw) Avatar URL:(例如 https://openclaw.ai/logo.png) Description:(例如 Personal AI Assistant) 启用 Interactive features。 在 Functionality 下,勾选 Join spaces and group conversations。 在 Connection settings 下,选择 HTTP endpoint URL。 在 Triggers 下,选择 Use a common HTTP endpoint URL for all triggers 并将其设置为你的 Gateway 网关公网 URL 后加 /googlechat。 提示:运行 openclaw status 查看你的 Gateway 网关公网 URL。 在 Visibility 下,勾选 Make this Chat app available to specific people and groups in <Your Domain>。 在文本框中输入你的邮箱地址(例如 [email protected])。 点击底部的 Save。 启用应用状态: 保存后,刷新页面。 找到 App status 部分(通常在保存后位于顶部或底部附近)。 将状态更改为 Live - available to users。 再次点击 Save。 使用服务账号路径和 webhook audience 配置 OpenClaw: 环境变量:GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json 或配置:channels.googlechat.serviceAccountFile: "/path/to/service-account.json"。 设置 webhook audience 类型和值(与你的 Chat 应用配置匹配)。 启动 Gateway 网关。Google Chat 将向你的 webhook 路径发送 POST 请求。 添加到 Google Chat Gateway 网关运行后,且你的邮箱已添加到可见性列表中: ...

grammY 集成(Telegram Bot API)

为什么选择 grammY 以 TS 为核心的 Bot API 客户端,内置长轮询 + webhook 辅助工具、中间件、错误处理和速率限制器。 媒体处理辅助工具比手动编写 fetch + FormData 更简洁;支持所有 Bot API 方法。 可扩展:通过自定义 fetch 支持代理,可选的会话中间件,类型安全的上下文。 我们发布的内容 单一客户端路径: 移除了基于 fetch 的实现;grammY 现在是唯一的 Telegram 客户端(发送 + Gateway 网关),默认启用 grammY throttler。 Gateway 网关: monitorTelegramProvider 构建 grammY Bot,接入 mention/allowlist 网关控制,通过 getFile/download 下载媒体,并使用 sendMessage/sendPhoto/sendVideo/sendAudio/sendDocument 发送回复。通过 webhookCallback 支持长轮询或 webhook。 代理: 可选的 channels.telegram.proxy 通过 grammY 的 client.baseFetch 使用 undici.ProxyAgent。 Webhook 支持: webhook-set.ts 封装了 setWebhook/deleteWebhook;webhook.ts 托管回调,支持健康检查和优雅关闭。当设置了 channels.telegram.webhookUrl + channels.telegram.webhookSecret 时,Gateway 网关启用 webhook 模式(否则使用长轮询)。 会话: 私聊折叠到智能体主会话(agent:<agentId>:<mainKey>);群组使用 agent:<agentId>:telegram:group:<chatId>;回复路由回同一渠道。 配置选项: channels.telegram.botToken、channels.telegram.dmPolicy、channels.telegram.groups(allowlist + mention 默认值)、channels.telegram.allowFrom、channels.telegram.groupAllowFrom、channels.telegram.groupPolicy、channels.telegram.mediaMaxMb、channels.telegram.linkPreview、channels.telegram.proxy、channels.telegram.webhookSecret、channels.telegram.webhookUrl。 草稿流式传输: 可选的 channels.telegram.streamMode 在私有话题聊天中使用 sendMessageDraft(Bot API 9.3+)。这与渠道分块流式传输是分开的。 测试: grammY mock 覆盖了私信 + 群组 mention 网关控制和出站发送;欢迎添加更多媒体/webhook 测试用例。 待解决问题 ...

iMessage (imsg)

状态:外部 CLI 集成。Gateway 网关生成 imsg rpc(基于 stdio 的 JSON-RPC)。 快速设置(新手) 确保在此 Mac 上已登录"信息"。 安装 imsg: brew install steipete/tap/imsg 配置 OpenClaw 的 channels.imessage.cliPath 和 channels.imessage.dbPath。 启动 Gateway 网关并批准所有 macOS 提示(自动化 + 完全磁盘访问权限)。 最小配置: { channels: { imessage: { enabled: true, cliPath: "/usr/local/bin/imsg", dbPath: "/Users/<you>/Library/Messages/chat.db", }, }, } 简介 基于 macOS 上 imsg 的 iMessage 渠道。 确定性路由:回复始终返回到 iMessage。 私信共享智能体的主会话;群组是隔离的(agent:<agentId>:imessage:group:<chat_id>)。 如果多参与者会话以 is_group=false 到达,你仍可使用 channels.imessage.groups 按 chat_id 隔离(参见下方"类群组会话")。 配置写入 默认情况下,iMessage 允许写入由 /config set|unset 触发的配置更新(需要 commands.config: true)。 ...

LINE(插件)

LINE 通过 LINE Messaging API 连接到 OpenClaw。该插件作为 webhook 接收器在 Gateway 网关上运行,使用你的 channel access token + channel secret 进行身份验证。 状态:通过插件支持。支持私信、群聊、媒体、位置、Flex 消息、模板消息和快捷回复。不支持表情回应和话题回复。 需要安装插件 安装 LINE 插件: openclaw plugins install @openclaw/line 本地检出(从 git 仓库运行时): openclaw plugins install ./extensions/line 配置步骤 创建 LINE Developers 账户并打开控制台: https://developers.line.biz/console/ 创建(或选择)一个 Provider 并添加 Messaging API 渠道。 从渠道设置中复制 Channel access token 和 Channel secret。 在 Messaging API 设置中启用 Use webhook。 将 webhook URL 设置为你的 Gateway 网关端点(必须使用 HTTPS): https://gateway-host/line/webhook Gateway 网关会响应 LINE 的 webhook 验证(GET)和入站事件(POST)。如果你需要自定义路径,请设置 channels.line.webhookPath 或 channels.line.accounts.<id>.webhookPath 并相应更新 URL。 ...

Matrix(插件)

Matrix 是一个开放的去中心化消息协议。OpenClaw 以 Matrix 用户身份连接到任意主服务器,因此你需要为机器人创建一个 Matrix 账户。登录后,你可以直接私信机器人或邀请它加入房间(Matrix"群组")。Beeper 也是一个有效的客户端选项,但它需要启用 E2EE。 状态:通过插件(@vector-im/matrix-bot-sdk)支持。支持私信、房间、话题、媒体、表情回应、投票(发送 + poll-start 作为文本)、位置和 E2EE(需要加密支持)。 需要插件 Matrix 作为插件提供,不包含在核心安装中。 通过 CLI 安装(npm 仓库): openclaw plugins install @openclaw/matrix 本地检出(从 git 仓库运行时): openclaw plugins install ./extensions/matrix 如果你在配置/新手引导期间选择 Matrix 并检测到 git 检出,OpenClaw 将自动提供本地安装路径。 详情:插件 设置 安装 Matrix 插件: 从 npm:openclaw plugins install @openclaw/matrix 从本地检出:openclaw plugins install ./extensions/matrix 在主服务器上创建 Matrix 账户: 在 https://matrix.org/ecosystem/hosting/ 浏览托管选项 或自行托管。 获取机器人账户的访问令牌: 在你的主服务器上使用 curl 调用 Matrix 登录 API: curl --request POST \ --url https://matrix.example.org/_matrix/client/v3/login \ --header 'Content-Type: application/json' \ --data '{ "type": "m.login.password", "identifier": { "type": "m.id.user", "user": "your-user-name" }, "password": "your-password" }' 将 matrix.example.org 替换为你的主服务器 URL。 或设置 channels.matrix.userId + channels.matrix.password:OpenClaw 会调用相同的登录端点,将访问令牌存储在 ~/.openclaw/credentials/matrix/credentials.json,并在下次启动时重用。 配置凭证: ...

Mattermost(插件)

状态:通过插件支持(bot token + WebSocket 事件)。支持频道、群组和私信。 Mattermost 是一个可自托管的团队消息平台;有关产品详情和下载,请访问官方网站 mattermost.com。 需要插件 Mattermost 以插件形式提供,不包含在核心安装中。 通过 CLI 安装(npm 注册表): openclaw plugins install @openclaw/mattermost 本地检出(从 git 仓库运行时): openclaw plugins install ./extensions/mattermost 如果你在配置/新手引导期间选择 Mattermost 并检测到 git 检出,OpenClaw 会自动提供本地安装路径。 详情:插件 快速设置 安装 Mattermost 插件。 创建 Mattermost bot 账户并复制 bot token。 复制 Mattermost 基础 URL(例如 https://chat.example.com)。 配置 OpenClaw 并启动 Gateway 网关。 最小配置: { channels: { mattermost: { enabled: true, botToken: "mm-token", baseUrl: "https://chat.example.com", dmPolicy: "pairing", }, }, } 环境变量(默认账户) 如果你偏好使用环境变量,请在 Gateway 网关主机上设置: ...

Microsoft Teams(插件)

“进入此地者,放弃一切希望。” 更新时间:2026-01-21 状态:支持文本 + 私信附件;频道/群组文件发送需要 sharePointSiteId + Graph 权限(参见在群聊中发送文件)。投票通过 Adaptive Cards 发送。 需要插件 Microsoft Teams 作为插件提供,不包含在核心安装中。 破坏性变更(2026.1.15): MS Teams 已从核心移出。如果你使用它,必须安装插件。 原因说明:保持核心安装更轻量,并让 MS Teams 依赖项可以独立更新。 通过 CLI 安装(npm 注册表): openclaw plugins install @openclaw/msteams 本地检出(从 git 仓库运行时): openclaw plugins install ./extensions/msteams 如果你在配置/新手引导过程中选择 Teams 并检测到 git 检出, OpenClaw 将自动提供本地安装路径。 详情:插件 快速设置(初学者) 安装 Microsoft Teams 插件。 创建一个 Azure Bot(App ID + 客户端密钥 + 租户 ID)。 使用这些凭证配置 OpenClaw。 通过公共 URL 或隧道暴露 /api/messages(默认端口 3978)。 安装 Teams 应用包并启动 Gateway 网关。 最小配置: ...

Nextcloud Talk(插件)

状态:通过插件支持(webhook 机器人)。支持私信、房间、表情回应和 Markdown 消息。 需要插件 Nextcloud Talk 以插件形式提供,不包含在核心安装包中。 通过 CLI 安装(npm 仓库): openclaw plugins install @openclaw/nextcloud-talk 本地检出安装(从 git 仓库运行时): openclaw plugins install ./extensions/nextcloud-talk 如果你在配置/新手引导过程中选择了 Nextcloud Talk,并且检测到 git 检出, OpenClaw 将自动提供本地安装路径。 详情:插件 快速设置(新手) 安装 Nextcloud Talk 插件。 在你的 Nextcloud 服务器上创建机器人: ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction 在目标房间设置中启用机器人。 配置 OpenClaw: 配置项:channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret 或环境变量:NEXTCLOUD_TALK_BOT_SECRET(仅默认账户) 重启 Gateway 网关(或完成新手引导)。 最小配置: { channels: { "nextcloud-talk": { enabled: true, baseUrl: "https://cloud.example.com", botSecret: "shared-secret", dmPolicy: "pairing", }, }, } 注意事项 机器人无法主动发起私信。用户必须先向机器人发送消息。 Webhook URL 必须可被 Gateway 网关访问;如果在代理后面,请设置 webhookPublicUrl。 机器人 API 不支持媒体上传;媒体以 URL 形式发送。 Webhook 载荷无法区分私信和房间;设置 apiUser + apiPassword 以启用房间类型查询(否则私信将被视为房间)。 访问控制(私信) 默认:channels.nextcloud-talk.dmPolicy = "pairing"。未知发送者将收到配对码。 批准方式: openclaw pairing list nextcloud-talk openclaw pairing approve nextcloud-talk <CODE> 公开私信:channels.nextcloud-talk.dmPolicy="open" 加上 channels.nextcloud-talk.allowFrom=["*"]。 房间(群组) 默认:channels.nextcloud-talk.groupPolicy = "allowlist"(需要提及触发)。 使用 channels.nextcloud-talk.rooms 设置房间白名单: { channels: { "nextcloud-talk": { rooms: { "room-token": { requireMention: true }, }, }, }, } 如需禁止所有房间,保持白名单为空或设置 channels.nextcloud-talk.groupPolicy="disabled"。 功能支持 功能 状态 私信 支持 房间 支持 话题 不支持 媒体 仅 URL 表情回应 支持 原生命令 不支持 配置参考(Nextcloud Talk) 完整配置:配置 ...