Decrypt without
trusting the page

Whisper Decrypt fetches a note's ciphertext and decrypts it locally, right in the popup, using your browser's built-in Web Crypto — same guarantees as how the encryption works, plus one more: the code doing the decrypting isn't downloaded fresh every time you use it.

One download, reviewed once

Open a note in a normal browser tab and the JavaScript that decrypts it is served to you fresh, on every visit, by our server. That's fine as long as our server is fine — but it means the thing actually holding your key, even for a second, is code you re-download and re-trust every single time. A compromised server, a bad deploy, a targeted swap for one specific visitor — any of those could quietly change what that code does, and there'd be no way for you to tell.

  • The extension doesn't have this problem. Its decrypt code is bundled into a signed package at build time, reviewed once by Chrome/Mozilla, and installed once. Nothing about it is fetched from any server at the moment you use it — there's simply nothing left for a compromised server to swap out from under you.
  • This isn't just a promise — it's enforced. Manifest V3, the platform every major browser extension runs on now, flatly disallows remotely hosted code in a published extension. What you installed is what runs, permanently, until you install an update you approve.

The decryption key is used only locally and is never sent anywhere — only the note's ID goes over the network to fetch its ciphertext. The one documented exception: a true end-to-end note's optional password is verified by the server itself, since in that mode the server holds no key to check a derived value against — the encryption key itself is still never sent, in either mode. No account, no sign-in, no analytics, nothing collected.

Free, open source, same encryption model as the site.

Also installs directly on Brave, Vivaldi, and Opera — all Chromium-based, no separate listing needed. Firefox (via addons.mozilla.org) is on the way.

Every claim above, including exactly what does and doesn't get sent over the network, is auditable — this isn't a black box you're asked to trust blind either.

Source on GitHub →