GitHub - bounce-chat/bounce: A metadata-protecting distributed group chat application · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
Uh oh!
There was an error while loading. Please reload this page.
bounce-chat
bounce
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
master
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>1,528 Commits<br>1,528 Commits
android
android
chat
chat
config
config
docs
docs
fyne @ 75c4318
fyne @ 75c4318
fyne-tools @ fedfa1c
fyne-tools @ fedfa1c
network
network
pkg
pkg
ui
ui
.gitignore
.gitignore
.gitmodules
.gitmodules
LICENSE
LICENSE
Makefile
Makefile
README.md
README.md
go.mod
go.mod
go.sum
go.sum
main.go
main.go
View all 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. The UI is built using Fyne. For more details, see the goals and design document.
Status
Things should be working pretty reliably, please open an issue if a feature in the UI is not behaving as expected. Bounce has not been audited by a third party yet, and should be considered experimental.
Platform<br>Status<br>Notes
Linux<br>Fully supported
macOS<br>Fully supported
Windows<br>Fully supported
Android<br>Fully supported, however there currently are significant performance issues.
iOS<br>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.
For information on what's coming, see the next steps document.
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
Desktop
Development builds of the desktop app can be built on linux and macOS with go build. The first build will take a while as it compiles go-libtor. Windows is cross-compiled on linux using mingw32 by running make windows.
Android
Android is built on linux and requires dex2jar, gomobile, and gradle. Current build scripts have opinions about the location of the Android SDK that might not be appropriate for all environments.
The forked fyne tools binary must first be built with cd fyne-tools/cmd/fyne && go build
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<br>A metadata-protecting distributed group chat application<br>Resources<br>Readme<br>MIT license<br>Activity<br>Custom properties<br>Stars<br>1 star<br>Watchers<br>1 watching<br>Forks<br>1 fork<br>Report repository
Releases
Contributors
Languages
You can’t perform that action at this time.