---
summary: "Top-level overview of Clawdis, features, and purpose"
read_when:
- Introducing Clawdis to newcomers
---
# CLAWDIS ๐ฆ
> *"EXFOLIATE! EXFOLIATE!"* โ A space lobster, probably
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