clubsandwich
v0.0.3
Published
Terminal-based encrypted chat client with E2E encryption
Downloads
4
Maintainers
Readme
ClubSandwich 🥪
Terminal-based encrypted chat with E2E encryption
A secure WebSocket chat client for your terminal with end-to-end encryption using Noise Protocol and cryptographic identity management.
Features
- 🔐 End-to-end encryption using Noise Protocol
- 🔑 Cryptographic identities with Ed25519 keys
- 🖥️ Beautiful terminal UI built with React and Ink
- 🏠 Multi-room support
- 🚀 Easy to use - one command to get started
Quick Start
# Sign up with new identity
npx clubsandwich signup alice --server ws://your-server:3040
# Login with existing identity
npx clubsandwich login alice --server ws://your-server:3040
# Anonymous chat
npx clubsandwich anonymous --server ws://your-server:3040Commands
signup - Create new identity
clubsandwich signup <username> --server <url> [--room <room>] [--connect]login - Connect with identity
clubsandwich login <username> --server <url> [--room <room>] [--key <hex>]anonymous - Chat without identity
clubsandwich anonymous --server <url> [--username <name>] [--room <room>]import - Import private key
clubsandwich import <username> <private-key> --server <url> [--connect]list - Show stored identities
clubsandwich listOptions
--server <url>- WebSocket server URL--local- Connect to localhost:3001--room <name>- Chat room (default: general)--key <hex>- Private key for authentication--connect- Auto-connect after signup/import
Security
- Noise Protocol for end-to-end encryption
- Ed25519 cryptographic signatures
- Forward secrecy with ephemeral session keys
- Private keys stored locally, never transmitted
Development
# Install dependencies
npm install
# Run server
npm run server
# Run client
node cli.js login alice --localLicense
MIT
