New version of Reverb available.see what's new
ReverbStar on GitHub
v0.6.0 · early access

Your AI CLI,
one message away.

Message Claude from WhatsApp, Telegram, or any app. Claude replies.Your machine doesn't even need to be on.

Sending a prompt from WhatsApp, Claude replies. Host machine is asleep the whole time.
The problem

Everything else had a catch.

Plugins die with Claude Code

Anthropic's WhatsApp plugin only lives inside Claude Code. Close the CLI and the bridge goes with it. Useless the moment you step away.

Docker is 4 GB of overkill

A full Linux VM running 24/7 just to relay a chat message. Wrong tool for a personal assistant.

Twilio bills you

A verified business number, API tokens, ongoing costs. Built for SaaS products, not a dev's daily driver.

Reverb is a separate process. It holds the WhatsApp socket alive and spawns claude --print per message. Native system service, ~50 MB RAM, no cloud. Read the full writeup →

Features

Built to run unattended.

Omnichannel

WhatsApp, Telegram, and any external app via POST /api/chat. One handler, any channel — swap the transport, keep the behavior.

env · bash
# Telegram
TELEGRAM_ENABLED=true
TELEGRAM_TOKEN=your-bot-token

# Any app
curl localhost:3737/api/chat \
  -d '{"message": "deploy status?"}'

Always-on

LaunchAgent, systemd, Task Scheduler. Starts on boot, restarts on crash, reconnects on drops.

Secure by default

Claude sandboxed to a scoped dir — $HOME off-limits. Per-chat rate limiting. Hashed IDs in audit log.

Voice messages

Whisper transcribes locally — no API key. Enable with AUDIO_ENABLED=true.

Images & docs

Images, PDFs, stickers saved to Claude's sandbox — vision, OCR, document parsing.

Webhook notifications

Any local process POSTs to /api/notify — deploy alerts, errors, cron results. Bound to localhost.

bash
curl localhost:3737/api/notify \
  -d '{"title":"Deploy failed","level":"error","service":"api"}'

Monitors

Health checks and shell jobs via monitors.json. Alerts on down, recovery, or non-zero exit.

json
{ "name": "api", "type": "http",
  "url": "http://localhost:3000/health",
  "interval": "5m" }
How it works

Two commands. That's it.

  1. 01

    Clone, install, and start.

    One command clones the repo, builds, registers the system service for your OS, and starts the daemon. No Docker, no Twilio, no API keys.

    bash
    git clone https://github.com/eusougustavocesar/reverb.git
    cd reverb && npm install && npm run setup
  2. 02

    Pair your phone. Done.

    Scan the QR from your terminal. Reverb registers as a WhatsApp linked device — same protocol as WhatsApp Web. Auth survives reboots.

    bash
    npm run pair
    # → QR renders in terminal
    # iOS:     WhatsApp › Settings › Linked Devices › Link a Device
    # Android: WhatsApp › ⋮ Menu  › Linked Devices › Link a Device

The daemon and Claude Code run as independent processes. The WhatsApp socket stays alive for hours; each Claude invocation exits in seconds. That's why Reverb works when plugin-based bridges don't.

Prior art

Why not the alternatives?

Setup time (minutes, lower is better)

Reverb1 script2m
Rich627 pluginbut dies w/ Claude Code3m
osisdie + Docker+ 2–4 GB RAM idle12m
n8n + webhookflow + auth + server25m
Twilio + API+ paid tokens45m
I wanted to use Claude Code from my phone. The official plugin died the moment I closed the CLI. Docker ate 4 GB of RAM for a chat bridge. Twilio wanted a business account.

So I wrote a lightweight daemon. It spawns claude --print per message, runs as a system service, and uses my existing subscription. Mac closed. Phone in pocket. Claude still replies.
Gustavo Cesar Fortkamp
Gustavo Cesar Fortkamp@eusougustavocesar · creator
Install

Up and running in minutes.

macOS · bash
git clone https://github.com/eusougustavocesar/reverb.git
cd reverb && npm install && npm run setup

# Then pair your phone (interactive QR scan)
npm run pair
# iOS:     WhatsApp › Settings › Linked Devices › Link a Device
# Android: WhatsApp › ⋮ Menu  › Linked Devices › Link a Device

Boot it once. It handles the rest — starts on login, reconnects on network drops, restarts on crash. Message yourself on WhatsApp to verify.

Want 24/7 uptime?

Run Reverb on a Linux VPS — a $5/mo server stays online while your laptop sleeps. The Linux systemd path handles everything.

macOSLinux / VPSWindows
FAQ

Questions you'd ask too.

Still have questions? Open an issue →