The vault itself is small: a key derived from your master password, one encrypted file, a search box, a password generator and TOTP codes. An agent writes that in a sitting. What takes the rest of the weekend, and stays a gap after it, is everything around the vault: a browser extension that fills forms safely, phone apps, sync between devices and an outside audit of the crypto. For a password manager those gaps are the product, which is why most people who want out move to Bitwarden or Vaultwarden rather than their own code.
Before you buildBefore building, look at Bitwarden's free plan or a Vaultwarden server: both are free, audited and come with autofill and phone apps.
Build me a local password vault to replace 1Password. Requirements: - Node.js 22 + TypeScript. One core module used by two front ends: a CLI called `vault` (add, get, list, search, edit, rm, gen) and a web page on http://127.0.0.1:4500 served by Express with plain HTML and no framework. - Encryption: derive the key from my master password with Argon2id (the `argon2` package, 64 MB memory, 3 passes, random salt) and seal the whole vault with XChaCha20-Poly1305 from `libsodium-wrappers`. Plaintext never touches the disk. - Storage: a single file at ~/.localvault/vault.enc. Every save first copies the previous file to ~/.localvault/backups/ with a timestamp; keep the newest 10. - Items: logins (title, username, password, URLs, notes, TOTP secret, tags) and secure notes. Search matches title, URL and tag. Show live 6-digit TOTP codes with the `otpauth` package. - Generator: random passwords (length 8-64, symbols on/off) and 5-word passphrases from a wordlist file kept in the repo. - Import a 1Password CSV export: print the detected column mapping and ask for confirmation before writing anything. - Lock after 5 minutes idle. Copied secrets leave the clipboard after 30 seconds. The web server listens on 127.0.0.1 only. - No accounts, no telemetry, no network calls at runtime, local-first. - Out of scope: a browser autofill extension, mobile apps, sync and sharing. - README: install, first run, backup and restore, and an honest warning that this is unaudited code, so keep your old vault export until you trust it.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own 1Password.
Add a Chrome extension (Manifest V3) to the password vault in this folder. Requirements: - The extension talks only to the local server on http://127.0.0.1:4500 and sends a per-install token generated by the server and stored in .env. - On a page with a password field, the popup lists logins whose URL matches the site's domain and fills username and password on click. - Never fill automatically and never fill in iframes from another origin. - If the vault is locked, the popup says so and links to the unlock page. - Update the README with how to load the unpacked extension.
Add a password health report to the vault in this folder. Requirements: - Flag passwords under 12 characters, reused across items, or found in the Have I Been Pwned range API (k-anonymity: send only the first 5 characters of the SHA-1 hash). - Run only when I click Check or run `vault audit`; cache results for 7 days. - Show the report as a table in the web page and in the CLI. - Update the README with exactly what leaves the machine during a check.
Let the vault in this folder sync through a shared folder. Requirements: - A setting points vault.enc at any folder (iCloud Drive, Dropbox, Syncthing). - Before each save, check whether the file changed on disk since it was opened; if so, decrypt both, merge item by item using updatedAt, and keep both copies of any item edited on both sides. - Never overwrite without a backup in ~/.localvault/backups/. - Update the README with the risks of syncing through a cloud folder.
A password manager is the one app where a bug can cost you everything, so people pay for audited crypto, recovery options and autofill that works on every site and phone. Families also lean on shared vaults, and many find 1Password's apps the most comfortable to live in every day.
Estimate · Runs locally with no services to pay for. The build session is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Individual | $4.99 | $3.99 | 1 user, unlimited items and devices, 1 GB file storage. |
| Families | $7.99 | $5.99 | Up to 5 people, shared vaults, account recovery for members. |
| Teams Starter Pack | — | $24.95 | Up to 10 members; extra seats $4.99 each, up to 20. |
| Business | — | $8.99/user | Admin controls, reporting, 5 GB storage per user. |
| Enterprise | custom | — | — |
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: One-click autofill and autosave in the browser, Phone apps and sync between devices.
About $4.99 a month on the Individual plan, $59.88 a year (checked 2026-10-13).
One-click autofill and autosave in the browser; Phone apps and sync between devices; Shared family vaults and account recovery; Breach and weak-password alerts (Watchtower); Independent security audits of the code. If any of those matter to you, keep paying.
Yes: Vaultwarden (open source), Bitwarden (free), KeePassXC (open source).