Bramble

title
Bramble
type
toolbox
summary
Local-first password manager with a Rust crypto core, LUKS-style key slots and peer-to-peer sync
tags
password-manager, rust, webassembly, security, local-first, watchlist
language
TypeScript
license
GPL-3.0
created
2026-07-23
updated
2026-07-23

Bramble is a password manager with no server and no account. The vault lives in the browser extension's private storage on desktop and in app-private storage on iOS and Android, and getting the same vault onto a second device happens by pairing the devices and syncing directly between them rather than through a provider. It ships as a Chromium and Firefox extension plus native iOS and Android apps, all reading the same vault format.

The obvious comparison is KeePass, and the README makes it: same "your encrypted database, your control" premise, with browser-native and mobile-native autofill built in instead of assembled from a desktop app and plugins. It imports KDBX4 files, key files included, along with 1Password, Bitwarden and Proton Pass exports. The comparison against bitwarden and other hosted managers is the one the README spends more words on β€” no central pile of vaults means no LastPass-shaped breach β€” at the cost of no server-side password reset.

How the crypto works

One Rust core does all of it, compiled to webassembly for the browser and to a native library on mobile, so there is a single implementation of key derivation, encryption and decryption rather than one per platform.

The vault format uses LUKS-style key slots with envelope encryption. A random Vault Key (VEK) is the only thing that actually protects data. Each unlock method derives its own Key-Encryption Key β€” Argon2id from the master password or the recovery code, HKDF-SHA256 from a WebAuthn PRF security key β€” and that KEK unwraps its own copy of the same VEK from its slot. Adding or revoking an unlock method therefore rewrites one slot and re-encrypts nothing. Below that, the VEK unwraps a fresh per-entry key for each item, and that key decrypts the entry. Everything is AES-256-GCM, and derived keys are wiped from memory after use.

Only the vault header is readable in storage. Site names, usernames and notes are all ciphertext, not just the passwords. Every vault gets a high-entropy recovery code at setup, shown once, which unlocks the vault independently of the master password.

What else it does

Passkeys are stored as ordinary vault entries, which means Bramble acts as your own WebAuthn authenticator and passkeys sync across your devices with no vendor cloud behind them. Beyond logins it holds payment cards, secure notes and SSH keys, and generates TOTP codes from an otpauth:// URI or a bare secret. Breach checking against Have I Been Pwned uses k-anonymity, so the password never leaves the machine. Autofill matches on registrable domain, so ikea.com, www.ikea.com and ca.accounts.ikea.com hit the same entry, and the on-page dropdown reaches forms inside iframes and shadow DOM. Multiple vaults can sit side by side, each behind its own master password.

Backups are the user's problem by construction, and there are three answers. An explicit export writes the whole vault to an encrypted .bramble file. Peer-to-peer sync makes every paired device a live copy. Scheduled cloud backups (browser extension only for now) push ciphertext to Dropbox, any S3-compatible bucket, or self-hosted WebDAV on a daily, weekly or monthly cadence, keeping recent snapshots and pruning the rest.

Caveats

This is a young single-vendor project β€” the repo went public in June 2026 β€” asking to hold every credential you have. There is no external security audit. The README discloses that parts of it were written with Claude Opus under human direction, which is honest and also exactly the disclosure a reviewer of security-critical code wants to see before deciding how much scrutiny the crypto paths need; the general argument for that kind of marker is in slop-marker-convention. Scheduled cloud backups are desktop-only so far. Losing the master password, every registered key and the recovery code loses the vault, with nobody holding a copy β€” the trade the design is built around.

For those reasons it's on the watchlist rather than in use. The lower-risk alternatives already in the toolbox are vaultwarden if you want a server you control, and plass if you want files and GPG. The case for splitting credentials across several tools instead of any single vault is in credential-compartmentalization.

Repo: github.com/flythenimbus/bramble β€” ~250 stars, GPL-3.0, TypeScript with a Rust crypto core.