Loading encryption...
Your communication and task hub
Encrypted to this device only

Welcome

This device has never set up Cortex. Let's create your encryption keys.
What happens in setup:
1. Generate a keypair on this device
2. You set TWO passphrases (daily + recovery)
3. Your private keys stay encrypted on this device only
Setup · step 1 of 3

Daily passphrase

You'll type this when biometric isn't available.
enter passphrase
Stored as Argon2id-derived key. Robbie never sees it.
Setup · step 2 of 3

Recovery passphrase

If you lose this device. Write on paper, store offline.
enter passphrase
Critical: Lose this and you cannot recover your Cortex history if this device dies.
Setup · step 3 of 3

Generate keys

Ready to generate Curve25519 + Ed25519 keypairs. Happens in your browser.
Takes about 1-3 seconds. Argon2id is intentionally slow.
Optional · biometric

Enable biometric?

Fingerprint or face unlock instead of typing the passphrase each time.
Stays in Android Keystore. Never leaves your device.
Locked
🔒
Tap to unlock with biometric
🛡 XChaCha20-Poly1305 · Curve25519 · Argon2id
Enter daily passphrase

Unlock

Type your daily passphrase.

Cortex v0.2 unlocked

You're in. Day 3+ wires the Hub interface, sync, and channel pulls. This stub confirms encryption works end-to-end.
Encryption status
checking...
Public key (encryption)
-
Public key (signing)
-
Encryption round-trip test
click button
Day 2 verification
✅ libsodium loaded
✅ Keypair generated
✅ IndexedDB persists encrypted keys
✅ Argon2id derivation works
✅ XChaCha20-Poly1305 works (run test)
✅ Lock + unlock works
✅ WebAuthn biometric optional
Device controls
Toast