encrypted terminal chat with file xfer, shared terminal acess, sandbox vm supporitn docker, multipass and virtualbox. also local ai model integration.
Go to file
mirai 64b0967292 Fix renderer typing, preserve message text, and harden crypto key handling
Fix abstract renderer signatures and add small stubs so type checkers can
see expected attributes (e.g. username, _decrypt). This removes several
mypy false-positives that were caused by mixin/ABC mismatches.
Preserve message text containing ':' by using split(':', 1) in both
DefaultClientRenderer and RichClientRenderer.
Normalize renderer APIs: print_chat(...) now takes the response mapping
and returns None (matches runtime behavior).
Make RSA symmetric-key request more robust: read r.content instead of a
fixed-size r.raw.read(999), avoiding truncated key material.
Improve _connect_ws exception handling in client to ensure a valid
Exception is re-raised if connection attempts fail.
Correct server/service typing: memory_msgs is now typed as
list[Message] and we null-check incoming payload text before creating a
new Message.
Replace manual package list in setup.py with setuptools.find_packages()
so packaging uses valid Python package names.
Installed types-requests in the project venv so mypy no longer flags the
requests import.
Verification: ran python -m compileall and mypy cmd_chat — no issues
remain.
Notes:

Wire format still uses Python literal evaluation in some places (existing
behavior); switching to JSON for client/server payloads is recommended as a
follow-up for robustness and security.
2025-11-05 19:29:24 +05:30
.history Fix renderer typing, preserve message text, and harden crypto key handling 2025-11-05 19:29:24 +05:30
cmd_chat Fix renderer typing, preserve message text, and harden crypto key handling 2025-11-05 19:29:24 +05:30
.gitignore Update README & pypi 2023-03-08 19:38:28 +03:00
cmd_chat.py Reworked setup.py, now you can run cmd_chat directly. Reworked sanic http webserver to make it work. Update readme, etc... 2023-11-27 14:30:01 +03:00
example.gif Add gif to readme with example 2022-12-01 11:36:48 +03:00
LICENSE Code refactoring 2023-03-08 18:59:38 +03:00
README.MD Password update 2025-09-10 19:58:59 +03:00
requirements.txt Working on 1.1.22 2023-12-03 16:18:09 +03:00
ROADMAP.md Password update 2025-09-10 19:58:59 +03:00
setup.py Fix renderer typing, preserve message text, and harden crypto key handling 2025-11-05 19:29:24 +05:30

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 1000 --password YOUR_PASSWORD

  4. Connect a client: python cmd_chat.py connect SERVER_IP 1000 USERNAME YOUR_PASSWORD

    Example (local run): python cmd_chat.py connect localhost 1000 tyler YOUR_PASSWORD


🎥 Example

Heres how it looks in action:

Example