A peer-to-peer encrypted Android messenger with no central authority. End-to-end encrypted with ECDH + AES-256-GCM. Runs a WebSocket signaling server directly on your device. Communicates over your LAN or the open internet — your choice.
ECDH key exchange over secp256r1. AES-256-GCM with random IV per message. Keys never leave your device.
Any device can host the signaling server. No cloud lock-in. Run your own node on LAN or WAN.
mDNS/NSD scans your local network for BeSpoke servers automatically. Falls back to WAN addresses.
PBKDF2-hashed handles on the server. EC key pair generated on device. Blockchain-style user registry.
On Android: Settings → Apps → Special App Access → Install Unknown Apps → enable for your browser or file manager.
Tap the DOWNLOAD APK button above or transfer BeSpoke-v0.18.apk to your device via USB/ADB.
Open the APK from your Downloads folder, tap Install, then open BeSpoke.
Choose a unique handle and password. Your ECDH key pair is generated locally — your private key never leaves the device.
Set server mode to AUTO for mDNS discovery, LAN for a known local address, or WAN for the public relay. The server auto-registers your handle on first login.
isEncrypted flag inverted on received messages — lock icon and E2E status now correctMap<String,Any> with typed data classclearAll() not clearing stored password on logoutget-public-key now returns stored key for offline users, enabling E2E setup without recipient being onlineFileTransfer.kt — HTTP upload/download for file attachmentsFILE: notification_bespoke._tcp)