Not released yet. The protocol is unaudited and half the clients are unfinished. See what works

How it keeps things locked

Think of your vault as a safe. The combination is made from two pieces: the password in your head, and a short setup code you are given once. Your phone or laptop puts them together to open the safe. The server stores the safe, and has never seen either piece.

kept on the server

your saved passwords
stored locked. The server has no way to open them.
the key to your vault
also locked, and it only opens with your password and setup code.
the list of your devices
so a new phone can be recognised, and an old one switched off.
your email address
locked under a separate key, used for sign-up and alerts.

never leaves your device

your master password
never stored, never sent. If you forget it, nobody can look it up.
your setup code
you get it once when you sign up. Keep it somewhere safe and separate.
the key itself
built on your device each time you unlock, then thrown away.
your recovery kit
the one way back in if you lose a device. It lives with you.

If you lose something

Lose a device and you switch that device off from another one. It stops working. Your passwords do not need changing, because that device only ever held a copy of the safe, not the combination.

Forget your master password and there is no reset email. That is the trade for nobody else being able to open your vault. The recovery kit you are given at sign-up is the way back in, so put it somewhere you will still have it in five years. A drawer at home beats a file on your desktop.

The technical version

Skip this unless you want it. The protocol and threat model documents carry the full write-up, including what this design does not protect against.

unlock
Argon2id, 64 MiB, 3 passes
the memory-constrained profile from RFC 9106. A device that cannot afford it refuses to unlock rather than dropping to weaker parameters.
vaults
XChaCha20-Poly1305
a fresh record key per revision, wrapped under the current vault key.
sign-in
OPAQUE
the server keeps a record it cannot run a dictionary attack against, and a wrong password tells it nothing.
second factor
WebAuthn, optional
checked after the PAKE completes. Without one, phishing resistance is the client’s pinned origin.
signatures
Ed25519
one key per purpose, with the purpose in the signed bytes, so a signature cannot be reused elsewhere.
writes
signed per device
a stolen session downloads ciphertext. It cannot write and it cannot unlock.
sharing
HPKE to a verified key
the recipient checks your signed account history first. A key the server hands over proves nothing.
automation
scoped credentials
one vault set and a write flag per credential. Mint one per CI job, revoke it on its own.