Bitchat – A decentralized messaging app that works over Bluetooth mesh networks
88 comments
·July 7, 2025sardine5
LWIRVoltage
Okay, this is neat! A true mesh networking bluetooth app- The other one that's notable, Briar is super impressive - but i think it doesn't actually have proper mesh capability due to difficulties with how devices handle things
(See: https://old.reddit.com/r/Briar/comments/gxiffy/what_exactly_...
https://news.ycombinator.com/item?id=43363031 }
-Question: I take it Murmur is end to end encrypted fully?
roshin
Cool technology, but what is the usecase? I can imagine traveling abroad without a sim and using it as described. But is it any better than using the cellular network (when you have access to it)?
toast0
I've still got dead zones near me. If I were cycling with someone, and we wanted to chat on headsets, there's at least a few places I might ride where we'd hit dead air. If we're on different networks, then we both need coverage to communicate with cellular.
Might be more reasonable to use higher bandwidth, lower latency codecs over bluetooth as well?
sardine5
I possibly live more remote than you do - but mobile data isn't really a thing (in the UK at least) you can rely on continuously when you're cycling, or visiting the supermarket and you've lost your partner near the cheese aisle...
Karrot_Kream
How's the range on BLE? I was looking at this app for exactly the use case you mentioned but was curious if it worked with varying distances on bike rides
sardine5
It's somewhat device dependant - but between her Pixel 6 and my Pixel 7 - if we've got line of sight and the handset's not being held to our body (so in a handlebar mount or saddle bag) - 50-75m? I've been victim to the recent Microsoft layoffs, so have a bit of time to work on it at the moment - looking at adding longer range CodedPhy support this week (though that would only be available on Android)
It works best if there's 3 phones though - as it can route via the other if a link drops.
lxgr
Very nice! Could this be published in the App Store, or does it use any APIs Apple considers off-limits?
I'm regularly frustrated by modern phone's complete inabilities to allow any communication when outside of mobile network or Wi-Fi coverage, not even within the two large walled gardens.
It would be so easy for Apple to extend iMessage to work peer-to-peer, at least between people that have already messaged each other before and while both screens are on. That's literally how AirDrop works, and having to send a "Notes" text back and forth is just silly.
apetresc
Legit curious what the use case would be, that would justify Apple adding it in. Like, when do you need to text someone who's within Bluetooth range but somehow has no WiFi or cell reception?
__MatrixMan__
When you're at a protest and the government shuts off the internet in response to the protest. It's happening right now in Togo, has been for ten days (https://pulse.internetsociety.org/en/shutdowns/).
Buttons840
My eyes are opened as to how much more power the people would have if cell phones were all mesh network devices, especially as we enter a world where having a working cell phone is easier than having running water or food.
c22
When would you want to peer over third party networks while a direct connection is possible?
dewey
On top of that “It would be so easy” is almost never true for a billion users network with all kinds of edge cases. Seems like a very narrow use case when there’s things missing from iMessage that could be way more appealing for a bigger group of users.
lxgr
I’d agree if Airdrop, which includes offline identification via users’ address books, didn’t already exist. That seems to be by far the hardest part.
3eb7988a1663
Maybe you want to have a local conversation about Winnie the Pooh?
vishnugupta
Hiking, Airplane, stadia (here in India the tower capacity get exhausted), underground metro etc
darknavi
Airplane
nabeards
I use Berkanan for just this purpose. Sometimes my partner and I don’t sit next to each other, and it’s an easy way to message.
woleium
and the reason they probably cite as why they don’t, children with no sim or wifi.
ImPostingOnHN
When you're sufficiently outdoors with friends and/or family
reaperducer
when do you need to text someone who's within Bluetooth range but somehow has no WiFi or cell reception?
There's no cell service or wifi at my neighborhood movie theater. If I could send her a message when she's up, I could tell my wife to bring me back a box of Sno-caps.
dzhiurgis
I'd much rather Apple allow running something like this (open source) myself rather than use their "just trust me bro" store.
Tika2234
[dead]
OsrsNeedsf2P
I've never understood this argument. Apple spends billions of dollars vetting their store for high quality apps. You can't even verify the build you get off Github was compiled from the same posted source.
As much as people want to be "leet" and run 3rd party software, it's inherently insecure and that's why Apple shuts it down.
thejazzman
They shut it down because 30%.
There was a version of Apple at a point in time where I agree with your rhetoric. They have completely lost credibility to uphold that position IMO.
Apple definitely does not spend billions guaranteeing "quality". To prove my point, where does Apple even define what they consider "quality"? How can you quantify such an aubjecrive and ambiguous term?
They spend billions paying out the 70% they don't pocket.
Heck, They don't even adhere to their own HIG nor let us revert to past (objectively higher quality) versions of iOS.
noman-land
This might sound crazy but some people want the freedom to use their belongings however they want instead of having artificial child locks placed on them by trillion dollar corporate daddies.
__MatrixMan__
> You can't even verify the build you get off Github was compiled from the same posted source
Sure you can: build it and check the hash. If the maintainer prepared for such a check ahead of time it can be as simple as:
wget https://github.com/owner/foo-project/releases/download/.../foo
sha256sum foo # make note of this
nix build github:owner/foo-project
sha256sum result/bin/foo # it should match this
A pinky promise from a corporation can never be more trustworthy than something that we can all verify locally.Of course there's still the should-you-trust-this-code part of the problem, but at least bad guys in that case must operate in public view, which is--once again--a stronger deterrent to shenanigans than anything that happens behind closed doors at Apple.
aguacaterojo
> You can't even verify the build you get off Github was compiled from the same posted source.
You don't need to because you compile it from source yourself
dzhiurgis
You obviously build it yourself.
IMO ultimate solution is for Apple to curate some sort open source store where they vet the source and builds "in public".
kragen
Technical whitepaper: https://github.com/jackjackbits/bitchat/blob/main/WHITEPAPER...
Presumably that is the key to getting out of the Apple ghetto.
BluSyn
FYI on X there is a TestFlight link to try it: https://x.com/jack/status/1941989435962212728
Surprised to see Jack pushing code himself. Love to see it.
syntaxing
Whoa this is really neat. I’ve been trying to get into Meshtastic but it’s hard to convince others when you need special hardware. Would be super neat if Apple did something similar. Shouldn’t be too hard since the AirTags use the same idea?
Would also be neat if there was a way to build a LoRA proxy to extend the range. I might give this a try with my meshtastic devices.
eternityforest
I'm working on a project that uses the same kind of idea as the Bluetooth tracking tags.
It's an Arduino library for mesh networking, that works over BLE and UDP, but it can also link to MQTT.
An MQTT node routes the packets it sees to the appropriate topics, and subscribes to topics for all the channels local nodes want, so you should be able to talk to anyone anywhere via the gateway.
The packet destination addresses are rolling codes, so you can't tell if someone's online just by watching their channel, at least not for more than an hour.
And there's a web app that talks directly to the public MQTT broker, and it can do chat and sensor data.
All payloads are Messagepack to make it easy to add new data types, and all packets are encrypted, authenticated, and timestamped to provide a bit of replay protection.
Everything is purely symmetric crypto, trust is left to a higher layer or something out of band, so you there's no handshakes or connection state management overhead, aside from one announce packet per hour to make the MQTT gateways work.
No LoRa, but the transports are modular and pluggable so you can easily add them. I just only have one LoRa Arduino node here so I haven't bothered writing a driver.
I'm also working on a Python port for easy pip-installable bots and home automation stuff.
syntaxing
Super interesting! Leaving the transport layer as modular is definitely a great choice! I like the idea of MQTT because there’s a lot of methods of serving it. I’ve been in the middle of setting up a meshtastic MQTT mode to try it out.
eternityforest
I was originally going to do OpenDHT, but that would have required building and paying to host a proxy backed for the web app.
I wonder what other transports you could do, like 38khz IR through a telescope?
K0balt
It depends on the antenna efficiency of course, but I was surprised to discover that BLE modes around 128kbps using coded-PHY have a range extending over 1-1/2 km without a directional antenna. At 2.4ghz its line of sight, of course, but still…
kragen
That's extremely surprising to me too. I would have expected BLE to reach a few meters, not kilometers. How can I learn more?
myself248
It'd be cool if Meshtastic's UDP mode could run over BLE like this, for local bluetooth clouds linked by just a few LoRa nodes.
syntaxing
Yeah, a BLE first mesh system honestly makes more sense in today's world since it's baked into every phone. In theory, a BLE to LoRA bridge should be doable with the existing meshtastic hardware like Nordic's nRF52840. The biggest caveat is going to be the data rate. Meshtastic is designed for around 200 bps (Long range mode) which vastly pales the ~2Mbps BLE expectation.
seanlinmt
Is this similar to Briar? I reckon a cool feature would be the ability to create a poll.
Use case? You're in the middle of a protest. Where to next?
dbworku
Everything old is new again... Repo description reminds me of the Shortwave app from the 2010s. https://medium.com/@alonsoholmes/wtfbeacon-how-shortwave-wor...
Jotalea
This is a really interesting app, but it is exclusive to Apple devices.
There are other alternatives for Android, like https://github.com/glodanif/BluetoothChat but it is only for close distance chatting without any network other than Bluetooth, doesn't have encryption, and is not IRC-themed.
ChrisMarshallNY
Looks pretty interesting.
From what I can see, it's a native IOS/MacOS app (SwiftUI). I don't see an Android version.
Also seems pretty spartan, but it looks like it could be embedded in "friendlier" apps.
ajr0
I find this interesting, there was a briar app that was spoken about a few months ago that was only for android citing that iOS had issues [0] with apps running in background, wonder if/how this was solved here.
Also, I have not seen unlicense before -- guess I'm one of todays lucky 10,000
[0] https://code.briarproject.org/briar/briar/-/wikis/FAQ#will-t...
ChrisMarshallNY
IOS/Apple Bluetooth is an interesting place.
Backrounding is kinda klunky. I think it's deliberate, as that's a real security vector.
ckcheng
No android but “can” be built?
> protocol is designed to be platform-agnostic. An Android client can be built
https://github.com/jackjackbits/bitchat?tab=readme-ov-file#a...
ChrisMarshallNY
As long as it's Swift, I guess. The Protocols files seem "agnostic." I think the lower-level hardware files might need to be rewritten, though, so he's saying that an Android developer could write an app that incorporates the protocol.
If I were an Android developer, though, I'd just use the Swift files as a requirements spec, and write it native.
encom
>Universal App
For Apple only. In what way is this universal?
toast0
Hey, could be worse. A universal Windows Mobile 10 app wouldn't run on Windows Phone 8 even though WP8 had many more installed devices than WM10.
1ark
It is Apple terminology for an app that supports both iPad and iPhone.
ChrisMarshallNY
And Mac.
SwiftUI apps can often do both.
I’m probably gonna rewrite my Bluetooth explorer app in SwiftUI. Doesn’t need any fancy UI.
max_
Is this the real Jack Dorsey? I see he even has commit/push access to repos at Block
btbuildem
Looks to be a little IRC-inspired with the usage/commands. Would be neat to have a lora network version, and have this run in a more of a sandbox/term environment instead of a locked-in iOS app.
Wonder how many Claude Code tokens that would take...
cmiller1
Is it Bit Chat or Bitch At?
brikym
Bitch At. Same as Bitch Ute.
jrflowers
I’m assuming that it’s Bitch At since with a ~30ft range you’ll be able to see who you’re bitching at
unixhero
Or like the old chat client BitchX
shawnlower2
Yes
colordrops
Nice double entendre for sure.
AStonesThrow
[dead]
A bit different, as it's mainly for voice - but I made an app 'Murmur : Bluetooth Group Calls' - that lets you hold group voice calls and message via a mesh of Bluetooth LE connections. It's available on Android and iOS. https://apps.apple.com/gb/app/murmur-bluetooth-group-calls/i...
Doesn't really get any downloads, so not sure there's much demand for this - but I use it with some shokz bone conducting headphones for talking to my wife when we're cycling (also for wrangling our two small girls)