Privacy
Zwisper has no account or message server. Nothing you write, read, or store is sent anywhere.
What we collect
From the extension: anonymous feature counts and crash reports. After you choose Accept on the one-time notice, the extension sends coarse event totals—such as panel opened, note hidden or opened, site enabled, contact saved and language changed—plus the Zwisper version. These records are kept for up to three months. They carry no identifier and never contain a note, contact, password, anything you typed, a site or page address. Crash reports contain the error, where in Zwisper’s code it happened, the version, browser and operating system. Nothing is sent directly from pages where Zwisper runs. There is no account, behavioural profiling or advertising.
From this website and the web app: error reports. When a page on zwisper.pages.dev, including the web app, hits a bug, it sends us a report so we can fix it: the error message, where in our code it happened, which page it was on, the browser and operating system, and roughly which city and country the connection came from. Each report is cleaned before it leaves the page. It never contains a note, a contact, a password, anything you typed, or the part of a reveal link after the #. Reports carry no identifier for you, and your IP address is not stored.
From this website: page views. zwisper.pages.dev uses a cookie-free analytics service that gives visitors no identifier. It tells us, in aggregate, how many people opened each page, roughly which country they were in, what kind of browser they used, and which site sent them. It never sees a note, a contact, a password, or the part of a reveal link after the #.
What is stored, and where
Everything Zwisper keeps lives in your browser's extension storage on your own device:
- Settings. Your preferences and per-site rules, in local extension storage.
- Contacts vault. One shared key per person. It is encrypted on disk with AES-GCM under a master passphrase you choose, in local extension storage. While the vault is unlocked, the decrypted keys sit in session storage, which is memory-only and cleared when the browser closes or the auto-lock timer fires.
- Inbox. Notes you have opened. This is off by default. When it is off, the inbox lives in session storage and disappears when you close the browser. When you turn it on, it is written to local extension storage so it survives a restart. You can clear it at any time from settings.
The web app at zwisper.pages.dev/app keeps the same settings and the same encrypted vault, in that browser's own storage for this site instead of extension storage. Clearing the site's data removes them; there is no copy anywhere else.
Uninstalling Zwisper removes all of it. None of it is synced to any account or server by the extension.
Permissions
Zwisper runs on no website until you choose one. When you install it, a welcome page lets you pick the sites you chat on, such as Gmail, Slack or WhatsApp Web, or any address you paste, and Chrome asks you once to allow exactly those. On every other site it does nothing and cannot read the page. To add a site later, turn it on there from Zwisper's side panel; Chrome asks you again, for that one site, or for all websites if you choose that instead. You can take any site back at any time in Zwisper's settings or in Chrome's own site access controls.
On the sites you allowed, Zwisper reads and writes the page so it can underline messages that carry a note, show the note’s card, and put the compose pill in the text field you are typing in. When you allow a site, it starts itself in the tabs already open there, so you do not have to reload. That work happens entirely inside your browser tab. Zwisper does not transmit page contents anywhere.
Reveal links
A reveal link carries the message text in the URL fragment — the part after the #. Browsers never send the fragment to a web server, so the text is decoded by JavaScript in the reader’s own browser and this page never receives it. The password is never part of the link; the reader types it here, and it stays in the page.
This website
This site is static files. Apart from the page-view counter and the error reports described above, it loads no third-party scripts, sends nothing anywhere, and sets no cookies. Whoever hosts it may keep ordinary web server access logs, which would record that a page was requested — never the fragment, and never the note.
Changes
If this policy ever changes, the new version replaces this page and the change is recorded in the project's changelog.
No warranty
Zwisper is free to use, provided as is, without warranty of any kind. It is a privacy tool, not a guarantee: a screenshot of a message destroys the note inside it, some platforms strip the hidden characters when a message is sent, and a platform can tell that a message carries invisible characters even if it cannot read them. You use it at your own risk, and the authors are not liable for how it is used or for any loss that results from using it.
Contact
Questions about privacy? Use the Support tab on Zwisper's Chrome Web Store page.