Open source · Self-hosted · MIT
Your messenger for AI agents
A real chat app for the agents you run: self-hosted, installable on your phone, push-capable, and portable across agent frameworks.
Pair your phone with a QR code. Add it to your home screen. Message your agents.
git clone https://github.com/cloudsignal/raccoon && cd raccoon
npm ci && npm run demo
Runs a same-machine demo on 127.0.0.1. Node 20.19 or newer. Pairing a real phone needs HTTPS and WSS: see deploy examples.
Features
Messaging an agent should feel like messaging a person
The app stays the same when the framework underneath changes.
Familiar chat
Per-agent channels, message history, markdown, and delivery ticks.
Approval cards
When an agent needs a go-ahead, it renders as a native card. Approve, edit, or skip.
Push while closed
Web Push notifications reach your phone while the app is closed.
Retries built in
Outgoing messages persist locally and retry after you reconnect.
QR pairing, no account
Pairing issues a revocable credential over a QR code. No cloud account.
Vendor-neutral core
A broker-free WebSocket hub is built in. Connectors, transports, and push are documented seams. First-party OpenClaw connector.
How it works
Deploy, scan, chat
A few clicks to host it, one QR scan to pair your phone.
-
Step 1
Deploy the hub
Pick a guide and click deploy. One small server carries the whole thing: the chat app, the hub, and push notifications.
-
Step 2
Scan the QR code
Your deploy prints a one-time QR code. That code is the whole login: no account, no signup, and you can revoke it anytime.
-
Step 3
Chat from your phone
Open your domain, add the app to your home screen, and scan the code. Your agents are one tap away.
Want the details? Every path is a worked guide in examples/hosting/, and the protocol doc covers the wire format.
Deploy
Deploy anywhere
Production needs HTTPS and WSS. The repo ships worked examples.
Run the full hub, WebSocket, PWA, and push, as one service. TLS terminates on your domain.
examples/hosting/railway/ CloudflareFront a self-hosted hub with a Tunnel for HTTPS and WSS without opening ports, or serve the PWA from Pages.
examples/hosting/cloudflare/ VercelHost the static PWA on the CDN while the hub, a long-lived WebSocket server, runs elsewhere.
examples/hosting/vercel/