An independent Bitchat-compatible client for macOS, Windows, and Linux.
BitChat Desktop is an independent, open-source desktop project following Bitchat, targeting macOS, Windows, and Linux. The priority is a small application with native interfaces and Bitchat protocol compatibility.
Read the vision and mission and the implementation roadmap for the project's commitments, milestones, and detailed completion checklist.
- macOS: the upstream SwiftUI/CoreBluetooth implementation is retained in
apps/macos, with a BitChat Desktop application product and separate bundle identity. The native macOS app builds and launches locally with the desktop UI, three study palettes, and Bubble / Terminal chats. See the UI checklist and validation notes. Hardware interoperability remains to be verified. - Windows: native Win32 discovery preview with Windows Bluetooth LE scanning and a separate terminal scanner. See the Windows README. Messaging and physical Bluetooth interoperability remain pending.
- Linux: native GTK4 discovery preview with BlueZ scanning and a headless
--scancommand. See the Linux README for builds and checks. Messaging and physical Bluetooth interoperability remain pending. - Shared Rust core: workspace scaffolding only. Packet codecs, cryptography, routing, and Nostr implementation have not yet been ported or connected to the macOS app.
Windows and Linux are available as separate discovery-only previews. Complete cross-platform messaging compatibility is not claimed.
Visit the BitChat Desktop website or download the macOS early preview.
The preview targets Apple silicon Macs running macOS 13 or later. It is ad-hoc signed and not notarized by Apple; read the release's installation notes before downloading. A separate Linux discovery preview is available for x86_64 and ARM64; it does not support messaging. A Windows x64 discovery preview is also available. This is an experimental preview, with hardware interoperability still to be qualified.
The landing page is maintained separately in bitchat-desktop-site.
apps/
macos/ Existing Apple project and supporting packages
windows/ Native Windows client
linux/ Native Linux client
crates/
protocol/ Shared wire protocol (planned)
core/ Shared application/mesh logic (planned)
ffi/ C-compatible boundary for native callers (planned)
platform/ OS-specific adapters
tests/interop/ Frozen interoperability fixtures and their provenance
packaging/ Per-platform distribution and size measurement plans
docs/ Architecture, research, upstream provenance
Check the Rust workspace (on Linux, install the native dependencies listed in the Linux README first):
cargo check --workspace --locked
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --locked -- -D warningsOpen the macOS project:
open apps/macos/BitChatDesktop.xcodeprojFor a local build that handles Swift 6.4 compatibility, signs for testing, and opens the app:
bash apps/macos/scripts/build-local.sh --openSee the macOS README for local signing details.
Select BitChat Desktop (macOS). To build an unsigned Release application:
xcodebuild -project apps/macos/BitChatDesktop.xcodeproj \
-scheme "BitChat Desktop (macOS)" -configuration Release \
-destination 'generic/platform=macOS' \
-derivedDataPath apps/macos/.DerivedData \
CODE_SIGNING_ALLOWED=NO buildThe application should be produced at apps/macos/.DerivedData/Build/Products/Release/BitChat Desktop.app. Xcode must resolve the upstream Swift package dependencies first. For signed development, set your own team in ignored apps/macos/Configs/Local.xcconfig and use the Debug configuration.
Upstream Swift tests can be run with swift test --package-path apps/macos. iOS files and targets remain as inherited implementation support; iOS is outside BitChat Desktop's selected product scope.
Start with the pinned upstream behavior and independent interoperability fixtures. Preserve wire identifiers and cryptographic formats while changing application branding. A shared Rust core will be adopted in stages only after interoperability checks pass. See architecture, upstream provenance, interop fixtures, and size research.
BitChat Desktop's original code and documentation are available under the MIT License, except where a file states otherwise. You can use, modify, and redistribute them for personal or commercial purposes, subject to the license's notice requirements.
Inherited Bitchat code retains its Unlicense dedication and existing author notices. Dependencies retain their own licenses and attribution. Earlier versions, including v0.1.0-preview.1, remain available under the licenses with which they were released; this change does not revoke earlier grants.
BitChat Desktop is independently maintained by Youhana Sheriff. It is not an official Bitchat release.