besoeasy/gupt has 33 GitHub stars and 2 forks. Star changes are not measured yet. Last checked 2026-11-10 23:09 UTC. Last push 2026-11-05.
Self-hosted, end-to-end encrypted messenger. A privacy-first alternative to Telegram, Signal, WhatsApp & Discord.
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalGUPT
Your complete anonymous digital life.
Encrypted chat & calls, passwords, notes, bookmarks and ephemeral sharing —
with no phone number, no email and no server account.
Website · Issues · Docker · License
What is GUPT?
GUPT is a privacy suite that runs entirely in your browser. Your identity is a keypair your device derives — no signup, no phone number, no email, no company in the middle.
Messages, calls, files, passwords, notes and bookmarks are encrypted on your device before anything leaves it. The relays that carry them (public or your own) only ever hold ciphertext. That is the whole architecture — and the reason there is no server account to leak, ban or subpoena.
GUPT vs the rest
| Telegram | Signal | Discord | GUPT | ||
|---|---|---|---|---|---|
| Phone number or email required | Yes | Yes | Yes | Yes | No — keypair only |
| End-to-end encrypted messages by default | No (opt-in) | Yes | Yes | No | Yes |
| Central server holding your data | Yes | Yes | Yes | Yes | No — relays only, self-hostable |
| Metadata & social graph | Visible to operator | Visible to Meta | Partial | Visible to operator | Nothing tied to a real identity |
| Browser-native, nothing to install | Web client | Web client | Desktop app | Web app | Yes (PWA) |
| Peer-to-peer voice & video | No | No | Partly | No | Yes (WebRTC) |
| Built-in passwords, notes, bookmarks | No | No | No | No | Yes, all encrypted |
| Open source | Clients only | No | Yes | No | Yes, noncommercial |
| Account can be banned or suspended | Yes | Yes | Rare | Yes | No account to ban |
Telegram encrypts only opt-in "secret chats". Signal's metadata is minimal (sealed sender) but accounts are still phone numbers. GUPT relays see ciphertext and routing metadata — never content.
Screenshots
Features
💬 Chat
- End-to-end encrypted DMs and group chats with admin roles
- Replies, edits, reactions, emoji and @mentions
- Typing indicators, paginated history, in-chat search
- Encrypted voice messages
- Feed — posts with comments and emoji reactions, global or contacts-only
- Location sharing — coordinates inside the encrypted payload; approximate by default, no tile server or geocoder contacted
📞 Calls
- Peer-to-peer WebRTC voice, video and screen sharing
- Media flows directly between devices; relays carry only signaling
- Trusted-contact guard (
sentCount >= 7) keeps strangers from ringing you
🖼️ Media
- Images, video and audio encrypted (AES-GCM) before upload
- Stateless Originless blob storage; multi-mirror download with SHA-256 verification
🔐 Privacy tools
| Tool | What it is |
|---|---|
| Passwords | Logins with TOTP / 2FA codes, multi-URL sites and tags |
| Notes | Encrypted Markdown with tags and search |
| Bookmarks | One-click page saving with the gupt-mark bookmarklet |
| Share | Ephemeral encrypted links anyone can open — no account needed |
gupt-mark — save from anywhere, even signed out
Drag the gupt-mark bookmarklet to your browser's bookmarks bar and it saves the page you're on in one click — a tags prompt, a popup, done.
It works even when you're not signed in: the key that encrypts bookmarks lives only in your open Gupt tab, so gupt-mark doesn't wait for it. Instead, any link clicked while signed out lands in an offline queue on your device, and the moment you sign in and open Bookmarks, those links are encrypted and published automatically.
Signed out: gupt-mark ──▶ offline queue (localStorage on your device)
Signed in: Bookmarks view ──▶ queue drains ──▶ encrypted, published to relays
Nothing to re-do, nothing to think about — browse and click gupt-mark whenever, sign in to Gupt whenever.
Passwords, Notes and Bookmarks sync across devices as self-renewing ciphertext streams with tombstone deletes.
🪪 Identity
- No signup flow — a keypair is derived on your device, hardened with Argon2id
- Three ways to sign in, each reproducible on any device:
| Way | You provide |
|---|---|
| Memory anchors — recommended | 2–7 answers: passphrase, PIN, date, person, country, pet, car |
| Paste a secret — advanced | Any text: passphrase, PIN, sentence, crypto seed, wallet mnemonic |
| Secret file — advanced | A photo or keepsake only you have; read locally, never uploaded |
- Relay invite links — one link carries your public key and relay set
- Domain contact — publish a
gupt.TXT record and people can reach you by domain name - Deterministic avatars — a profile photo is optional
🔔 Notifications
- PING — wake an offline contact through a public ntfy topic named after their key
- Encrypted notifications — CI, backups and agents can DM your pubkey; the payload is ciphertext (an ntfy replacement)
🌐 Network & storage
- Public relay network with health scoring and automatic failover — run your own relay for durability
- Full offline cache in IndexedDB, purged automatically
- Installable PWA, native Linux app (Flatpak), dark & light themes
Get started
| I want to… | Use |
|---|---|
| Just try it | 👉 gupt.app |
| Run it locally | npx github:besoeasy/gupt |
| Self-host with Docker | docker run -p 8000:8000 ghcr.io/besoeasy/gupt:latest |
| Native Linux app | flatpak install flathub com.besoeasy.gupt |
| Deploy my own URL | Vercel · Netlify · Railway · Render |
| Home server (Umbrel) | Umbrel App Store — one click |
| Build from source | git clone … && npm install && npm run dev (Node ≥ 24) |
Self-hosting tip: run at least one relay yourself — GUPT's streams live longer than most public relays retain events, and your relay keeps them durable.
How it works
flowchart LR
A[Your device] -->|encrypt| B[Relays: ciphertext only]
B -->|decrypt| C[Recipient]
A -.->|WebRTC media, peer-to-peer| C
- Identity — a keypair is derived on your device and never leaves it.
- Everything else — encrypted locally, published to relays, synced back on any device with the same sign-in.
- Calls — WebRTC media goes directly between devices; relays carry only signaling.
Star History
Tech & license
Vue 3 · Pinia · Vite · Tailwind CSS · Dexie · Noble crypto · Originless · WebRTC
CC BY-NC 4.0 — attribution required, commercial use prohibited.
Explore related projects
trimstray/the-book-of-secret-knowledge
A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.
257,522 starsHack-with-Github/Awesome-Hacking
A collection of various awesome lists for hackers, pentesters and security researchers
125,103 starsswisskyrepo/PayloadsAllTheThings
A list of useful payloads and bypass for Web Application Security and Pentest/CTF
82,542 starscaddyserver/caddy
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
78,935 stars