gitwtfhub

wtf is bitchat-android?

permissionlesstech/bitchat-android — explained in plain English

Analysis updated 2026-07-25

5,940KotlinAudience · generalComplexity · 4/5LicenseSetup · moderate

TL;DR

A Bluetooth mesh chat app for Android with no servers, accounts, or phone numbers. Messages hop device-to-device for offline, privacy-focused communication.

Mindmap

mindmap
  root((repo))
    What it does
      Bluetooth mesh chat
      No internet required
      Messages hop devices
      IRC style commands
    Privacy and security
      X25519 key exchange
      AES-256-GCM encryption
      Ed25519 signatures
      Tor support built in
    Power management
      Battery-aware modes
      Message compression
      Emergency low power
      Ultra-low mode below 10 percent
    Use cases
      Off-grid communication
      Private messaging
      Local group chat
      Emergency wipe data
    Audience
      Privacy-focused users
      Off-grid communicators

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Chat with people nearby without internet using Bluetooth mesh networking.

REASON 2

Create password-protected group channels for private offline conversations.

REASON 3

Send encrypted private messages to individuals across a chain of devices.

REASON 4

Instantly wipe all app data with a triple-tap for emergency situations.

What's in the stack?

KotlinAndroidBluetoothTor

How it stacks up

permissionlesstech/bitchat-androidz-huang/innertuneairbnb/mavericks
Stars5,9405,9365,933
LanguageKotlinKotlinKotlin
Setup difficultymoderateeasyeasy
Complexity4/52/53/5
Audiencegeneralgeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires building the Android app from source with Android Studio and testing on two physical devices for Bluetooth mesh functionality.

Public domain, use, modify, and distribute freely for any purpose with no restrictions.

Wtf does this do

bitchat for Android is a messaging app that lets you chat with people nearby using Bluetooth instead of the internet. No servers, no phone numbers, no accounts. Phones discover each other automatically and relay messages through the mesh, so a message can hop across several devices to reach someone farther away. The app also supports geohash channels, which use an internet connection to connect you with people in your general geographic area. This Android version is a port of an existing iOS app, and the two are designed to talk to each other using the same protocol. The interface borrows from old-school IRC chat. You type slash commands like /j #channel to join or create a channel, /m @name message for private messages, and /w to see who is online. Channels can be password-protected, and channel owners can transfer ownership or toggle message retention. There is also an emergency wipe triggered by triple-tapping the app logo, which clears all data instantly. The README emphasizes privacy and encryption. Private messages use X25519 key exchange with AES-256-GCM encryption. Channel messages use Argon2id password derivation plus the same AES cipher. Messages are digital-signed with Ed25519 keys. By default, messages exist only in device memory. The app generates cover traffic, random delays and dummy messages, to make traffic analysis harder. It also includes built-in Tor support for added privacy when an internet connection is available. Battery and bandwidth get careful attention. The app compresses messages over 100 bytes using LZ4, and it shifts between power modes depending on your battery level, from full performance when charging down to an ultra-low emergency mode below 10 percent. Message batching and adaptive connection limits help reduce transmissions over the Bluetooth link. The README carries a prominent warning that the software has not received external security review and may contain vulnerabilities. It is still a work in progress, and the authors advise against relying on it for sensitive use cases until it has been reviewed. The project is released into the public domain. The full README is longer than what was shown.

Yoink these prompts

Prompt 1
Help me build a Kotlin Android app that uses Bluetooth Low Energy to discover nearby devices and form a mesh network. How should I structure the peer discovery and message relaying?
Prompt 2
I want to implement end-to-end encrypted messaging using X25519 key exchange and AES-256-GCM in an Android app. Show me how to generate key pairs and encrypt messages between two devices.
Prompt 3
Design an IRC-style command parser in Kotlin that handles slash commands like /j for join channel, /m for private message, and /w for who is online. How should I route these commands?
Prompt 4
How can I implement adaptive power management in an Android Bluetooth app that switches between full, low, and ultra-low modes based on battery level?
Prompt 5
Help me add Tor support to an Android app so that certain network traffic routes through Tor when an internet connection is available.

Frequently asked questions

wtf is bitchat-android?

A Bluetooth mesh chat app for Android with no servers, accounts, or phone numbers. Messages hop device-to-device for offline, privacy-focused communication.

What language is bitchat-android written in?

Mainly Kotlin. The stack also includes Kotlin, Android, Bluetooth.

What license does bitchat-android use?

Public domain, use, modify, and distribute freely for any purpose with no restrictions.

How hard is bitchat-android to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is bitchat-android for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.