bitchat
bluetooth mesh chat, IRC vibes
What is it?
What it is
A decentralized, peer-to-peer messaging application for iOS and macOS that operates without accounts, phone numbers, or central servers.
Why it exists
To provide a privacy-first communication tool capable of functioning in offline scenarios (disasters, protests, remote areas) via Bluetooth mesh, while offering global reach through the Nostr protocol.
Who should use it
Privacy advocatesDecentralized tech enthusiastsUsers needing offline communicationActivists in restricted areas
Who should avoid it
Non-technical usersThose preferring centralized servicesUsers without Bluetooth/internet access
How it works
A quick walkthrough in plain English
How bitchat works
Step 1 of 3
You interact with it
Open bitchat, send a request, or connect it to your stack.
Features
Advantages
- Works without internet in disaster scenarios or remote areas
- High privacy with no requirement for phone numbers or accounts
- Resilient to takedown demands due to decentralized nature
- Seamless transition between local and global connectivity
- Scalable geographic chat rooms from block to region level
- Optimized for mobile performance and battery life
Disadvantages
- Mesh network uses a persistent per-device identifier that can be observed by nearby radios
- Nostr private envelopes are proprietary and lack NIP-17/44/59 compatibility
- Bluetooth mesh is limited to a maximum of 7 hops
- Requires source code verification to ensure build integrity against malicious mirrors
Installation
native
Option 1: Using Xcode ```bash open bitchat.xcodeproj ``` For a signed device build, create your ignored local configuration and replace the example team ID with your Apple Developer Team ID: ```bash cp Configs/Local.xcconfig.example Configs/Local.xcconfig ``` Option 2: Using `just` ```bash brew install just just check just run ```
FAQ
How do I install or build BitChat safely?
You can download the pre‑built app from the App Store or build it yourself from the verified source. If you build from source, follow the "Getting a copy you can trust" section: verify the release hash manifest in docs/VERIFYING-A-BUILD.md before installing. This protects against tampered binaries, especially since the repo has faced takedown requests.
How does BitChat decide which transport to use for a message?
BitChat first attempts a direct Bluetooth Low Energy connection. If a local peer is reachable, it uses the Noise protocol for end‑to‑end encryption. If Bluetooth is unavailable, it falls back to the Nostr protocol, encrypting the payload with BitChat’s private‑envelope scheme and sending it via global Nostr relays. If neither is available, the message is queued until a transport becomes available.
What are the location‑based channels and how are they defined?
Location channels use geohash prefixes to create geographic chat rooms: `block` (7 chars) for city block, `neighborhood` (6 chars), `city` (5 chars), `province` (4 chars), and `region` (2 chars). Each channel uses the Nostr protocol over the internet and requires a connection to Nostr relays.
How can I build and test BitChat on macOS or iOS?
With Xcode, open `bitchat.xcodeproj` and run the desired scheme. For a signed device build, copy `Configs/Local.xcconfig.example` to `Configs/Local.xcconfig` and replace the team ID. Useful commands: `xcodebuild -project bitchat.xcodeproj -scheme "bitchat (macOS)" -configuration Debug CODE_SIGNING_ALLOWED=NO build` for a macOS debug build, and `xcodebuild -project bitchat.xcodeproj -scheme "bitchat (iOS)" -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 17' test` for iOS simulator tests. Alternatively, install `just` via Homebrew and run `just build`, `just run`, `just test`, or `just test-ios`.
How do I perform an emergency wipe of my data?
BitChat includes a triple‑tap gesture that instantly clears all local data, including message history and cached keys. This is useful in high‑risk situations where you need to remove all traces of your activity.
Featured in Videos
YouTube tutorials and walkthroughs for bitchat
Alternatives
Similar projects ranked by category, topics, and text overlap.