A secure, peer-to-peer chat application with end-to-end encryption, featuring a cyberpunk-themed UI and zero-configuration networking. Think Localsend but with chat and broadcast capabilities.
When you would use cyberchat:
- You want instant communication with friends/family without configuring anything
- You want to talk to Linux / Windows / Mac machines without configuring anything
- You want to share files with friends without the internet
- You want to chat with friends without the internet
CyberChat Screenshots
✨ Key Features
|
🔒 Security • End-to-end encryption • Perfect forward secrecy • Certificate-based security • 1 click wipe • No internet required |
🌐 Networking • Zero configuration • Peer-to-peer via mDNS • Direct message routing • No central server • Offline support |
📱 Interface • Desktop app • Web interface • Cyberpunk theme • Real-time updates |
|
📁 Files • Encrypted transfers • Unlimited file size • Media previews • Auto cleanup • Resume support |
📢 Social • Broadcast messages • Private messages |
⚡ Performance • Low resource usage • Quick startup • State recovery |
⚡ Installation
The binary is available for Windows, Mac, and Linux. You can download from the bins folder, or use the install scripts. They are in the repo if you want to browse the commands (super simple download and copy).
🐧 Mac & Linux & Windows (Desktop App)
For a desktop app, download a release from the releases page.
🍏 Homebrew Install for Apple Desktop App
brew tap ramborogers/cyberchat
brew install --cask cyberchat-desktop
Apple doesn't like self signed apps. I've applied for a developer account, but it takes a while to get approved. Use brew to install the desktop app or you can use xattr to remove the quarantine attribute.
🐧 Mac & Linux & Windows (Single Binary + Web Interface)
For a single binary, you can use the install scripts and your web browser.
Open a terminal and run the following command:
curl -L https://raw.githubusercontent.com/RamboRogers/cyberchat/refs/heads/master/install.sh | shor Brew for Mac
brew tap ramborogers/cyberchat brew install cyberchat
🪟 Windows PowerShell
Open a PowerShell terminal and run the following command:
iwr -useb https://raw.githubusercontent.com/RamboRogers/cyberchat/refs/heads/master/install.ps1 | iex
🚀 Quick Start
The cyberchat binary has a number of options. You can run the server directly, or run the desktop electron app.
Usage of cyberchat
-d string
Custom home directory for CyberChat data
-debug
Enable debug logging
-n string
Name to use for this peer
-p int
Port to listen on (default 7331)
-r Reset all data and start fresh
-v Show version informationThen access the web interface at https://localhost:7331
🔧 Prerequisites
- Go 1.22 or later
- Node.js and npm
- GCC for CGO compilation
- Platform-specific requirements:
- Windows: MinGW
- Linux: build-essential
- macOS: Xcode CLI tools
🏗️ Architecture
Security Model
- RSA key pairs for peer identity
- AES-256 message encryption
- Trust levels (0-4) for peers
- Certificate-based transport security
Core Components
-
Server (Default port: 7331)
- SQLite persistence
- Gorilla Mux routing
- WebSocket support
- Auto-port increment
-
Database Schema
settings - Configuration peers - Network members messages - 30-day retention files - Transfer tracking relays - Message routing -
API Endpoints
/api/v1/message - Message handling /api/v1/file - File operations /api/v1/whoami - Identity management /api/v1/discovery - Peer discovery /api/v1/client - Web client API
🤝 Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📝 License
This project is licensed under the GNU GPL v3.0 License - see the LICENSE file for details.
🛡️ Security
Please report security vulnerabilities to the issue tracker.
🙏 Acknowledgments
- The Go team for an amazing language
- The Electron project for cross-platform support
- The cyberpunk community for design inspiration