Skip to content
xero edited this page Jun 11, 2026 · 8 revisions
  ▄██▀ ▀█  ▄██▀ █▄  ▀██  ██▀  ▄██▀ ▀█  ▄██▀ █▄   █▄   ▄█
 ▐▒▒▒     ▐▒▒▒  ▒▒▌  ▒▒  ▒▒  ▐▒▒▒     ▐▒▒▒  ▒▒▌  ▒▒▒▄▒▒▒
 ▐▒▒▒     ▐▒▒▒  ▒▒▌  ▒▒▌ ▒▒  ▐▒▒▒     ▐▒▒▒  ▒▒▌  ▒▒ ▀ ▒▒
  ▀██▄ ▄█  ▀██▄ █▀    ▀█▄▀    ▀██▄ ▄█  ▀██▄ █▀  ▄██▄ ▄██▄

  Covert communications for private group conversations.
  Invite, talk, close the client, and the chat vanishes.
  Every message is encrypted with XChaCha20 and signed
  with Ed25519. A BLAKE3 fingerprint on each key allows
  peers to verify one another. SPQR's manual and epoch
  ratchets add forward secrecy, while post-quantum
  ML-KEM-768 encapsulation keeps recorded communications
  unreadable and secure against future cryptanalysis.

Using COVCOM

Document Purpose
USAGE Install, configure, and run the server and clients; developer tooling
SECURITY-POLICY Supported versions, disclosure policy, cryptographic foundation
DIAGRAM Animated protocol visualization, session establishment, epochs, fingerprinting, file attachments, ratchets, and reconnect ceremonies

Design

Document Purpose
PROTOCOL Cipher, chains, ratchet, group model, session lifecycle, server role
CRYPTOGRAPHY Primitives, KDF chains, wire format, invite encoding
THREAT-MODEL Principals, adversary tiers, guarantees, non-goals

Internals

Document Purpose
LIB-SPEC Shared library API, session and identity surface, invites, & files
SERVER-SPEC Server wire contract, message handlers, room lifecycle, & config
WEB-SPEC Web client architecture, state, session, views, & single-file build
CLI-SPEC CLI architecture, rendering, input, widgets, views, & color system
TESTING Test layers, unit and end-to-end suites, cross-client interop, and CI

Quickstart

Point chat.example.com at the host you'll run on, then:

docker pull xerostyle/covcom:latest
docker run -d \
  -p 80:80 -p 443:443 \
  -e DOMAIN=chat.example.com \
  xerostyle/covcom:latest

Open https://chat.example.com in a browser. Create a room, share the invite, & chat.

Client Previews

cli and web client previews

Clone this wiki locally