ChatRoom is a lightweight, secure, and open-source encrypted messenger that enables private communication using GitHub Gists as the backend. It leverages NaCl (libsodium) for state-of-the-art encryption and ensures messages remain private and self-controlled.
✅ End-to-End Encryption – Uses Ed25519 (signing) and X25519 (encryption) for secure communication.
✅ No Central Server – Messages are stored and exchanged via GitHub Gists.
✅ Self-Destructing Keys – Private keys are never shared or stored remotely.
✅ Lightweight & Fast – Runs in a terminal, with minimal dependencies.
✅ Cross-Platform – Works on Windows, Android(Termux), macOS, and Linux.
✅ Fully Open-Source – Code transparency ensures security.
🔹 Unlike traditional messengers (WhatsApp, Signal), ChatRoom does not use a central server.
🔹 No phone number, email, or identity required—just a GitHub account.
🔹 Messages are not stored permanently—once deleted from Gist, they are gone forever.
🔹 No third-party tracking—GitHub itself can't read your encrypted messages.
| 🚀 Conclusion: | | ChatRoom is the most private and self-hosted option, ideal for those who want no central servers, no phone numbers, and full control over encryption keys. However, it's not as user-friendly as mainstream apps and doesn't offer multi-user group chat yet. |
git clone https://github.com/PlatinumDevNetwork/ChatRoom.gitcd ChatRoom
pip install -r requirements.txt
Go to GitHub and create an account if you don’t have one.
- Visit: GitHub Developer Settings
- Click "Generate new token" (classic)
- Select "Gist" with read, write, delete permission
- Copy and save your GitHub Token (you won’t see it again!)
- Go to: GitHub Gists
- Click "New Gist"
- Name it chat.txt (keep it public or secret)
- Click "Create gist"
- Copy the Gist ID (last part of the URL)
python ChatRoom.pyIf it’s your first time running, it will ask for:
🔹 GitHub Token
🔹 Gist ID
These will be stored in config.txt for future use.
**Both you and your friend must use the same config.txt ** for the conversation to work!
You can manually share config.txt with your friends or You can share it using the following method...
python send.py
- 🔐 Note: It encrypts config.txt, uploads it to a Gist, and automatically deletes it after your friend downloads and decrypts it.python receiver.py
it will download, decrypt and save config.txt in original format and then delete the gist.
python ChatRoom.py📤 Sending a Message:
- Type your message and hit Enter.
- The message gets encrypted and stored in your Gist.
- Your friend with the same config.txt can decrypt it.
📥 Receiving Messages:
- The program checks your Gist every 3 seconds.
- If a new encrypted message is found, it automatically decrypts and displays it.
✔ Uses NaCl cryptography (Ed25519 & X25519) – trusted by security experts.
✔ No passwords stored – keys are generated per session.
✔ No central server – GitHub can't read your encrypted messages.
✔ No metadata leaks – only encrypted text is uploaded to Gists.
✔ Self-hosted & auditable – you control the encryption keys.
🚀 Mobile App – A mobile version for Android/iOS.
🔒 Multi-User Chat Support – Secure group conversations.
Forget about centralized messengers. Take control of your privacy with ChatRoom.





