--- summary: "Top-level overview of Clawdis, features, and purpose" read_when: - Introducing Clawdis to newcomers --- # CLAWDIS ๐Ÿฆž > *"EXFOLIATE! EXFOLIATE!"* โ€” A space lobster, probably

CLAWDIS

WhatsApp + Telegram + Discord gateway for AI agents (Pi).
Send a message, get an agent response โ€” from your pocket.

GitHub ยท Releases ยท Clawd setup

CLAWDIS bridges WhatsApp (via WhatsApp Web / Baileys), Telegram (Bot API / grammY), and Discord (Bot API / discord.js) to coding agents like [Pi](https://github.com/badlogic/pi-mono). Itโ€™s built for [Clawd](https://clawd.me), a space lobster who needed a TARDIS. ## How it works ``` WhatsApp / Telegram / Discord โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Gateway โ”‚ ws://127.0.0.1:18789 (loopback-only) โ”‚ (single source) โ”‚ tcp://0.0.0.0:18790 (Bridge) โ”‚ โ”‚ http://:18793/__clawdis__/canvas/ (Canvas host) โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”œโ”€ Pi agent (RPC) โ”œโ”€ CLI (clawdis โ€ฆ) โ”œโ”€ Chat UI (SwiftUI) โ”œโ”€ macOS app (Clawdis.app) โ””โ”€ iOS node via Bridge + pairing ``` Most operations flow through the **Gateway** (`clawdis gateway`), a single long-running process that owns provider connections and the WebSocket control plane. ## Network model - **One Gateway per host**: it is the only process allowed to own the WhatsApp Web session. - **Loopback-first**: Gateway WS defaults to `ws://127.0.0.1:18789`. - For Tailnet access, run `clawdis gateway --bind tailnet --token ...` (token is required for non-loopback binds). - **Bridge for nodes**: optional LAN/tailnet-facing bridge on `tcp://0.0.0.0:18790` for paired nodes (Bonjour-discoverable). - **Canvas host**: HTTP file server on `canvasHost.port` (default `18793`), serving `/__clawdis__/canvas/` for node WebViews; see `docs/configuration.md` (`canvasHost`). - **Remote use**: SSH tunnel or tailnet/VPN; see `docs/remote.md` and `docs/discovery.md`. ## Features (high level) - ๐Ÿ“ฑ **WhatsApp Integration** โ€” Uses Baileys for WhatsApp Web protocol - โœˆ๏ธ **Telegram Bot** โ€” DMs + groups via grammY - ๐ŸŽฎ **Discord Bot** โ€” DMs + guild channels via discord.js - ๐Ÿค– **Agent bridge** โ€” Pi (RPC mode) with tool streaming - ๐Ÿ’ฌ **Sessions** โ€” Direct chats collapse into shared `main` (default); groups are isolated - ๐Ÿ‘ฅ **Group Chat Support** โ€” Mention-based by default; owner can toggle `/activation always|mention` - ๐Ÿ“Ž **Media Support** โ€” Send and receive images, audio, documents - ๐ŸŽค **Voice notes** โ€” Optional transcription hook - ๐Ÿ–ฅ๏ธ **WebChat + macOS app** โ€” Local UI + menu bar companion for ops and voice wake - ๐Ÿ“ฑ **iOS node** โ€” Pairs as a node and exposes a Canvas surface Note: legacy Claude/Codex/Gemini/Opencode paths have been removed; Pi is the only coding-agent path. ## Quick start Runtime requirement: **Node โ‰ฅ 22**. ```bash # From source (recommended while the npm package is still settling) pnpm install pnpm build pnpm link --global # Pair WhatsApp Web (shows QR) clawdis login # Run the Gateway (leave running) clawdis gateway --port 18789 ``` Send a test message (requires a running Gateway): ```bash clawdis send --to +15555550123 --message "Hello from CLAWDIS" ``` ## Configuration (optional) Config lives at `~/.clawdis/clawdis.json`. - If you **do nothing**, CLAWDIS uses the bundled Pi binary in RPC mode with per-sender sessions. - If you want to lock it down, start with `routing.allowFrom` and (for groups) mention rules. Example: ```json5 { routing: { allowFrom: ["+15555550123"], groupChat: { requireMention: true, mentionPatterns: ["@clawd"] } } } ``` ## Docs - Start here: - [Configuration](./configuration.md) - [Nix mode](./nix.md) - [Clawd personal assistant setup](./clawd.md) - [Skills](./skills.md) - [Skills config](./skills-config.md) - [Workspace templates](./templates/AGENTS.md) - [Gateway runbook](./gateway.md) - [Nodes (iOS/Android)](./nodes.md) - [Web surfaces (Control UI)](./web.md) - [Discovery + transports](./discovery.md) - [Remote access](./remote.md) - Providers and UX: - [WebChat](./webchat.md) - [Control UI (browser)](./control-ui.md) - [Telegram](./telegram.md) - [Discord](./discord.md) - [Group messages](./group-messages.md) - [Media: images](./images.md) - [Media: audio](./audio.md) - Ops and safety: - [Sessions](./session.md) - [Cron + wakeups](./cron.md) - [Security](./security.md) - [Troubleshooting](./troubleshooting.md) ## The name **CLAWDIS = CLAW + TARDIS** โ€” because every space lobster needs a time-and-space machine. --- *"We're all just playing with our own prompts."* โ€” an AI, probably high on tokens ## Credits - **Peter Steinberger** ([@steipete](https://twitter.com/steipete)) โ€” Creator, lobster whisperer - **Mario Zechner** ([@badlogicc](https://twitter.com/badlogicgames)) โ€” Pi creator, security pen-tester - **Clawd** โ€” The space lobster who demanded a better name ## License MIT โ€” Free as a lobster in the ocean ๐Ÿฆž --- *"We're all just playing with our own prompts."* โ€” An AI, probably high on tokens