Kimosabe.AI

Features — Kimosabe.AI

The single, flat list. What ships today, what's being built, what's on the roadmap, and — just as importantly — what Kimosabe deliberately doesn't do. If this disagrees with code, code wins; fix this file.

Source-of-truth: this doc is derived. When something changes, update the primary source first (ROADMAP.md, STATE.md, or REQUIREMENTS.md) then mirror it here.

Last sync: 2026-08-25.


Legend

Symbol Meaning
✅ Shipped and live in production
🚧 In progress (this sprint / this phase)
📅 Planned — committed to a future phase
❌ Out of scope. Forever. Not a "not yet" — a "no."

✅ Shipped (Phase 1 — MVP)

Identity & access

  • ✅ Email + password sign-up and sign-in
  • ✅ Public @username discovery (no phone number required)
  • ✅ ECDH P-256 identity keypair generated in the browser at signup
  • ✅ Recovery Key (24-char, ~120-bit one-time code) — re-wraps your private key
  • ✅ Wrapped private key stored server-side as opaque ciphertext
  • ✅ Passwordless recovery via zero-knowledge recover-with-key edge function
  • ✅ Change password (re-wraps private key client-side)
  • ✅ Rotate Recovery Key
  • ✅ Export identity (download wrapped-key blob)
  • ✅ Hard-delete account (purges messages + storage + auth row)

Messaging

  • ✅ 1:1 end-to-end encrypted chat (ECDH → HKDF-SHA-256 → AES-GCM-256)
  • ✅ Realtime delivery (Supabase Realtime, ciphertext only)
  • ✅ Encrypted image attachments
  • ✅ Disappearing messages — per-conversation TTL (off / 1 day / 7 days)
  • ✅ Server-side purge of expired ciphertext via pg_cron
  • ✅ Delivery receipts (on by default)
  • ✅ Read receipts (opt-in, per-account)

App experience

  • ✅ Installable PWA (manifest.webmanifest + service worker)
  • ✅ 430px-first mobile polish
  • ✅ Offline thread cache + queued sends (IndexedDB outbox)
  • ✅ Public landing page
  • ✅ Public /trust page (signed threat model)
  • ✅ Public /beta invite-list page (Cohort 001)
  • ✅ 4-step /welcome onboarding (teaches Recovery Key)
  • ✅ Skip-to-content link + prefers-reduced-motion honored

🚧 In progress

Item Where Tracking
🚧 WCAG 2.2 AA audit (NFR-08) AUDIT-A11Y.md input contrast shipped; F-06/F-07 next
🚧 Formal vulnerability-disclosure program SECURITY.md drafted, not yet published
🚧 Game 01 — First Hundred beta program GAME-01-BETA-COMPETITION.md spec done, awaiting cohort send
🚧 Agent SDK Preview (proof-of-life) packages/agent-sdk-preview/ compiles + runs against 1:1 protocol
🚧 CI typecheck on every PR .github/workflows/ci.yml live

📅 Planned

Phase 2 — Group chat & verified contacts

  • 📅 Group chat E2EE via MLS (RFC 9420) — no custom ratchet
  • 📅 X3DH + Double Ratchet for 1:1 forward secrecy & post-compromise security
  • 📅 Safety numbers for out-of-band identity verification (Signal-style)
  • 📅 Voice notes (encrypted audio attachments — HPKE envelope, RFC 9180)
  • 📅 Sealed sender v1 for direct messages
  • 📅 Encrypted push notifications (server pushes ciphertext envelope; SW decrypts)
  • 📅 Optional WebAuthn / Passkeys as a second factor

Phase 3 — Metadata reduction

  • 📅 Sealed sender v2 (groups)
  • 📅 Optional Tor-like relay to hide IPs from the server
  • 📅 Encrypted profile data (display name, avatar wrapped to contacts only)
  • 📅 Federated identity attestation (prove you control a Mastodon/GitHub handle without uploading it)

Phase 4 — Off-grid (separate native app)

  • 📅 React Native or Swift/Kotlin client sharing the same identity keys
  • 📅 Bluetooth + Wi-Fi-Direct mesh for nearby messaging when the internet is down
  • 📅 Optional LoRa companion (Meshtastic-compatible)

Phase 5 — Super-app surfaces

  • 📅 Encrypted "Moments"-style feed (server-blind, scoped to your contact graph)
  • 📅 P2P payments via a regulated processor (Stripe / Paddle)
  • 📅 Mini-app container with strict permissions (apps cannot read messages)

Phase 6 — AI agents

  • 📅 First-class agent identities (own keypair, own Recovery Key, no special server access)
  • 📅 Hermes / OpenClaw / Agent Zero adapters — see docs/AGENTS.md

❌ What Kimosabe does not do (and never will)

These are not "coming soon." They are deliberate, permanent product decisions. Every item below is a feature other messengers have. We don't, because each one would compromise the core promise.

Server-side capabilities we refuse to build

  • ❌ Server-side message search. The server can't read your messages, so it can't index them. Search runs only on your device, against decrypted history. (You can search your own threads; we cannot.)
  • ❌ Cloud backup of message history under our control. Any backup is end-to-end encrypted with a key only you hold. We don't keep "for your convenience" copies that we could be subpoenaed to decrypt.
  • ❌ Government, operator, or "lawful intercept" backdoor of any kind. Not a key escrow. Not a master key. Not a "ghost user." Not a country- specific build. The math doesn't have a back door, and neither do we.
  • ❌ Plaintext push notifications. Until encrypted push ships in Phase 2, we'd rather you get no notification than a cleartext one. We will not send "Alex sent you a message" through Apple/Google's plaintext channel.
  • ❌ Plaintext content in server logs, metrics, or analytics. Ever.

Identity & contact graph we refuse to collect

  • ❌ Phone number requirement. Email + a chosen @handle. That's it.
  • ❌ Address-book / contact-graph upload. We will never ask for, scan, hash, or "Bloom-filter" your contact list. You find people by the handle they share with you.
  • ❌ Real-name policy. Pick any handle. Change it whenever.
  • ❌ Selling, sharing, or "anonymizing-and-selling" any user data. Not to advertisers, not to data brokers, not to AI training partners. There is no asterisk on this.

Product-shape decisions

  • ❌ Ads, sponsored messages, or in-feed promotions. The business model is not attention.
  • ❌ Engagement-maximizing dark patterns. No streak guilt, no read- receipt shaming, no "Alex is typing for the 4th time" notifications, no leaderboard push notifications (even in the beta game).
  • ❌ Tracking pixels, third-party analytics, or fingerprinting SDKs. Including on the marketing site and the docs site.
  • ❌ Third-party crypto libraries we didn't audit. WebCrypto only, in v1.

Things we punt to a separate native app (not this one)

  • ❌ Mesh / Bluetooth / LoRa in the web app. iOS Safari has no Web Bluetooth, no background execution, no raw radio access. Pretending otherwise would be a lie. That work lives in Phase 4 as a separate native client that shares your identity keys. The web app stays the web app.

If we ever ship something on this list, treat it as an ADR-level event — a deliberate, documented reversal with a written reason — not a quiet feature add. The "❌" list is the product.


Quick reference for a beta tester

You can: sign up with email, pick a handle, send 1:1 encrypted text + images, set messages to disappear, install it as an app, work briefly offline, recover your account if you saved your Recovery Key, change your password, rotate your Recovery Key, and delete everything.

You cannot (yet): group chat, voice notes, encrypted push notifications, verify a contact via safety numbers, or sign in with a passkey. All five are Phase 2.

You will never be asked for your phone number, your contacts, or your real name — and we will never read your messages. That part is the whole point.