Encrypted-Discord is a dual-browser WebExtension (Chrome + Firefox) foundation for end-to-end encrypted overlays on Discord.
This project now includes a working cryptographic envelope implementation and extension scaffolding designed for high-security iteration.
- TypeScript WebExtension project targeting Chrome and Firefox from a single codebase.
- MV3 background service worker, Discord content script, and extension options page.
- Local identity creation (signing + key agreement keypairs).
- Trusted peer public-key store.
- Group message envelope encryption for 1..N recipients.
- Per-recipient key wrapping using ephemeral ECDH + HKDF + AES-GCM.
- Unit tests for crypto round-trip behavior.
This is a strong foundation, not a finished audited secure messenger.
- No MLS/Signal-style ratchet yet.
- No key transparency or safety-number UX yet.
- No formal cryptographic audit has been performed.
See docs/SECURITY-ARCHITECTURE.md for details.
-
Install dependencies:
npm install
-
Build extension bundles:
npm run build
-
Load extension:
- Chrome: load dist/chrome as unpacked extension.
- Firefox: load dist/firefox as temporary add-on.
-
Open extension options page:
- Generate identity for your local Discord user id.
- Add trusted peer public keys and fingerprints.
npm run typechecknpm run lintnpm run testnpm run build:chromenpm run build:firefoxnpm run dev:chromenpm run dev:firefox
- src/background: background service worker and runtime message handlers.
- src/content: Discord overlay content script.
- src/options: options UI and identity/peer management.
- src/shared: cryptographic protocol and shared types/storage.
- src/manifests: browser-specific manifests.
- tests: unit tests.
- docs: architecture and project documentation.
Build toward a secure E2EE group messaging extension where users can establish and run encrypted Discord-side conversations for groups of any size with strong key verification, compromise resistance, and auditability.