Keyring · Private preview

Keyring

Passwords and passkeys, encrypted before they leave this device.

Checking…
Rust core the same engine as the web app E2EE opaque server sync Recovery accountless proof Auto-lock after inactivity

Name this keyring

A local label only. Keyring names are stored on this device in plain text and are never sent to the server, so another device will show this keyring as unnamed until you name it there too.

Delete “”?

The keyring stops syncing and leaves your keyring list. Its encryption key is deliberately kept on this device so that an encrypted backup taken while the keyring existed can still be restored — deleting the key would turn that restore into permanent data loss.

A keyring must be empty before it can be deleted.

Encrypted deletion

Delete this login?

The encrypted tombstone is queued with an exact revision check. This action never deletes a different remote revision.

This browser only

Reset this browser's Keyring?

Keyring deletes everything it keeps on this browser: the encrypted keyring, its settings, and any unfinished import or restore. This page then starts over at setup, as after a fresh install.

Your synced keyring stays on the sync server. To bring it back here, choose "Recover an existing Keyring" and enter your 24-word recovery phrase.

Local key rewrap

Change local password

Verify the current password, then choose the new password used to unlock this browser. This does not rotate your Keyring keys or recovery phrase.

Use at least 8 characters. Canonically equivalent Unicode spellings are treated as the same password.

Fresh local reauthentication

View recovery phrase

Enter this device's local password. The phrase and its QR code are masked first and removed after 60 seconds.

Authenticated encrypted export

Create a portable backup

Keyring verifies your local password, authenticates every ciphertext envelope in Rust, and downloads only encrypted .lifub-vault bytes.

At least 8 characters, and different from your local Keyring password.

Store this password separately. It is newly entered for this file, never taken from your unlocked session, and cannot be recovered by Keyring.

User-authorized plaintext export

Export an unencrypted copy?

This file is completely unencrypted; anyone with the file can read every password. It exposes every login, TOTP secret, note, card, identity, and SSH key in plain text. Save it only to a destination you fully control and delete it after the migration. Passkey private keys are never included.

File format

Crash-safe encrypted import

Restore a portable backup

Choose a bounded .lifub-vault file. Its authenticated item count and digest prefix appear only after both passwords verify.

For an automatic import backup, use the vault password or recovery phrase from when it was saved. For a manual backup, use its separate backup password.

Restore adds encrypted records. It never replaces existing entries. Archives with unknown data retain their original identities and require their original keyrings. Up to 100,000 items and an approximately 85 MiB encrypted file can be restored together. A worker restart pauses safely and requires this file and both passwords again.

No plaintext persistence

Import a password-manager export

Choose the exact source before selecting its bounded export. Parsing, duplicate detection, and candidate ownership stay in Rust.

Off: every row becomes its own item, and only byte-identical rows go to recoverable Trash. On: rows that share a name, username and password collapse into one item that keeps every website and note, and the others go to Trash. The review shows what merging combined before anything is written.

Exports remain sensitive. Keyring reads at most 16 MiB, or 32 MiB for ZIP exports. ZIP attachments are disclosed in the preview but not imported. The file and optional Bitwarden password stay in memory and are wiped after Rust takes ownership.