Alpha
Open the vault

A password manager that cannot read your passwords.

Your master password never leaves your device. Everything is encrypted before it is sent, so the server stores ciphertext it has no key for — not as a policy, as an arrangement. Alpha could hand over its whole database and still not have your vault.

Alpha on a laptop: the rail, the item list, and one item open.
Alpha on a phone: the vault list with one-time codes ticking.
GitHub
450 373

What moves between them is the middle panel: bytes with no key attached.

The proof

One item, twice

On the left, what you see. On the right, the row the server keeps for it — copied out of a running Alpha server, not drawn for this page.

On your device
AM
Amexvivek@example.com · americanexpress.com
••••••••••••••••
367 787
What the server holds
item_id
40f6ab36-bd0c-4b93-806e-9f6fe6d2a8c7
revision
23
size_bucket
3
updated_at
2026-08-25 02:39:05+00
ciphertext
bytea
AeReTm1xDwy9zWupfXIRfVOuPt8vil6pkvA2ydrSInyEcJNlzmWNwFt1PnLO1awojkuN1duuLYxpELDJqtJ9ESUZHlqtU17BGCc1iaTlLne7cPmG4AiEKpb+YJXsAu8rvUu/GNsChUlpVQr1DbTTQ07j4Jl2JA3GeCxujF94JJVlWJh5mV/2hfS+Qd5Dz4yTD5lT1dZW1//GBExR3u2JlvPb4E14bi5yd3VL/t7pqV6p7szyfWywQXcye5gmEm8Y1CHs2zCew+Dd/YvFOCZCPWzKz8F6LeCjlPNXGFnbz1rxmEsB
There is no column for a title, a username, or a category. The schema has nowhere to put one.

What it does

Everything you need it for, and nothing it cannot deliver

Every screenshot here is the real thing, generated from a running vault.

Your vault, filed the way you think

Ten categories to start with, plus any you invent while filing an item. Alpha guesses the category when you save and says that it guessed, so the guess never quietly becomes your decision.

Search matches titles, usernames and addresses. On a desk it is three panes, so opening an item never hides the list you found it in.

LoginsNotesAttachmentsPasskeys
The vault: rail with categories, the item list, and an item open beside it.

The authenticator, with the half nobody shows

Six digits are only half an answer. The ring beside them says whether the code will still be valid by the time you have pasted it.

Codes live inside a login or stand on their own, and the same RFC 6238 implementation produces them on the phone, the Mac and the watch — one implementation, so they cannot disagree by a digit.

TOTPApple WatchOffline
The authenticator: codes grouped by whether they sit inside a login.

A checkup that names names

Reused passwords, guessable ones, and logins with no second factor — with the items listed, not just counted. "Three reused passwords" is a statistic; "Netflix · Reddit" is something you can go and fix.

It runs on your device, over your vault, and sends nothing anywhere to do it.

ReusedWeakNo second factor
Checkup: a score, and findings that name the items they are about.

A generator that tells the truth about its own output

The bit count is the logarithm of how many passwords your settings can actually produce, worked out by inclusion–exclusion over the classes you required — not length × log₂(alphabet) printed next to a "must contain a digit" switch that contradicts it.

Switch everything off and it refuses in words rather than greying out a control and leaving you to guess which one.

Honest entropy8–64 charactersLook-alike free
The generator: a password, a strength bar, and the honest bit count.

How it works

Three steps, and none of them happen on the server

01

Your password becomes a key

Argon2id, 64 MiB and three passes, on your device. The same cost in a browser as on a phone — no discount for being on the web.

02

The key never moves

Items are sealed on the device that wrote them. Every field carries its own timestamp so two devices editing at once merge rather than overwrite.

03

The server counts revisions

It stores blobs, refuses stale writes, and hands them back. It is deliberately dumb, because anything clever there would need to understand your vault.

You do not send a password to sign in, either.

Most managers send something derived from your master password and ask the server to compare it. Alpha uses OPAQUE: both sides prove the password matches without the server ever holding anything that could be replayed or cracked offline. None of 1Password, Bitwarden or Proton Pass does this.

Compared

Including the rows Alpha loses

A comparison that only lists what we win is an advertisement. Here is the whole board, as of August 2026.

 Alpha1PasswordBitwardenProton Pass
End-to-end encryptedYesYesYesYes
Sign-in without a password-equivalent (OPAQUE)YesNoNoNo
Open sourceYesNoYesYes
Run your own serverYesNoYesNo
Built-in authenticatorYesYesPremiumPaid
Apple Watch appYesNoNoNo
PasskeysYesYesYesYes
Emergency accessYesYesPremiumPaid
Breach checkingComing, opt-inYesYesYes
Cards and identitiesComingYesYesYes
Share with someone without an accountNoYesYesYes
Shared vaults and family plansNo, deliberatelyYesYesYes
Third-party security auditNot yetYesYesYes
Windows and Linux appsNoYesYesYes

Shared vaults are the one row Alpha does not intend to win. A shared container means rotating a vault key and re-wrapping every member's copy every time somebody is removed — a different product, not a bigger version of this one. Alpha shares one item with one person instead.

What it will not do

The absences are the product

Every password manager has these gaps. Most are quiet about them, which is how an absence gets read as a feature that works.

It will not check your passwords behind your back.

Breach checking is coming, and it will be off until you turn it on. When you do, the screen shows the five characters of a hash prefix that leave your device before they leave it — the whole password never does, and the reply is padded so its size says nothing either.

It will not let you share a password for editing.

Read-only sharing is refused rather than accepted and ignored: nothing in Alpha carries a recipient's edit back to the owner, so offering it would be a promise the whole stack silently breaks.

It will not promise that a delay is mathematics.

Emergency access waits the number of days you chose. That wait is a promise the server keeps, not one the cryptography enforces, and every screen that mentions it says so.

It will not pretend the web page is as safe as the app.

A page is fetched fresh every visit, so it trusts the server not to serve different code tomorrow. The installed clients run code that was checked once and then pinned. The vault page tells you this before you sign in.

What the server sees

The honest list

Zero-knowledge is a claim about content, not about the shape of your traffic. A server that stores your vault necessarily learns some things about it, and pretending otherwise is the part usually left out.

Alpha's protocol specification lists these in the open. This page exists partly so they are not first read in somebody else's write-up.

  • how many items you have
  • roughly how big each one is
  • when you last wrote to each
  • how often you sync
  • how many devices you use
  • who you share items with
  • your email address

Get it

Six clients, one implementation

The same Rust core does the cryptography on every one of them, so a password generated on a watch and a code read on a laptop come from the same implementation rather than from six that agree until they don't.

Live

Any browser

The full vault as a web page. Nothing to install, and the least trustworthy way to use Alpha — the page says so itself.

Not published yet

iPhone and iPad

Autofill, passkeys, attachments, sharing, emergency access.

Not published yet

Mac

Three panes: the rail, your items, and the one you picked, side by side.

Not published yet

Apple Watch

One-time codes, and only those. A watch cannot fill a form and is the screen other people read over your shoulder.

Not published yet

Android

System autofill and passkeys, with the same sixteen screens.

Not published yet

Chrome and Safari

Fills the page you are on and nothing else. It asks for one origin — your server's — rather than for every site you visit.

Every one of them has a server field. Run Alpha's server or run your own — it is the same software, and it learns the same nothing either way.

Questions

The ones worth asking

What happens if I forget my master password?

You use the recovery key you were given when you made the account, which is why that screen makes you tick a box before it lets you continue. If both are gone, the vault is gone. Nobody at Alpha holds a copy of either — that is the same fact as "the server cannot read your vault", seen from the other side.

Has Alpha been audited?

No. All three of the managers in the table above have been, and it would be dishonest to imply otherwise. What exists instead: the protocol specification is published, including its own list of limitations; the source is open; and the parameters any account was created with can be read back from the server at any time.

Can I move my passwords in from another manager?

Yes — a CSV from Chrome, Safari, 1Password, LastPass or Bitwarden. Alpha shows you what it found and what each column was taken to mean before it writes anything, and names every row it could not read. Export is the same file, so leaving is as easy as arriving.

What does it cost?

Nothing yet, and there is no paid tier to upsell you to. When there is a price it will be for the hosted server, and running your own will stay free.

Why should I trust a password manager built by one person?

Trust the arrangement rather than the person: the server holds ciphertext it has no key for, the protocol is written down, and the code is open. Then check the arrangement — the row on this page comes out of a real database, and you can get the same one out of your own server.

Open it, and read the screen it opens with.

No account is needed to look. Making one takes a master password Alpha cannot reset and a recovery key you write down — which is the whole trade, stated before you make it.