跳到主要内容

Clawdbot 🦞

"去角质!去角质!" — 可能是一只太空龙虾说的

Clawdbot

适用于 AI 智能体 (Pi) 的任意操作系统 + WhatsApp/Telegram/Discord/iMessage 网关。
通过插件支持 Mattermost 等更多平台。 发送消息,即可从口袋中获取智能体回复。

GitHub · 发布页 · 文档 · Clawdbot 助手设置

Clawdbot 将 WhatsApp (通过 WhatsApp Web / Baileys)、Telegram (Bot API / grammY)、Discord (Bot API / channels.discord.js) 和 iMessage (imsg CLI) 桥接到像 Pi 这样的编程智能体。插件增加了对 Mattermost (Bot API + WebSocket) 等的支持。 Clawdbot 还驱动了太空龙虾助手 Clawd

从这里开始

如果网关在同一台计算机上运行,该链接将立即打开浏览器控制 UI。如果失败,请先启动网关:clawdbot gateway

仪表板(浏览器控制 UI)

仪表板是用于聊天、配置、节点、会话等的浏览器控制 UI。 本地默认地址:http://127.0.0.1:18789/ 远程访问:Web 界面Tailscale

工作原理

WhatsApp / Telegram / Discord / iMessage (+ 插件)


┌───────────────────────────┐
│ 网关 │ ws://127.0.0.1:18789 (仅限回环)
│ (单一数据源) │
│ │ http://<gateway-host>:18793
│ │ /__clawdbot__/canvas/ (Canvas 宿主)
└───────────┬───────────────┘

├─ Pi 智能体 (RPC)
├─ CLI (clawdbot …)
├─ 聊天 UI (SwiftUI)
├─ macOS 应用 (Clawdbot.app)
├─ 通过网关 WS + 配对的 iOS 节点
└─ 通过网关 WS + 配对的 Android 节点

大多数操作流经 网关 (clawdbot gateway),这是一个长期运行的单一进程,负责管理频道连接和 WebSocket 控制平面。

网络模型

  • 每个主机一个网关(推荐):它是唯一允许拥有 WhatsApp Web 会话的进程。如果你需要救援机器人或严格隔离,请运行具有隔离配置文件和端口的多个网关;参见 多个网关
  • 回环优先:网关 WS 默认地址为 ws://127.0.0.1:18789
    • 向导现在默认生成网关令牌(即使是回环地址)。
    • 对于 Tailnet 访问,请运行 clawdbot gateway --bind tailnet --token ...(非回环绑定需要令牌)。
  • 节点:连接到网关 WebSocket(根据需要使用 LAN/tailnet/SSH);旧的 TCP 桥接已被弃用/移除。
  • Canvas 宿主:在 canvasHost.port(默认 18793)上的 HTTP 文件服务器,为节点 WebView 提供 /__clawdbot__/canvas/ 服务;参见 网关配置 (canvasHost)。
  • 远程使用:SSH 隧道 or tailnet/VPN;参见 远程访问探索发现

功能特性(高层级)

  • 📱 WhatsApp 集成 — 使用 Baileys 协议实现 WhatsApp Web
  • ✈️ Telegram 机器人 — 通过 grammY 实现私聊 + 群组
  • 🎮 Discord 机器人 — 通过 channels.discord.js 实现私聊 + 公会频道
  • 🧩 Mattermost 机器人 (插件) — 机器人令牌 + WebSocket 事件
  • 💬 iMessage — 本地 imsg CLI 集成 (macOS)
  • 🤖 智能体桥接 — 具有工具流式传输功能的 Pi (RPC 模式)
  • ⏱️ 流式传输 + 分块 — 块流式传输 + Telegram 草稿流式传输详情 (/concepts/streaming)
  • 🧠 多智能体路由 — 将提供商账号/对等点路由到隔离的智能体(工作区 + 每个智能体独享会话)
  • 🔐 订阅认证 — 通过 OAuth 实现 Anthropic (Claude Pro/Max) + OpenAI (ChatGPT/Codex)
  • 💬 会话 — 私聊默认折叠进共享的 main 会话;群组是隔离的
  • 👥 群聊支持 — 默认基于提及(@提及);所有者可以切换 /activation always|mention
  • 📎 媒体支持 — 发送和接收图片、音频、文档
  • 🎤 语音留言 — 可选的转录钩子
  • 🖥️ WebChat + macOS 应用 — 本地 UI + 用于操作和语音唤醒的菜单栏伴侣
  • 📱 iOS 节点 — 作为节点配对并暴露 Canvas 界面
  • 📱 Android 节点 — 作为节点配对并暴露 Canvas + 聊天 + 摄像头

注意:旧的 Claude/Codex/Gemini/Opencode 路径已被移除;Pi 是唯一的编程智能体路径。

快速开始

运行时要求:Node ≥ 22

# 推荐:全局安装 (npm/pnpm)
npm install -g clawdbot@latest
# 或:pnpm add -g clawdbot@latest

# 入职并安装服务 (launchd/systemd 用户服务)
clawdbot onboard --install-daemon

# 配对 WhatsApp Web (显示二维码)
clawdbot channels login

# 网关在入职后通过服务运行;手动运行仍然可行:
clawdbot gateway --port 18789

稍后在 npm 和 git 安装之间切换很容易:安装另一种版本并运行 clawdbot doctor 以更新网关服务入口点。

从源码运行 (开发):

git clone https://github.com/clawdbot/clawdbot.git
cd clawdbot
pnpm install
pnpm ui:build # 首次运行时自动安装 UI 依赖
pnpm build
clawdbot onboard --install-daemon

如果你还没有全局安装,请在仓库中通过 pnpm clawdbot ... 运行入职步骤。

多实例快速启动 (可选):

CLAWDBOT_CONFIG_PATH=~/.clawdbot/a.json \
CLAWDBOT_STATE_DIR=~/.clawdbot-a \
clawdbot gateway --port 19001

发送测试消息 (需要正在运行的网关):

clawdbot message send --target +15555550123 --message "Hello from Clawdbot"

配置 (可选)

配置文件位于 ~/.clawdbot/clawdbot.json

  • 如果你 不进行任何操作,Clawdbot 将以 RPC 模式使用捆绑的 Pi 二进制文件,并为每个发送者提供独立的会话。
  • 如果你想要锁定它,请从 channels.whatsapp.allowFrom 和(对于群组)提及规则开始。

示例:

{
channels: {
whatsapp: {
allowFrom: ["+15555550123"],
groups: { "*": { requireMention: true } }
}
},
messages: { groupChat: { mentionPatterns: ["@clawd"] } }
}

文档

名称含义

Clawdbot = CLAW + TARDIS — 因为每只太空龙虾都需要一台时空穿梭机。


"我们都在玩自己的提示词。" — 某个 AI,大概是 token 吸多了

致谢

  • Peter Steinberger (@steipete) — 创始人,龙虾耳语者
  • Mario Zechner (@badlogicc) — Pi 创始人,安全渗透测试员
  • Clawd — 要求一个更好名字的太空龙虾

核心贡献者

许可证

MIT — 像大海里的龙虾一样自由 🦞


"我们都在玩自己的提示词。" — 某个 AI,大概是 token 吸多了