An elegant, terminal-based messaging tool powered by SSH cryptographic handshakes and libp2p NAT traversal. Connect securely with friends across firewalls—no setup required.
Or download for other platforms:
OpenChat stands on three core technical pillars designed to provide modern communication without corporate logging servers.
Uses golang.org/x/crypto/ssh for credential verification. Complete with visual
host-key fingerprint checks (emoji and randomart) to prevent Man-in-the-Middle (MITM) attacks.
Leverages go-libp2p transport. AutoNAT and DCUtR protocols attempt direct hole
punching behind home routers, falling back to secure Circuit Relays if direct access fails.
A reactive, modern split-screen terminal interface built with
charmbracelet/bubbletea and styled dynamically with lipgloss, offering
standard cursor controls and layout scaling.
Choose how your data is handled every time you launch the application.
Persists chat messages inside an encrypted SQLite database using AES-GCM (passphrase-derived key). Perfect for retaining history securely across machine reboots.
For high-privacy environments. Holds all messages strictly in volatile memory (RAM). When you exit, the memory is thoroughly scrubbed, leaving no trace on disk.
Get started in seconds. One person hosts the room, and the other connects directly.
Grab the precompiled executable file designed for your operating system from the downloads section above.
Double-click the binary or run it directly. The terminal setup wizard launches automatically to configure your options.
If hosting a room, your local IP address is displayed on the bottom status bar. Copy and send it to your peers.
If connecting as a peer, select Client Mode in the setup wizard, input the shared IP, and you are instantly in the chat!
OpenChat is completely open source under active development. Read the full CLI configurations in our documentation, build binaries for custom CPU architectures, or submit pull requests on GitHub.