explaingit

permissionlesstech/bitchat-android

Analysis updated 2026-07-25

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

TLDR

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

What do people build with it?

USE CASE 1

Chat with people nearby without internet using Bluetooth mesh networking.

USE CASE 2

Create password-protected group channels for private offline conversations.

USE CASE 3

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

USE CASE 4

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

What is it built with?

KotlinAndroidBluetoothTor

How does it compare?

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 get it running?

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.

In plain English

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.

Copy-paste 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

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

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.