decentralized, end-to-end encrypted chat. no tracking, no data collection, no compromise.
whispr is split across several repos under whisprchat:
| repo | what |
|---|---|
| protocol | core protocol - entities, CBOR wire format, crypto, sidecar binary |
| app | tauri 2.0 desktop client (react + rust) |
| relay | dumb fan-out relay server - stores and forwards encrypted entries |
| identity | identity server - registration, auth, profiles, avatars, status |
| dcgka | reference DCGKA crypto primitives in rust (ported to Go in protocol) |
PRGE (pairwise-ratcheted group encryption). every message encrypted with a random per-message key, wrapped N-1 times via pairwise ratchets for each group member. ed25519 signing, x25519 key exchange, ChaCha20-Poly1305 AEAD.
no central key server. no trust-on-first-use. keys are verified out-of-band via fingerprints.
git clone git@github.com:whisprchat/protocol.git
git clone git@github.com:whisprchat/app.git
git clone git@github.com:whisprchat/relay.git
git clone git@github.com:whisprchat/identity.git
needs: go 1.22+, rust/cargo, node 20+, bun (optional)
start everything:
cd protocol && go build -o whispr-sidecar ./cmd/sidecar
cd identity && go run .
cd relay && go run .
cd app && bun run tauri dev
all information should be free.