Claude Code on WhatsApp
Open the skills browser in your EnvHaven sidebar, install use-whatsapp, and run /use-whatsapp in Claude Code. This will set up the bridge in your workspace with what we believe is the best memory and context management for agents today.
You stop repeating yourself, the prompt stays small, and old context ages out before it can rot.
Anything you ask Claude Code at your computer, you can ask from your phone. Run the build you're working on, take care of the personal stuff, or both in the same chat. Use it however suits the day.
Check this week’s signups.
Ask in plain English. The bridge reads your analytics export or runs the query, and comes back with the numbers in a sentence.
Log a receipt to a budget.
Send a photo. The bridge transcribes the total, appends it to a markdown ledger, and tells you where you stand for the month.
Push a small change live.
Spot a copy tweak, a stale price, a typo. Tell the bridge what to change. It edits the file, commits, and the change is live in seconds.
Save the moments that matter.
Tell the bridge in plain English; it sets the schedule. The reminder fires as a WhatsApp message at the right time.
Hear what people love this week.
Ask the bridge what people are saying. It reads your inbox or support file, pulls the recurring praise, and flags anything that needs attention.
Add the bridge to a group.
When an owner adds the bridge to a WhatsApp group, the bridge auto-allows it. Inside, the bridge replies to whitelisted senders and ignores everyone else.
Three roles handle the social side. Owner is you: full trust, plus authority to edit the whitelist in natural language. Full-trust matches owner, minus whitelist edits. Restricted is read-only. Roles re-read on every message; changes take effect on the next inbound. No restart needed.
Open the skills browser in your EnvHaven sidebar. Find use-whatsapp, click install. The skill lands in your workspace where Claude Code can reach it.
Type to search skills.sh
Then in Claude Code, type /use-whatsapp. The skill is a wizard: it runs the install, opens a pane for the QR scan, and configures auto-start so the bridge survives restarts. Two minutes, end to end.
Any agent is comprised of the same two parts: a harness (the loop, the tools, the memory model) and a model (the LLM inside it). Shipping one on a new surface usually needs four pieces: a bridge process, the harness, the model, and a host. Two come from Claude (harness from Claude Code, model from your subscription). One comes from EnvHaven (the host). One is left for the skill: the bridge process.
This is why the install is one click. The container that runs your workspace runs the bridge. No Dockerfile, no infrastructure to spin up, no DNS to thread.
- 1No VPS
Your workspace already runs. The bridge is a process inside it.
- 2No container orchestrator
EnvHaven is the container. The bridge ships inside it; nothing new to orchestrate.
- 3No harness
The bridge calls query() from the Claude Agent SDK. The loop, the tools, and the memory model all come from Claude Code itself.
- 4No model bill
The official Claude Code SDK uses your existing Claude credentials and your existing Pro/Max subscription. The logs show
total_cost_usd: $0.00.
From our experience, most agent tools out there forget things. You tell it you prefer kilometers or that your project is migrating off Express. The session resets and you find yourself saying it all again. Three weeks in, you have typed the same context twenty times.
The bridge is built so you only have to say things once. Every morning at 5am, it runs a single Claude call per active chat, reads yesterday's conversation, and decides what to keep.
What it keeps goes to one of seven plain-markdown surfaces: SOUL.md (who you are), feedback-memory (rules you have stated), project-memory (your current work), reference-memory (services you consume), TOOLS.md (services you operate), CLAUDE.md (the environment), and the journal (the conversation). Each fact lands in exactly one place. Four of those seven come from Claude Code itself, so the skill stays thin and the moving parts are not yours to keep working. Examples below.
Before writing anywhere, Claude searches all seven for the same fact. Duplicates get pruned from the lower-priority surface. The rule about your tone never appears in two places, and never comes back rephrased a week later as a question.
The journal is the only surface that grows by chat, and it ages in tiers. Week one: full body in the prompt. Week three: a summary line. Week four: gone. Token cost stays roughly flat as the bridge lives longer.
:5432. Restart with supervisorctl restart pg./config/workspace/api. Bun + Hono.api.stripe.com. Key in 1Password.one claude call per active chat at 5am · routing and aging share the same pass
Booked dentist for thursday. Paid the gas bill.
Planned the Lisbon trip; booked the flights.
Started a budget tracker.
Switched grocery delivery.
Open the bridge directory in your editor. Every byte the bridge remembers about you is there, indexed by chat.
Each WhatsApp chat runs as its own Claude session. Journals and aging clocks are per-chat; context never bleeds from one conversation into another.
Group chats add a privacy rule to the system prompt: abstract file paths, secrets, and architecture details when replying inside a group. This is heuristic. It reduces accidental leaks; a determined sender inside the group can still ask the right questions.
Hermes and OpenClaw cover similar ground. This bridge made different trade-offs.
- Harness
- Claude Code, via the SDK
- Model access
- Claude, via your subscription
- Install
- One skill command
- Channels
- WhatsApp (more on the roadmap)
- Where it runs
- The EnvHaven workspace you already have
- Memory model
- 7 typed surfaces + tiered journal, plain markdown
- Harness
- Hermes runtime
- Model access
- Any model, via API key
- Install
- Curl + setup
- Channels
- 7 channels in one binary
- Where it runs
- A VPS or machine you provision
- Memory model
- Persistent memory, history-style
- Harness
- OpenClaw runtime
- Model access
- Any model, via API key
- Install
- Curl, npm, or git clone
- Channels
- 6 channels in one binary
- Where it runs
- Your laptop or a machine
- Memory model
- History + skill files
OpenClaw covers the widest set of channels: Discord, Slack, Signal, iMessage. If you need those today, it is the right pick. Hermes is vendor-neutral; point it at any model, local models included. This bridge is for an EnvHaven workspace plus a WhatsApp number. The catalog below handles the rest, one surface at a time.
The bridge sits as plain files in a directory your workspace already owns. If you want the 5am reset moved to 4am, or a new role called guest that can only ask about today's schedule, tell Claude on the bridge itself. It reads the files, edits them, restarts the service. No release cycle, no waiting on us.
That is why each skill stays small. Pack seven channels into one binary and you ship seven half-shipped channels, in a binary no one outside the maintainer can edit. We picked the opposite shape: each channel its own skill, each harness and model its own skill. The catalog grows by addition.
One skill, one channel. WhatsApp here. Telegram, Discord, Signal, Email, and Slack each get their own skill when we ship them. Each stays small enough to read in one sitting.
One skill, one harness and model. Claude Code here. Codex on WhatsApp will be its own skill; Aider with a local model on Slack, another. The catalog grows; each entry stays focused.
Three smaller things to know about this particular skill:
- 1It needs your workspace running. Pause the workspace and the bridge pauses with it. Auto-start handles crashes; it does not handle shutdowns.
- 2The role gates are heuristic. The system prompt tells Claude how to treat each sender; there is no kernel-level enforcement. A determined whitelisted sender could push past the rule and Claude might comply.
- 3Image transcription is whatever Claude can see. The Read tool surfaces the photo to Claude; quality matches what Claude can make out. Blurry shot, blurry data.
use-whatsapp is the first entry. New channels and new harness-and-model combinations arrive as their own skill, browsable next to this one in the sidebar.
Every entry lives on its own. Every entry installs in one click. Every entry ships a SKILL.md you can audit. No release notes, no version pinning, no flags to toggle.
- liveWhatsApp·Claude Codeuse-whatsappthis post.
- nextTelegram·Claude Codeuse-telegramthe same memory model, on Telegram’s bot API.
- nextDiscord·Claude Codeuse-discordper-channel sessions, per-server roles.
- queuedSignal·Claude Codeuse-signalend-to-end on signal-cli; same roles, same memory.
- queuedSlack·Claude Codeuse-slackone bridge per workspace, threads as sessions.
- queuedEmail·Claude Codeuse-emailIMAP in, SMTP out, threads as sessions.
- queuedWhatsApp·Codexwa-codexsame bridge, OpenAI’s harness instead of Claude’s.
- queuedWhatsApp·Aiderwa-aidersame bridge, Aider with a local or hosted model.
Open the skills browser in your EnvHaven sidebar, install use-whatsapp, scan the QR. From the command line: npx skills add envhaven/envhaven --skill use-whatsapp. The source lives in the envhaven/envhaven repo; the wizard is the SKILL.md Claude follows step-by-step.
Related Articles
The All New EnvHaven
A skills.sh browser inside the extension, a keyboard command palette, an onboarding card for fresh workspaces, and a sidebar where every feature gets its own focused panel.
Why Your AI Agent Keeps Asking Permission
Every major AI coding tool asks permission before acting. Those prompts protect your laptop. In a container with nothing personal on it, they're just in the way.
Custom Domains: Add a CNAME, We Handle the Rest
Point your own domain at an EnvHaven workspace with a single DNS record. SSL is automatic. No special account required.