uautsapp

Security

Security, and the honest part first

This page is longer than security pages usually are, because two things need saying plainly: what we cannot promise, and what we actually do.

Rings, not walls: every layer is something you can see from the panel.

What we cannot promise

uautsapp connects to WhatsApp as a linked device, through an unofficial client — software that speaks WhatsApp's protocol without WhatsApp's blessing. WhatsApp's terms of service do not allow this kind of use for commercial purposes, and WhatsApp can, and sometimes does, ban accounts it decides are misbehaving.

We lower the odds by behaving exactly like a normal linked device: one session per phone, messages read as they arrive, no contact scraping, and never any bulk sending. Sending is off until you turn it on, is limited to a human pace, and the same text cannot go to more than a few chats in an hour — whoever, or whatever, is asking. But "lower the odds" is the true statement. If losing your WhatsApp number would be a disaster for you, do not connect it. Use a second number.

WhatsApp can also change its protocol overnight. When that happens the link breaks until we catch up. The panel tells you as soon as we know.

What is encrypted, where

One encrypted database per workspace
Your conversations do not share a table with anyone else's. Each workspace has its own database, encrypted with its own key.
Keys wrapped by a master key
Each workspace key is itself encrypted by a master key that lives outside the data volume. A copy of the disk does not carry what decrypts it.
Media encrypted on disk
Photos, documents and voice notes are fetched only when a tool asks for them, and are written to disk encrypted.
The WhatsApp session, encrypted at rest
The session keys — which are functionally your account — are stored under your workspace key, never in the clear.
In transit
TLS everywhere, with HSTS. The service itself never listens on a public interface; only the front door does.

One trade-off, said plainly: to be searchable, and to be handed to Claude, a conversation has to be readable by the service while it works. Encryption at rest protects you from a stolen disk or a leaked backup. It does not turn the server into something that cannot read your messages.

When we open your workspace

Sometimes support has to look — a sync that will not finish, an import that failed. When it does: the access is time-boxed and expires on its own; it needs a second factor from the person doing it; and it is written to your activity log, where you can see who, when and why. There is no quiet way in.

Signing in

No password. You ask for a code, it arrives by email, you type it in. The code is bound to the browser that asked for it — one lifted from an inbox, a forwarded email or a mail-scanning proxy cannot be redeemed anywhere else. It is single use, valid for ten minutes, and dies after a few wrong attempts. Sessions last eight hours.

Claude's access

Claude connects with OAuth 2.1 and PKCE; access tokens live an hour, refresh tokens rotate on every use, and a replayed one is detected and logged. Scope is decided by you at the approval screen: read only, or read and send. The check is enforced on the server — a read-only token cannot send, however it is asked. Any client can be revoked at any time from the panel, and it stops working on the next request.

Prompt injection

Anyone can send you a WhatsApp message containing instructions aimed at Claude. We cannot prevent that, and we do not pretend to. What we do is keep the blast radius small: the send tool tells Claude to confirm recipient and wording with you first; read-only tokens make sending impossible rather than discouraged; the fan-out cap limits the damage if something does get through; and an allowlist, if you set one, makes unknown recipients unreachable.

If you run a highly autonomous agent, give it read-only access.

What we keep, and what we do not

Message content never appears in logs — ours or the server's. A message deleted on the phone is deleted from the cache. Excluded chats are purged. Delete the workspace, and the database, the media and the keys go with it.

Found something?

Write to [email protected]. We answer people who look.