Skip to content
Orang-StudioPublic

Repository files navigation

OrangChat

A real-time chat platform with end-to-end encrypted DMs, voice, and media - Android, web, and Windows clients on a self-hostable Rust backend.

No ads, no tracking, fully open source.

Public instance Android APK GPLv3 License

Features

  • End-to-end encrypted DMs and group DMs: per-device identity keys, QR safety-code verification, and one-tap device transfer.
  • Servers with channels, roles, invites, member management, and a moderation audit log.
  • Reactions, replies, message search, fullscreen media viewer, and voice messages.
  • Video calls over your own LiveKit server, with screen sharing on Windows.
  • QR sign-in, TOTP two-factor authentication, and passkey sign-in.
  • Bots (TypeScript or Python) and a marketplace of community plugins and themes.
  • Eleven bundled languages, with translation fixes and new locales served live from the server - no app update needed.
  • Native clients: Android (Kotlin + Jetpack Compose), web (React), and a Windows desktop shell.

Important

OrangChat is a full client-server platform - the clients need an OrangChat server to talk to. Use the public instance at chat.oranges.lt, or host your own in minutes with docker-compose (see deploy/DEPLOY.md).

Usage

  1. Open the web client at chat.oranges.lt, or install the Android APK from chat.oranges.lt/download/android.
  2. Create an account - or sign in on another device by scanning the QR under Settings > Encryption > Add another device.
  3. Create or join a server and start a DM. DMs and group DMs are end-to-end encrypted; every device pair shows a safety code you can verify out of band.
Supported platforms
  • Android 12+ - Kotlin + Jetpack Compose, Material 3. Signed APK with updates delivered over HTTPS from your server.
  • Web - modern Chrome, Firefox, Safari, and Edge (React + Vite).
  • Windows - desktop shell (Electron) that loads the web client with a tray icon, calls, screen sharing, and auto-updates.
Repository layout
Path What it is
android/ Native Android client
packages/client React web client
packages/desktop Windows desktop shell
packages/server-rs Rust backend (axum + Socket.IO)
packages/bot, packages/bot-python Bot SDKs
packages/marketplace Plugin and theme marketplace (submodule)
packages/shared Shared client code and scripts
prisma/ Postgres schema and migrations
deploy/ docker-compose, nginx, LiveKit, and systemd units
docs/ E2EE design, bots, and passkey notes

Privacy

OrangChat does not include:

  • Advertisements
  • Analytics
  • User tracking
  • Paid features
  • A third-party cloud

Disclaimer

Caution

End-to-end encryption protects message content, not metadata - who talks to whom, and when, remains visible to the server operator. The design and its limits are documented in docs/E2EE.md. Run your own server if you want that trust boundary to end at your own machine.

OrangChat is not affiliated with, endorsed by, or associated with Discord, Meta, or any other platform.

Help and documentation

Star History

OrangChat star history chart

Info

  • Platforms: Linux/GNU; Windows; Android
  • Official Source Stores: Github; chat.oranges.lt; Gplay
  • Translate to other languages with Weeblate
  • Made by human bugfixed by AI 🧡

Releases

Packages

Used by

Contributors

Languages