Skip to content
bounce-chatPublic

About

A metadata-protecting distributed group chat application

Resources

Stars

9 stars

Watchers

1 watching

Forks

Latest commit

 

History

1,578 Commits

Folders and files

Repository files navigation

Bounce is a distributed group chat application that protects metadata, with a familiar look and feel.

Design Overview

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.

Status

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.

Installation

Binary Releases

  • 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.

Building from source

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.

Desktop

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

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.

License

Copyright 2026 Hayden Parker. Bounce is licensed under the MIT license unless otherwise specified. Design assets are licensed under CC BY-NC-ND.

About

A metadata-protecting distributed group chat application

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages