Bramble
Local-first, end-to-end encrypted password manager that syncs your vault directly between your own devices over a private peer-to-peer mesh — no server, no account, no cloud in the middle.
Repository Health
Technical Analysis
Dependency Health
Bramble is a local-first password manager built around a simple premise: your vault never touches a server you don’t control. Every credential is encrypted on your own device — inside a browser extension’s private storage on desktop, or in app-private encrypted storage on iOS and Android — and stays there. There’s no account to create and no company holding a copy of your secrets to lose in a breach.
To use one vault across several devices, Bramble syncs it directly, peer-to-peer, over an end-to-end encrypted WebRTC channel, with a minimal Nostr relay used only to help devices find each other, never to carry vault data. A single Rust cryptography core, compiled to WebAssembly in the browser and to a native library on iOS and Android, does all key derivation and encryption behind a LUKS-style envelope scheme: one random Vault Encryption Key (VEK) protects every entry, each unlock method (master password, hardware security key, or recovery code) wraps its own copy of that VEK in its own key slot, and every entry additionally gets its own per-entry key wrapped under the VEK. Argon2id derives password-based keys, AES-256-GCM does the encrypting, and derived keys are wiped from memory after use.
The same vault format and crypto core back a Chromium browser extension, a Firefox add-on, and native iOS and Android apps with system AutoFill, biometric unlock, and passkey support built on WebAuthn. Entries cover logins, payment cards, secure notes, SSH keys, and TOTP codes, with smart URL matching so subdomains of the same site share one entry. For anyone who wants a copy off-device, Bramble exports encrypted .bramble backup files, and the browser extension can schedule automatic encrypted backups to Dropbox, S3-compatible storage, or a self-hosted WebDAV server.
What You Get
- A Chromium browser extension, a Firefox add-on, and native iOS and Android apps, all sharing one vault format and one Rust crypto core.
- Direct peer-to-peer sync between your own devices over an end-to-end encrypted WebRTC channel, with no vault server in the middle.
- An envelope-encrypted vault with LUKS-style key slots — unlock with a master password, a hardware security key via WebAuthn PRF, biometrics, or an offline recovery code.
- Entry types beyond logins: payment cards, secure notes, and SSH keys, plus built-in TOTP/2FA code generation.
- System-level autofill: an on-page dropdown that reaches into iframes and shadow DOM in the browser, and native OS AutoFill / credential-provider integration on iOS and Android.
- Encrypted backup options: manual
.bramblefile export, or scheduled automatic backups to Dropbox, S3-compatible storage, or a self-hosted WebDAV server.
Common Use Cases
- Replacing a cloud password manager — users leaving a LastPass, Dashlane, or 1Password-style service who want their vault to never leave the devices they control.
- Multi-device sync without a sync server — keeping a vault current across a phone, laptop, and browser without trusting a cloud relay with vault contents.
- Hardware-security-key users — people who want to unlock a vault with a YubiKey or platform authenticator instead of, or alongside, a master password.
- Migrating from another vault — importing existing entries from 1Password, Bitwarden, Proton Pass, or KeePass, including KDBX4 key files, into a local-first vault.
- Backing up to your own storage — scheduling encrypted backups to storage you already use, such as Dropbox, an S3-compatible bucket, or a self-hosted WebDAV server, instead of a vendor’s servers.
Under The Hood
Architecture Bramble follows a ports-and-adapters structure: a shared core package defines platform-agnostic vault, sync, backup, and import logic against small adapter interfaces (crypto, storage, autofill, messaging, shell, biometric), and each platform target, a browser extension and a native mobile app, implements those adapters against its own runtime primitives while reusing the same mutation and sync logic. The extension further separates a privileged background script from an offscreen document that alone touches the cryptography engine, communicating over typed messages rather than shared memory, so a compromised page script cannot reach key material directly. Sync is split cleanly into a transport-agnostic merge engine, built on stamped entries and tombstones for deterministic convergence, and a swappable transport underneath it, so the transport could change without touching merge logic. A single, intentionally shared read/write seam for the on-disk vault format means every consumer, the extension’s writer, the mobile sync path, and the enrollment flow, stays consistent by construction rather than by convention.
Tech Stack The project is a TypeScript monorepo built with Vite and typechecked across every package, packaging the browser extension for Chromium and Firefox and the mobile apps as native shells around shared TypeScript UI code, with fastlane driving iOS releases. All cryptography, key derivation, authenticated encryption, passkey and WebAuthn plumbing, a handshake protocol for sync pairing, relay-signaling message signing, and encrypted-import parsing, lives in one Rust crate compiled three separate ways: to WebAssembly for the browser and mobile webview, to a native library via a Swift/Kotlin binding generator for the mobile apps, and natively for its own test suite. An additional native data-channel implementation covers a mobile webview that lacks built-in WebRTC support. Linting and formatting run through a single fast toolchain, localization uses a macro-based i18n library with an automated translation pipeline, and a small edge-hosted relay implements just enough of a public signaling protocol to help devices find each other.
Code Quality The repository carries an extensive unit and component test suite alongside a browser end-to-end test suite covering unlock, autofill, migration, cross-device sync, and restore flows, plus native tests for the cryptography core using real imported-vault fixtures. A single fast linter/formatter is enforced in continuous integration, a static security-analysis workflow runs on every change, and published security-audit writeups document external review that has already taken place. The sampled core mutation logic favors explicit, narrowly-typed adapter contracts and pure state transitions over ambient mutation or silently swallowed errors.
What Makes It Unique What distinguishes Bramble from mainstream cloud password managers is the total absence of a vault server: sync happens directly between a user’s own devices over an encrypted peer-to-peer channel, with a minimal public relay used only for connection signaling, never for vault data. Every device shares one logical vault key, so merges run on already-decrypted data through a stamp-and-tombstone convergence scheme rather than server-mediated conflict resolution. The same cryptography implementation is compiled three different ways across browser, iOS, and Android rather than reimplemented per platform, which is an unusual degree of rigor for a project at this stage.
Self-Hosting
Licensing Model GPL-3.0 licensed — all features are available in every self-hosted or self-built deployment (browser extension, iOS app, Android app) with no restrictions or license keys required.
Self-Hosting Restrictions None found. There is no server component to self-host in the traditional sense; the “self-hosting” surface is limited to optionally pointing scheduled backups at storage the user already controls (Dropbox, S3-compatible buckets, or a self-hosted WebDAV server), and that capability is available to every user without a license.
Enterprise Features
No enterprise or paid tier exists in the source. No ee/, enterprise/, or pro/ directories, and no license-check or feature-flag gating logic was found in the codebase.
Cloud vs Self-Hosted Not applicable — Bramble has no company-operated cloud vault service; every deployment (browser extension or mobile app) is equivalent, and the packaged builds distributed via the Chrome Web Store, Firefox Add-ons, and app stores are the same open-source code.
License Key Required No.
Related Apps
Supabase
Developer Tools · Databases · Search
The open-source Postgres development platform that replaces Firebase with authentication, real-time APIs, edge functions, storage, and vector embeddings — all built on PostgreSQL.
Caddy
Devops · Security
The only web server that obtains and renews TLS certificates automatically, with HTTP/1-2-3 support and zero dependency on external runtimes.
Vaultwarden
Password Manager · Security
Unofficial Bitwarden-compatible server in Rust — run the full Bitwarden ecosystem on a Raspberry Pi using every official client you already have, without the multi-container overhead.