Code blocks with syntax highlighting, spoilers, custom emoji, links β rendered by Discord's own parser once decrypted. It reads like a normal message, in green.
01 / HOW IT WORKS
One button. One phrase. Nothing else to manage.
The key derives from your phrase and the channel itself, so the same phrase in the same channel always produces the same key β for everyone, on any machine, forever. No key files, no QR codes, no exchange protocol.
Click the π¦ in the chat bar
Open any channel, group, or DM. The bat button sits next to the message box and asks for exactly one thing.
Set a secret phrase
Make it long and unique β it's the entire protection. From that moment everything you send goes out encrypted, automatically.
Tell your people the phrase
Share it outside Discord. They click the same π¦, type the same phrase, and every message decrypts β past and future.
02 / COVERAGE
Everything encrypts. Discord still feels like Discord.
Images, video, audio, any file β uploaded as opaque .bpenc blobs with the real filename sealed inside. Key holders see inline previews; everyone else sees noise.
Keys are derived, never stored. Wipe the plugin, switch machines, come back a year later β type the phrase and everything comes back.
Keys live in memory only and re-lock after inactivity. Ctrl+Shift+L locks everything instantly; optional lockdown mode re-locks on every channel switch.
Each channel has its own key and its own on/off switch. /pt sends a single message in plaintext; /enc picks a specific key. Power features stay in Settings.
Discord updates can change its internals. The π¦ turns red when a required integration is unavailable β check the warning before sending anything sensitive.
data breach β ciphertext Β· scanning bot β ciphertext Β· subpoena β ciphertext
Discord can't reveal what it can't see.
click the π¦ β or hover the redaction β to decrypt
03 / SECURITY, HONESTLY
Clear about what it does β and what it doesn't.
The model is simple β Discord can't read what it never receives. Here are its exact edges: passphrase-based symmetric encryption with standard primitives, AES-256-GCM via WebCrypto, PBKDF2-HMAC-SHA256 at 600,000 rounds, with authenticated messages and files. Not independently audited.
Read the code, report an issue, or contribute.
What it protects
- Message and file contents. Discord's servers, data breaches, and subpoenas get ciphertext only.
- Against network observers. ISPs and WiFi snoops see authenticated AES-256-GCM blobs.
- Against non-recipients. Anyone in the channel without the phrase sees unreadable ciphertext.
- Attachment names. Files upload as randomly-named
.bpenc; the real name is inside the encryption. - Against tampering. A modified message fails loudly instead of decrypting to something wrong.
What it doesn't
- Metadata. Who talks to whom, when, and how much stays visible β as does the fact that you encrypt.
- Weak phrases. The phrase is the entire defense. Short or reused phrases can be guessed.
- No forward secrecy. A leaked phrase exposes past and future messages encrypted with it.
- Your own device. Malware, or anyone at your unlocked keyboard, sees what you see.
- Voice and video calls. Out of scope β chat messages and file attachments only.
04 / INSTALL
Two minutes, four steps.
- Install BetterDiscord β desktop only: Windows, macOS, or Linux.
-
Download BetterPrivacy.plugin.js and drop it into your plugins folder:
Windows
%APPDATA%\BetterDiscord\plugins\macOS~/Library/Application Support/BetterDiscord/plugins/Linux~/.config/BetterDiscord/plugins/ - In Discord, open Settings β BetterDiscord β Plugins and switch BetterPrivacy on.
- Open a channel, click the π¦, set a phrase. You're encrypted.
05 / FAQ
Questions people actually ask.
What do people without the plugin see?
A π¦ followed by a link to this site. Clicking it opens the decrypt page: the scrambled payload rides in the URL fragment β which browsers never send to any server β and the secret phrase unlocks it right in the browser. Every encrypted message is both unreadable and a signpost to the plugin.
Do I need an account or a server?
No. There is no backend, no signup, no telemetry. Every cryptographic operation happens inside your Discord client via the WebCrypto API. You can also create a message or open one in your browser, including on mobile.
What if I forget my phrase?
It's gone β by design. The plugin never stores the phrase or any way to recover it. Anyone else who knows the phrase effectively holds the backup, since typing it in the same channel always recreates the key.
How do keys survive reinstalling the plugin?
Keys are derived deterministically β PBKDF2 over your phrase, salted by the channel. The phrase plus the channel is the key. Reinstall, switch machines, type the phrase again, and everything decrypts.
Can I send one unencrypted message without switching encryption off?
Yes β prefix it with /pt and that single message goes out in plaintext. There's also /enc <label> <message> to encrypt with a specific key.
Does it work on mobile?
The plugin runs in desktop Discord. On mobile, open the encrypted link in your browser and enter the phrase β or create a message here and share it back to Discord. No mobile installation needed.
Is this against Discord's Terms of Service?
Yes β all client modification is, including BetterDiscord itself. Accounts can be suspended or banned. Weigh that risk before using it on an account that matters to you.
Why should I trust the crypto?
Standard primitives, no inventions: AES-256-GCM via WebCrypto, PBKDF2-HMAC-SHA256 key derivation, authenticated chunked file encryption. The wire format is open, and encryption runs on your device. The project has not undergone an independent security audit.