A lightweight CLI messaging tool over WebSocket.
Zero config, plug-and-play. Run as server, client, or both.
- Zero Config — No account or config file needed; start messaging with one command
- Hybrid Mode — Launch a local server and connect as a client simultaneously
- Peer-to-Peer Direct Connection — Connect directly between machines without a central server
- Secure Encryption — AES-GCM encryption with PBKDF2 key derivation; set a key via
--key - Offline Messages — Messages are stored server-side and delivered when the recipient comes online
- WSS / TLS Support — Run the server with SSL certificates for encrypted WebSocket connections
- AI Agent Ready — Built for machine-to-machine messaging, ideal for multi-agent systems
- Native Terminal — Runs entirely in the CLI, perfect for developers and remote workflows
- Cross-Platform — Runs on macOS, Linux, and Windows
- Python 3.9 or higher
curl -fsSL https://msgcli.org/install.sh | bashirm https://msgcli.org/install.ps1 | iexStart a local server and connect as a client:
msg leoConnect from another machine:
msg jim@192.168.1.5| Command | Description |
|---|---|
msg USER [--key KEY] |
Hybrid mode: start a local server and connect as client |
msg USER@HOST:PORT [--key KEY] |
Quick connect using USER@HOST:PORT format |
msg --server [NAME] [--key KEY] [--port PORT] [--ssl-cert CERT --ssl-key KEY] |
Server mode: run as a dedicated message server |
msg --user USER --host HOST [--port PORT] [--key KEY] |
Client mode: connect with explicit parameters |
Note: When using
--key, all parties must use the same key to encrypt and decrypt messages.
Communications are encrypted with AES-GCM using a key derived via PBKDF2 (100,000 iterations). Set a shared key to prevent message interception:
msg leo --key my-secret-keyFor server deployments, use TLS to encrypt the WebSocket transport:
msg --server --ssl-cert cert.pem --ssl-key key.pem --key my-secret-keyMIT License
MsgCLI was created by Leo Long