terminal-chat-e2e
v1.0.3
Published
Secure, real-time, terminal-based chat system with E2E encryption.
Maintainers
Readme
🛡️ Terminal Chat E2E

A secure, real-time, terminal-based chat system with end-to-end (E2E) encryption. Chat with friends or in groups directly from your terminal with absolute privacy.
✨ Features
- 🔐 End-to-End Encryption:
- Private Chats: Uses Curve25519, XSalsa20, and Poly1305 (via TweetNaCl).
- Group Chats: Uses AES-256-GCM with server-generated master keys.
- ⚡ Real-time: Powered by Firebase Realtime Database for instant message delivery.
- 👥 Social: Friend request system and user profiles.
- 📁 Groups: Create or join encrypted groups with zero-config key sharing.
- 🎨 Modern UI: Beautiful CLI interface using
chalk,figlet, andinquirer.
🚀 Installation
Install the package globally via npm:
npm install -g terminal-chat-e2e🛠️ Usage
Simply run the command to start:
terminal-chatCommands
| Command | Description |
|---------|-------------|
| /login | Log in to your account |
| /register | Create a new account |
| /friends | List friends and pending requests |
| /addfriend <user> | Send a friend request |
| /chat <user> | Start an E2E private chat |
| /groups | List your group chats |
| /group create <name> | Create a new encrypted group |
| /group join <id> | Join an existing group |
| /groupchat <id> | Enter a group chat |
| /exit | Leave current chat or exit the app |
🏗️ Technical Architecture
- Backend: Express.js server hosted on DigitalOcean App Platform.
- Database: Firebase Realtime Database for high-speed synchronization.
- Security:
- Asymmetric Encryption: User keys are generated locally and never leave the device.
- Symmetric Encryption: Group messages are encrypted with AES-256-GCM.
- Key Management: Decentralized key distribution ensures only authorized members can decrypt messages.
📦 Deployment (For Developers)
If you want to host your own server:
- Clone the repo:
git clone https://github.com/sahanRanasingha/terminal-chat-webapp.git - Server Setup:
- Deploy the
server/folder to DigitalOcean App Platform. - Set environment variables:
FIREBASE_SERVICE_ACCOUNT,FIREBASE_DATABASE_URL,SMTP_USER,SMTP_PASS.
- Deploy the
- Firebase Rules:
- Implement the security rules provided in the documentation to protect your data.
📄 License
This project is licensed under the ISC License.
Built with ❤️ for privacy-focused communication.
