Bounce is a distributed group chat application that protects metadata, with a familiar look and feel.
Each instance of Bounce includes a Tor hidden service, and all connections between devices occur over Tor. Users can own multiple devices, including encrypted devices that do not have access to the message contents. Users add contacts by scanning a code on the other person's device, or by meeting them in a group, there is no global namespace of all users. Messages are scoped to their user or group, and gossiped between devices that are in scope and online. Devices coming online have an efficient way to catch up. Group states (name, admin status, etc) can survive a bad actor attempting to mess with history, so long as the majority of users are honest. For more details, see the goals and design document.
I am actively working through a comprehensive vulnerability assessment. During this time the protocol, including the format of user profiles, may undergo breaking changes. Once this process is done the protocol will be guaranteed backwards compatible and updates will not be as critical, but until then all clients must be on the latest release (not master) to communicate.
Please open an issue if a feature in the UI is not behaving as expected.
| Platform | Status | Notes |
|---|---|---|
| Linux | ✅ | Fully supported |
| macOS | ✅ | Fully supported |
| Windows | ✅ | Fully supported |
| Android | ✅ | Fully supported |
| iOS | ⛔ | iOS does not allow apps to run in the background. Implementing Bounce on iOS will require a light client that receives notifications from another instance of Bounce via APNs, and reaches out to that instance to send messages. This has not been planned yet, and would change the privacy model around metadata protection. |
- Visit the Releases page to download the latest binaries.
- Arch users can install bounce or bounce-bin from the AUR.
- The best way to install Bounce on Android is with Obtanium.
Bounce uses submodules, and should be cloned with:
git clone --recurse-submodules git@github.com:bounce-chat/bounce.git
Then, cd go-arti && make lib to generate a compiled arti library for your platform. This will require the rust compiler. If you plan to cross-compile windows, also run make lib GOOS=windows, and if you plan to build android also run make android in go-arti.
Development builds of the desktop app can be built on linux and macOS with go build. Windows is cross-compiled on linux using mingw32 by running make windows.
Android is built on linux and requires gomobile and gradle. Current build scripts have opinions about the location of the Android SDK that might not be appropriate for all environments.
Run make android to create Bounce.apk, a debuggable development build.
Copyright 2026 Hayden Parker. Bounce is licensed under the MIT license unless otherwise specified. Design assets are licensed under CC BY-NC-ND.
