Skip to content

spr-networks/bitchat-plugin

Repository files navigation

bitchat-rust-vibes-plugin

This repository is a linux rust bitchat client using the bluer library and snow for noise. Vibes also came from bitchat_tui

Warning

This project has not been audited for security and was generated entirely by chatting with claude code.

image

Thank you

Shout out to Jack Dorsey, Vaibhav Mattoo & Anthropic for making this possible

Development

This was coded entirely by chat, built & tested on a Raspberry Pi CM5 SPR Router. It uses the bluer bluez-based library for publishing & consuming GATT services.

To build & run, docker compose build && docker compose run bitchat

Features

  • Runs on Linux in the terminal
  • Handles Noise XX E2E encryption
  • Relays Packets

WiFi / SPR Router Features

  • Plugin can be run on linux systems but is also tailored to work for SPR with docker-compose-spr.yml and plugin.json
  • This plugin enables SPR to join the Bitchat mesh and relay messages
  • An operator can also attach to the container and interact in the UI
  • Can be provisioned with an API key for https://github.com/spr-networks/super to hand out unique wifi passwords to bitchat clients
  • The plugin can be installed in SPR from the URL https://github.com/spr-networks/bitchat-plugin

Users can dm "wifi?" to get a unique password. The algorithm is as follows:

  • secret is generated securely with 32 random bytes (/dev/urandom) and persisted
  • when a user DMs the plugin, it computes a new password as follows: HMAC_SHA256(secret, peer key fingerprint) | 16 bytes -> hex 32 bytes
  • the password is transmitted over the noise e2e channel with this peer
  • this is provisioned as a wifi password for a new device to connect
image

To use the client on spr, attach to the plugin: docker exec -it bitchat /bin/tmux attach

TBD

About

Vibe Coded Bitchat Plugin for Linux using bluer #rust #linux #bitchat #bluetooth #mesh

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published