snug.
How it worksDocsSpecPlayground
Menu
How it worksDocsSpecPlaygroundGitHubDownload for macOS

privacy

Privacy

updated 2026-08-23

This statement is written from Snug's threat model, so it says what the software actually does — including the parts we would rather were tidier. The website and the hosted Playground are operated by TechVoyage LLC, a California limited liability company. The macOS app is distributed by Jeetu Maker. "We", "us" and "our" mean Jeetu Maker and TechVoyage LLC together, with their officers, members, employees and agents.

What does not happen

We operate no server that holds your data, we hold no account for you, we run no analytics script, and we set no cookie. There is no sign-up, no profile, and no copy of your file anywhere we can reach. When you use Snug, nothing about you is collected by us — not because of a policy, but because there is nothing on our side to collect it into.

Two honest bounds on that sentence. Cloudflare, which hosts the website and the Playground as static files, shows us aggregate request counts for the domain, and GitHub shows download counts for the desktop app; neither identifies you to us. And your file, together with a few preferences (theme, layout, whether the desktop app checks for updates), lives in this app's browser storage on this device — on a Mac, the file itself lives in ~/Snug. On a shared computer, that is where they are, readable by whoever else uses that account.

Where your data lives

Everything Snug knows — your apps, their data, your chats, your settings, and every API key or token you save — lives in one file that is yours: in your browser's private storage on the web, or in ~/Snug in the desktop app. Export it and you have all of it; delete it and it is gone, because we never had a copy.

One thing lives beside that file rather than in it: if you link a messaging account, the helper's session — its keys, its access token, and a cache of the chats it has synced, which includes other people's messages — sits next to the file (in ~/Snug/whatsapp-session on a Mac). It does not ride exports or sync, and deleting the file does not delete it; unlinking the account, or removing the last linked app, does.

By default that file is an ordinary database, readable by any program running under your user account on that computer. You can turn on protection in Settings: the whole file is then encrypted at rest with a passphrase only you hold, plus a Recovery Key shown to you once. If you lose both, the data is unrecoverable — there is no reset and no backdoor, which is the point of the feature and also its cost.

Snug is not zero-knowledge and not end-to-end encrypted, and we do not claim your keys never leave your file — a personal sync origin you connect carries them, by your choice. What we do claim is exactly this: your keys never reach our servers, because we have none, and your file goes only to storage you choose.

What leaves your device, and to whom

Nothing leaves your device to us. What can leave is decided by choices you make in the app, and each one reaches a third party under that party's own terms. This table is meant to be complete; if you find an egress it does not name, that is a bug in this statement and we want to hear about it.

WhoWhat they can seeWhen, and why
CloudflareEach request for the website or the hosted Playground: your IP address, browser type, and which page or file you asked for — the ordinary logs of a hosting provider.Whenever you visit snugprotocol.org or the hosted Playground. Cloudflare hosts both as static files for TechVoyage LLC. We enable no analytics script, no challenge script and no beacon; Cloudflare still shows us aggregate request counts for the zone.
Your model provider (Anthropic, OpenAI, or the endpoint you configured)Your prompts, the app data an app puts in front of the model, and the results of any connected-service calls the model asked for.Whenever the agent runs in "bring your own key" mode. Requests go straight from your browser or the desktop app to the provider, under their own terms, on your own bill. Nothing routes through us. In "local model" mode with an endpoint on this machine or your own network, no model traffic leaves it — if the endpoint you typed is elsewhere, Settings tells you so.
cdn.jsdelivr.net, cdnjs.cloudflare.com, unpkg.comYour IP address and which library file was requested.When an app you run loads a JavaScript library. Apps can load libraries only from these three hosts and have no other network of their own.
huggingface.coYour IP address and which model weights were downloaded.Only if you turn on the experimental in-browser model (the ?webllm=1 flag). The weights download from Hugging Face on first use and are cached by your browser; the model's runtime library downloads from raw.githubusercontent.com (GitHub) the same way.
GitHubYour IP address, the time, and the desktop app version (the update check); the download itself; and, if you use it, the feedback you chose to send.The desktop app checks github.com for a new version each time it starts. That request tells GitHub your IP address, the time, and the version you are running. You can turn it off in Settings. Nothing installs by itself: an update is offered and you choose. We do not receive that request; it goes to GitHub. Downloading the app from GitHub Releases is a request to GitHub. The in-app feedback links build a prefilled GitHub issue that you review in Snug and then confirm; nothing reaches GitHub until you confirm the jump, and nothing is filed until you submit it there.
A personal sync origin you connect (for example your own Dropbox)Your whole file, including every saved key and token.Only if you choose that origin in Settings — and then continuously, for as long as it stays selected: the file is re-copied on a schedule, so anyone with access to that storage holds your keys. That is how your file travels between your own devices; it is your storage, and its security is yours.
A messaging service you link (WhatsApp, through a helper on your computer)The other people in your chats — their names, numbers and messages — as far as an app you run reads them; and, when an app sends a thread to your model provider, the content of those messages.Only if you link the service. Once linked, the helper starts with the desktop app and reconnects to that service on every launch until you unlink it. Linking an automation tool to a personal messaging account may be against that service's terms, and accounts have been banned for it. Removing the last linked app ends the session from that service's linked-devices list.

The desktop update check

The desktop app checks github.com for a new version each time it starts. That request tells GitHub your IP address, the time, and the version you are running. You can turn it off in Settings. Nothing installs by itself: an update is offered and you choose. We do not receive that request; it goes to GitHub.

It is on by default because a desktop app that never learns about a security fix is worse for you than one request to GitHub per launch; the threat model records it as an accepted residual rather than pretending it is not there. The desktop app makes no other automatic outbound request of its own — except the messaging helper described above and a sync origin you selected, each running only because you set it up.

Other people's messages

If you link a messaging account and run an app that analyses a conversation, the other people in that conversation never agreed to anything. Their messages reach your model provider because that is what analysing a thread means. Before those messages leave, Snug redacts the names and numbers it has seen from the contact list and replaces them with stable labels; that is a reduction, never a guarantee. The scrub is anti-default and anti-naive, not anti-adversarial — a nickname typed only inside a message, or an app that obfuscates, gets through, and the words themselves always go. The threat model states the exact limits.

Linking an automation tool to a personal messaging account may be against that service's terms, and accounts have been banned for it. Snug paces its requests, which is harm reduction, not a guarantee. The screen where you link says all of this again, where it matters.

Security, honestly

Snug's security claims are written down, with the test that would catch each one regressing, in the threat model. It also lists, with equal prominence, what is accepted and not mitigated: for example, that a compromise of the page Snug runs in is a compromise of everything it holds, and that the messaging scrub is bounded as described above. Read that document if you are deciding whether to trust this software with something that matters; this statement is the shorter, plainer version of it.

Children

Snug has no accounts and collects nothing, so there is no profile of a child for us to hold, correct or delete. Because the software can connect to real accounts and sends text to a model provider, we ask that a parent or guardian set it up for a child and stay involved in what it is connected to.

Your rights, and why the answer is short

Under the California Consumer Privacy Act (CCPA), the GDPR and similar laws you have rights to access, correct, delete and port personal information a business holds about you, and to opt out of its sale or sharing. We hold nothing to produce, correct, delete or port, and nothing is sold or shared, because nothing about you reaches us. Your control is direct instead: export your file, or delete it, in Settings.

  • To see everything Snug knows about you: Settings → your file → export.
  • To erase it: delete the file (the desktop app keeps it in ~/Snug; the web Playground keeps it in this browser's site data) — and if you linked a messaging account, unlink it too: its session store lives beside the file.
  • To stop any third-party egress: revoke the connection, unlink the account, choose "this device only" as the sync origin, or turn off the update check — each in Settings.

Changes and contact

This statement is dated 2026-08-23 and lives at /privacy on the Playground and on snugprotocol.org. When the software gains a new egress, this statement changes with it and the release notes say so. Questions, corrections, or an egress we failed to name: hello@snugprotocol.org.

The Snug Protocol — an open protocol for agent-backed personal software. MIT licensed.

Product

PlaygroundDesktop appDocumentation

Protocol

SpecificationSchemasWhitepaper

Community

GitHub orgReference implementationSpec repositorysecurity@snugprotocol.org

Legal

TermsPrivacyThreat modelSecurity policy