Gryt is an open-source voice and text chat platform that values privacy and user control of data. With Gryt, users can host their own servers, giving them full control over their conversations and data. Gryt is a secure, private communication platform that empowers users to communicate freely while protecting their privacy.
Website · Live App · Documentation · Source Code · Report a Bug · Request a Feature
Caution
Early Development Stage — This project is experimental and under active development. Expect breaking changes.
Most communication platforms today are owned by corporations that monetize your conversations, lock you into their ecosystem, and give you zero control over where your data lives. Gryt exists to change that.
- Self-hostable — Run your own server. Your data stays on your hardware.
- Open source — Every line is auditable. No telemetry, no tracking, no surprises.
- Full-featured — Crystal-clear voice chat, persistent text messaging, file sharing — all in one platform.
- Modern stack — Built with TypeScript, React, Go, and WebRTC for real-time performance.
|
Core Platform — A monorepo using git submodules containing everything you need:
|
Deployment Options
Get started in one command: git clone --recurse-submodules https://github.com/Gryt-chat/gryt.git
cd gryt && ./ops/start_dev.sh |
Pre-built Docker images are published to GitHub Container Registry:
| Image | Purpose |
|---|---|
ghcr.io/gryt-chat/server |
Signaling, chat, file uploads |
ghcr.io/gryt-chat/sfu |
WebRTC media forwarding |
ghcr.io/gryt-chat/client |
Web UI (browser access) |
|
WebRTC-powered real-time audio with noise suppression, echo cancellation, voice activity detection, and a configurable audio pipeline. |
Persistent messaging backed by ScyllaDB with file uploads, image thumbnails, and S3-compatible object storage. |
Connect to multiple self-hosted servers simultaneously and switch between them seamlessly from a single client. |
|
Self-host everything. Your messages, files, and voice data never touch a third-party server unless you choose to. |
Clean, accessible interface built with Radix UI. Dark and light themes, responsive layout, and an Electron desktop app with auto-updates for Linux, macOS, and Windows. |
Docker Compose for quick setups, Helm charts for Kubernetes, Cloudflare Tunnels for easy access, and comprehensive docs to guide you through production deployment. |
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Web Client │ │ Gryt Server │ │ SFU Server │
│ (React/TS) │◄──►│ (Node.js/Express)│◄──►│ (Go) │
│ │ │ │ │ │
│ • Voice UI │ │ • Signaling │ │ • Media Relay │
│ • Audio Proc. │ │ • Persistence │ │ • WebRTC │
│ • Multi-Server │ │ • File Uploads │ │ • Track Mgmt │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
│ ┌───────┴───────┐ │
│ │ ScyllaDB │ │
│ │ + MinIO/S3 │ │
│ └───────────────┘ │
│ │
└──────────── WebRTC Media (UDP) ─────────────┘
We welcome contributions of all kinds — code, documentation, bug reports, and feature ideas.
- Fork the repo and create your branch from
main - Make your changes and ensure tests pass
- Open a pull request with a clear description of what you've done
Check out the contributing guide, browse the issue tracker for open issues, or create a feature request if you have an idea.
Made with care by the Gryt community · Licensed under AGPL-3.0