hack-house/README.MD
mirai 95f8a192b5 feat: complete client-server architecture refactoring
Server:
- Split into views, routes, helpers, models modules
- Merged /ws/talk and /ws/update into single /ws/chat endpoint
- Replaced polling with push-based broadcast model
- Added username uniqueness validation on connect
- Fixed run_server arguments bug (workers parameter)
- Removed deprecated loop argument from Sanic listeners
- Replaced datetime.utcnow() with timezone-aware datetime.now(timezone.utc)

Client:
- Rewrote client as single-file module
- Migrated from websocket-client to websockets (asyncio)
- Fixed websocket-client conflict with asyncio event loop on Windows
- Added progress indicators for key generation, exchange, connection
- Added animated 3D spinning cube in UI
- Updated RSA key from 512 to 2048 bits

CLI:
- Removed unnecessary asyncio.run() wrapper
- Simplified entry point
2026-01-02 14:42:33 +03:00

65 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CMD CHAT
**CMD CHAT** is a new milestone in console communication.
A fully anonymous chat between two clients, impossible to intercept or hand over.
All data exists only in RAM and is wiped after the session ends.
No logs, no traces, no compromise.
---
## 🔒 Key Features
- Full anonymity
- End-to-End encryption (RSA + symmetric key)
- Data stored only in memory (RAM), deleted on exit
- No logging, no persistence on disk
- Easy to run via Python or CLI
---
## ⚙️ How It Works
1. The client generates an RSA key pair.
2. The server creates a symmetric key.
3. The client sends its public key to the server.
4. The server encrypts the symmetric key and sends it back.
5. The client decrypts and confirms the key.
6. From that point, all communication is done via symmetric encryption.
Everything happens in memory only. Nothing is written to disk.
---
## 🚀 Installation & Run
### Python
1. Clone the repository:
`git clone https://github.com/emilycodestar/cmd-chat.git`
`cd cmd-chat`
2. Create a virtual environment and install dependencies:
Linux / macOS:
`python -m venv venv && source venv/bin/activate && pip install -r requirements.txt`
Windows (PowerShell):
`python -m venv venv ; .\venv\Scripts\activate ; pip install -r requirements.txt`
3. Start the server (set a password for client connections):
`python cmd_chat.py serve 0.0.0.0 3000 --password YOUR_PASSWORD`
4. Connect a client:
`python cmd_chat.py connect SERVER_IP 3000 USERNAME YOUR_PASSWORD`
Example (local run):
`python cmd_chat.py connect localhost 3000 tyler YOUR_PASSWORD`
---
## 🎥 Example
Heres how it looks in action:
![Example](example.gif)