Private messaging that keeps working.
Komms aims to make ordinary conversations feel familiar while user-owned identity, strong end-to-end encryption, and resilient internet, local, radio, and sneakernet paths stay underneath. Its pure core has no mandatory exclusive provider. A future Standard mode may offer replaceable optional defaults for easy first use; those services must never receive message plaintext or identity private keys belonging to Komms users.
Komms has a nonprofit public-benefit mission: private, resilient communication should be useful to ordinary people without surveillance or exclusive-provider lock-in. The project is founder-directed, and accountability remains with the human maintainer.
New here? Read Start Here: the whole idea in plain words, with no cryptography knowledge required.
The Komms 0.3 Alpha interface. Android, iOS, and desktop share the same brand and conversation-first information hierarchy.
Open the public Komms 0.3 Alpha release and download one package:
| System | Choose |
|---|---|
| Windows 10/11 x64 | .msi or -setup.exe |
| macOS Intel or Apple silicon | universal .dmg |
| Linux x86-64 | .AppImage, .deb, or .rpm |
| Android 8.0+ | -android-debug.apk |
Download SHA256SUMS too. These are unsigned/debug-signed Alpha packages, so
verify the download before accepting an operating-system warning. The
Alpha testing guide has exact verification,
installation, first-test, and issue-reporting steps. No source build is
required. iOS currently remains source/Simulator-only.
- Pairing that phone cameras can actually scan. Post-quantum bundle sharing now uses compact Base45 payloads and a bounded animated QR sequence on desktop. Frames assemble in any order, and legacy bundle QRs and pasted hex remain accepted.
- Fresh messages stay responsive. New user actions bypass passive queue
maintenance. Unreachable sealed messages retry in the background and become
an honest
delivery failed after 30 daysentry if no encrypted receipt arrives. - A genuinely shared interface. Android now carries the same branded, conversation-first hierarchy already approved on iOS and desktop. Settings keeps backup, linked-device, network, and diagnostic controls out of the everyday path.
- Clearer identity and discovery. Safety numbers are 30 readable digits while QR verification retains the full 256-bit comparison. Desktop sharing, contact rename, DHT/mDNS status, and conversation rendering are hardened.
- Four-platform preview evidence. Android and iOS simulators plus local macOS and Linux desktop previews now require explicit visual approval. Linux desktop launch smoke also runs in CI and in the release workflow. This is not physical-device or stable-platform qualification.
- A release-shaped self-hosted node. The public
kultdimage is prepared for Linux amd64 and arm64 with provenance, an SBOM, and immutable0.3.0tagging.
Komms 0.3 Alpha is a public prerelease for testing, not an independently audited or stable release. The repository contains a broad implemented core and three application shells, with substantial automated evidence. Simulator builds and self-round-trip tests are not physical-device qualification or independent interoperability.
| Area | Current state |
|---|---|
| Core security and storage | Hybrid PQXDH, Double Ratchet sessions, sealed envelopes, opaque keyed SQLite indexes, row-bound local records, released-schema migration, backup/recovery, RPC/CLI, and UniFFI paths are implemented with repeatable tests. SQLite still reveals approximate row counts/sizes, order, within-domain equality, access patterns, and change timing. Storage has Linux/ext4 test evidence, but independent review and physical macOS, Windows, Android, iOS, power-loss, backup-exclusion, and forensic qualification remain open. |
| Internet, LAN, and delayed delivery | libp2p QUIC/TCP, Kademlia discovery, NAT traversal, mDNS, and volunteer mailbox roles are implemented. Fresh app installs do not yet have a qualified distinct-NAT golden path: bootstrap and mailbox defaults require deliberate configuration, and mailbox persistence/operator behavior remains a stabilization gate. ADR-0034 proposes an initial founder-operated Hetzner Standard-mode bootstrap/DHT/rendezvous default with RAM-backed mutable state; it is not implemented or a durable mailbox. |
| Off-grid delivery | Sneakernet and the Meshtastic carrier, duty-cycle controls, retransmission, and internet↔mesh bridge paths are implemented with automated evidence. The physical two-radio bench is not yet field-qualified. |
| Applications and messaging | Desktop, Android, and iOS shells expose pairwise/group text and a broad Alpha feature set, including attachments, local organization, linked devices, ephemeral content, polls, roles, and direct audio-call paths. CI and simulator evidence exist; hands-on device, background lifecycle, NAT, accessibility, and localization qualification remain. |
| Distribution | Unsigned desktop packages and a debug-signed Android APK are published for Alpha testing; iOS is source/Simulator-only. Production signing, authenticated updates, reproducibility measurements, store distribution, upgrade/rollback qualification, and stable support are not configured. |
| Optional mobile convenience | ADR-0017 through ADR-0019 propose reversible post-pairing rendezvous and content-free native wake. The layer is design-only: no optional service is implemented or required by the sovereign core. |
| Trust and governance | The project is founder-directed by design during construction and stabilization under a nonprofit public-benefit mission. The founder retains product and release authority. Independent security and interoperability evidence is still missing. The stabilization program defines the evidence required before stable claims. |
Older KKR1 through KKR6 backups remain restorable; current backups are
KKR7. KKR6 added signed group authority state and consumed admin-request ids.
KKR7 adds linked-device authority, convergence state, and recovery semantics;
all current backups exclude live ephemeral plaintext/media and carry terminal
tombstones so restore does not recreate those records in Komms. This is
automated implementation evidence, not a promise to erase copies retained by
peers, screenshots, exported backups, or compromised endpoints.
The stabilization program now takes priority over feature expansion. It defines exact evidence levels, owners, P0/P1/P2 gates, and the first 90 days. The roadmap remains the engineering inventory, the feature delivery plan remains the product backlog, and the local release gate describes existing build checks. The stable-v1 product profile freezes the release target, the release evidence ledger records every P0 gate and stable claim, and the name-risk decision records the founder's keep-and-monitor decision without claiming legal clearance.
Komms is built on four principles:
- Everyday messenger first. Installation, pairing, sending, recovery, and delivery state should make sense without transport or cryptography knowledge.
- No mandatory exclusive provider. Peers may communicate directly, through chosen volunteer mailbox operators holding sealed ciphertext, or over local, radio, and sneakernet paths. Standard mode may use disclosed, replaceable defaults. Optional rendezvous and native wake receive no message plaintext or identity private keys and remain removable.
- Strong cryptographic building blocks, honestly qualified. The implementation combines published constructions including X25519 + ML-KEM-768, Double Ratchet sessions with encrypted headers, and XChaCha20-Poly1305. That combination still requires independent review and interoperability evidence before it can be called audited or stable.
- Your keys and local data stay yours. Identity needs no phone number or email. Komms can delete its local encrypted history and exclude expiring content from its own current backups, but it cannot erase copies another person, export, screenshot, operating system, or compromised device retains.
Why Komms explains the social motivation, including concern about policy proposals and laws that seek or allow private communications to be scanned. It distinguishes that position from claims about the current legal status of any particular proposal.
| Doc | Contents |
|---|---|
| 00: Start Here | The whole project in plain words, for any knowledge level |
| 01: Why | Motivation, position, commitments |
| 02: Threat Model | Adversaries, security goals, honest limits |
| 03: Architecture | Layers, crates, message lifecycle, store-and-forward |
| 04: Cryptography | Normative crypto spec: PQXDH, Double Ratchet, envelopes |
| 05: Transports | Internet (libp2p), proximity, Meshtastic/LoRa, sneakernet |
| 06: Identity & Trust | Keypair identity, verification, petnames |
| 07: Storage | Local-first encrypted storage, backup, portability |
| 08: Roadmap | Milestones M0–M6 with acceptance criteria |
| 09: Implementation Guide | Build order, API sketches, standards, review gates |
| 10: HIL Bench | Hardware-in-loop nightly: two-radio bench runbook |
| 11: Feature Scope | Which product features fit the model, and under what constraints |
| 12: Feature Delivery Plan | Sequenced implementation plan for every approved product feature |
| 13: Screen Security | B14 platform guarantees, limitations, behavior, and qualification matrix |
| 14: Incognito Keyboard | B15 input-field guarantees, native controls, honest limits, and qualification matrix |
| 15: Private Contact Names | B5 local petname rename contract, warnings, privacy boundary, and qualification matrix |
| 16: Safe Text Formatting | B9 source subset, active-content boundary, limits, compatibility, and qualification matrix |
| 17: Safe File Presentation | C1 filename/type policy, open/export boundary, lifecycle, and qualification matrix |
| 18: Authenticated Message Editing | C3 immutable edit events, pairwise authorship, group Alpha limit, convergence, retained versions, compatibility, and qualification |
| 19: Disappearing Messages and View-Once Attachments | C4 exact local expiry, coarse relay retention, tombstones, KKR6 exclusion, honest limits, and qualification |
| 20: Group Polls | C5 visible votes, current member-forgery limit, fixed electorate, deterministic convergence, creator closure, and qualification |
| 21: Group Roles, Ownership, and Moderation | C6 signed owner/admin/member authority, transfer, rotation, moderation, backup, and qualification |
| 22: Linked Devices | C2 device certificates, confirmed linking, per-device delivery, sync, recovery, and the open permanent-revocation flaw |
| 23: Live Audio Calls | C7 direct-QUIC gating, transient signaling, authenticated Opus media, platform behavior, privacy limits, and qualification |
| 24: Local Release Gate | Toolchains, complete local validation, CI/advisory evidence, SDK deferrals, signing boundary, and publication discipline |
| 25: Release Runbook | Versioning, native desktop/APK artifact builds, signing inputs, qualification, and explicit publication |
| 26: Self-hosting | Hardened Docker Compose deployment, ports, secret initialization, node modes, and Alpha limits |
| 27: Alpha Testing | Download verification, installation, smoke testing, issue reporting, and self-hosted image quick start |
| 28: Brand System | Cross-shell product character, tokens, hierarchy, and pragmatic name-risk monitoring |
| 29: Stabilization Program | Canonical evidence vocabulary, trust gates, owners, and 90-day sequence |
| 30: Stable-v1 Product Profile | Frozen install, messaging, bounds, recovery, delivery, platform, service, and exclusion contract |
| 31: Release Evidence Ledger | P0 and stable-claim owners, evidence, revisions, gaps, and review dates |
| 32: Name-risk Decision | Dated keep-and-monitor decision, observed overlap, migration cost, cadence, and advice triggers |
| ADRs | Decision index, status, and the alternatives each decision beat |
Rust workspace (kult-crypto / kult-protocol / kult-transport / kult-store /
kult-node / kultd / kult-ffi), UniFFI bindings, Tauri desktop app, native
mobile shells.
Layout in Architecture §7. Implemented so far:
kult-crypto (hybrid PQXDH, Double Ratchet with encrypted headers,
sender-anonymous sealed envelopes, sealed state, sender-key group chains),
kult-protocol (envelopes, padding
buckets, fragmentation + NACKs, delivery tokens, sealed group headers, .kkb
bundles), and kult-store (encrypted SQLite, key
hierarchy, persistent queue), kult-transport (the Transport contract, the
sneakernet spool-directory carrier, and the libp2p internet carrier: QUIC primary,
TCP+Noise+Yamux fallback, envelope request-response protocol with honest next-hop
acks, a Kademlia discovery plane serving signed prekey-bundle records, volunteer
mailbox relays storing only sealed envelopes, and NAT traversal via AutoNAT +
Circuit Relay v2 + DCUtR), and kult-node (session lifecycle, delivery
engine with per-message state machine and retry/backoff, transport scheduler
with mesh priority classes and the 4 KiB airtime ceiling, end-to-end
encrypted delivery receipts, fragmentation over small-MTU links with
selective-retransmission NACKs, contact-by-address via DHT lookup,
command/event API), and kultd (headless
daemon: tick loop, DHT bootstrap + bundle publication, automatic NAT/relay
lifecycle, mailbox check-ins, local JSON RPC over a Unix socket, kult CLI),
and kult-ffi (UniFFI bindings: the node's command/event API as typed
records/enums with an embedded in-process runtime, for the application shells),
plus apps/desktop (Tauri shell), apps/android
(Kotlin alpha shell over the generated bindings), and apps/ios
(SwiftUI alpha shell over the same bindings). The daemon writes structured,
content-free diagnostics to stderr (RUST_LOG, default info) and supports
owner-only passphrase/mnemonic files for service deployment; run kultd --help
for the complete operator surface.
Rust 1.88 or newer is required by the locked dependency graph and verified
as the minimum supported Rust version in CI. A current stable toolchain is the
normal developer choice; the complete fuzz gate additionally needs nightly
Rust and cargo-fuzz. Platform SDK requirements live in the
desktop, Android, and
iOS guides.
cargo test --workspace --all-features # KATs, properties, e2e, soak
cargo build -p kult-crypto --no-default-features # no_std build
cd crates/kult-crypto && cargo +nightly fuzz run envelope_decode -- -max_total_time=60Before a publication candidate, run scripts/local-release-matrix.sh from the
repository root and record every explicit DEFERRED platform gate. The exact
division between local checks, per-push CI, weekly advisory evidence, physical
qualification, and signing is documented in the
local release gate.
The Komms 0.3 Alpha prerelease is built from tag v0.3.0 on native Windows,
macOS, Linux, and Android runners. Install it using the
Alpha testing guide. Its public Linux amd64/arm64
self-hosting image is available as the immutable
ghcr.io/andrigitdev/komms-kultd:0.3.0 tag and the 0.3-alpha/alpha aliases. See the
release runbook for the version bump,
APK/installer/container, signing, checksum, smoke-test, and publication process,
or the self-hosting guide to run kultd.
Security review, hands-on platform testing, and focused implementation of the remaining roadmap are especially valuable; see CONTRIBUTING.md. Project decisions and ownership: GOVERNANCE.md and MAINTAINERS.md. Security issues: SECURITY.md. Participation follows the Code of Conduct.
Komms software is licensed under AGPL-3.0-only. Under AGPLv3 section 13, a modified covered version that supports remote network interaction must prominently offer its remote users an opportunity to receive that version's Corresponding Source. The AGPL permits commercial use; Komms's nonprofit mission governs official project activity, not independent licensees. See ADR-0006 and ADR-0033. This summary is not legal advice.


