A Python implementation of the BitChat decentralized, peer-to-peer, encrypted chat application over BLE.
This project is a rewrite of the original Rust-based bitchat-terminal.
pip install bleak>=0.22.3 cryptography>=44.0.0 lz4>=4.3.3 aioconsole>=0.8.1 pybloom-live>=4.0.0
��� BitChat is a decentralized, anonymous, and secure peer-to-peer messenger built with Python using Bluetooth Low Energy (BLE).
This project enables direct communication between devices without the need for a central server, ensuring the privacy and security of your messages.
- Fully Decentralized: No central server or single point of failure.
- Anonymous & Secure: Communication is encrypted to keep your conversations private.
- Peer-to-Peer (P2P): Devices connect directly to each other using Bluetooth LE.
- No Internet Required: Works completely offline as long as devices are within Bluetooth range.
- Lightweight: Runs as a simple Python script with clear dependencies.
To run BitChat, you will need Python 3.8+ and uv.
If you don't already have uv, install it using pip:
pip install uv
Clone this repository to your local machine:
git clone https://github.com/kaganisildak/bitchat-python.git
cd bitchat-python
Use the following command in your terminal to run the application. This command will automatically handle the creation of a virtual environment and the installation of dependencies.
uv run --with aioconsole,bleak,cryptography,pybloom-live,lz4 bitchat.py
How does it work?
uv run: Executes a Python command within an isolated virtual environment.--with ...: Tellsuvto install the listed packages (i.e.,aioconsole,bleak,cryptography, etc.) into that environment before running the script.bitchat.py: The main application script to be executed.
Once running, the application will start scanning for other devices running BitChat nearby.
This project is licensed under the MIT License. See the LICENSE file for more details.
This project was created and is maintained by kaganisildak.