๐Ÿš€ We're launching on Product Hunt on July 22. Follow along

Switching from Bitwarden: A Local-Only Alternative for Families

Bitwarden trusted you with the data. SecureKeep doesn't even ask for it. Here is how to export your Bitwarden vault, import every entry into SecureKeep on iPhone or Android, and understand the architectural reason a lot of Bitwarden users are switching.

A notebook and an iPhone on a wooden table, representing data moving from one quiet place to another.

Bitwarden might be the most architecturally candid password manager in the mainstream market. The codebase is open source, the free tier is genuinely useful, and at $10 a year the paid tier reads more like fair pricing than a subscription tax. If you've been using Bitwarden, you've made a defensible choice.

You can also trade it for an even simpler architecture: one where the encrypted vault never syncs, never lands on a server, and doesn't need a paid plan to do its core job. SecureKeep reads a Bitwarden CSV directly, pulling every login across in one bulk transaction, TOTP secrets and URLs included, on your phone, with no cloud account in the middle.

If you've decided to switch, whether for the local-only architecture, the family-vault model, or both, this is the guide.

What you'll need

  • A Bitwarden account you can sign into through the web vault.
  • A computer. Bitwarden's mobile apps don't export to CSV; the web vault and desktop apps do, and the web vault is the easiest path.
  • SecureKeep installed on your phone. iOS or Android. The CSV import lives at Settings โ†’ Tools โ†’ Import from CSV, or behind the Import CSV button at the top of the credentials list.

That's the whole list.

Step 1: Export your Bitwarden vault

The cleanest path is the web vault.

  1. Open https://vault.bitwarden.com/ and sign in.
  2. From the sidebar, choose Tools โ†’ Export Vault.
  3. Set the file format to .csv.
  4. Re-enter your master password.
  5. Bitwarden downloads a file named something like bitwarden_export_<timestamp>.csv.

The file contains: folder, favorite, type, name, notes, fields, reprompt, login_uri, login_username, login_password, login_totp. Login items, secure notes, identities, and cards all share the same CSV, distinguished by the type column.

It's plain text throughout. We'll handle that in Step 4.

One note on Bitwarden's JSON options: it also offers a plain .json export and an encrypted .json export. For SecureKeep's importer, choose the CSV path. The encrypted JSON is built for re-importing into Bitwarden itself, and SecureKeep doesn't read that format.

Step 2: Load the CSV into SecureKeep

On your phone:

  1. Open SecureKeep and unlock your vault. (If you don't have one yet, the first-run wizard walks you through creating one in about six minutes. Do that first, then come back here.)
  2. From the dashboard, tap Passwords, then tap the Import CSV button at the top of the credentials list.
  3. The picker that opens is the standard iOS or Android files picker. Find the bitwarden_export_<timestamp>.csv you saved in Step 1.

A small v3.0.0 detail: the document picker is exempt from SecureKeep's lock-on-background protection. Because the OS treats file-picking as sending the app to the background, we added the exemption so that choosing your CSV doesn't lock the vault and make you start over. It's a narrow carve-out, limited to known system pickers, and it ends the moment the picker closes.

Step 3: Review the detected format

SecureKeep auto-detects the format from the column headers. For Bitwarden, it looks for login_uri, login_username, and login_password. When all three are present, the parser is set to Bitwarden.

You'll see a banner: "Detected format: Bitwarden" along with the row counts.

Three things happen automatically:

  • Type filtering happens first. Any row whose type is something other than login (or is empty) gets skipped. Bitwarden's CSV folds secure notes, identities, and cards into one file, and the importer takes only the login items, since that's what SecureKeep's credentials section is for. Secure notes and identities you'll add by hand in SecureKeep's secure notes section.
  • Deduplication looks at hostname and username together. If a gmail.com credential under the same username already exists, a second import won't duplicate it. Keep the host and switch the username (work Gmail versus personal Gmail) and each imports on its own.
  • TOTP secrets get their own slot. Any login_totp value becomes a structured TOTP secret on the credential, held separately from the password and from any backup codes. Bitwarden kept these in a single field; SecureKeep's v3.0.0 structured 2FA gives them a dedicated home.

Tap Import and confirm. The import is transactional and all-or-nothing: if a single row fails to encrypt and write to disk, the whole thing rolls back.

Step 4: Delete the CSV

The Bitwarden export is plain text. After the import succeeds:

  • Delete the CSV from your Downloads folder.
  • Empty Trash (macOS) or Recycle Bin (Windows).
  • If you saved a copy anywhere else, delete it there too.
  • Bitwarden's web vault names the export with a timestamp, which means you might have multiple exports if you've done this before. Check for those.
  • If you use Time Machine, exclude the Downloads folder before the next backup, or remove the export before backup time.

Skipping this step is the single most common way a careful migration still leaks. So don't.

What gets imported, what doesn't

Bitwarden field Imported into SecureKeep
name Credential label
login_uri URL (normalized โ€” first URI only if multiple are present)
login_username Username
login_password Password
notes Notes
login_totp TOTP secret (structured 2FA)
folder Not imported in v3.0.0 โ€” SecureKeep is flat with category filtering
favorite Not imported in v3.0.0
type (other than login) Skipped: secure notes / identities / cards are not credential entries
fields (custom fields) Not imported in v3.0.0
reprompt Not imported (SecureKeep applies vault-wide unlock policy instead)

What lives outside the CSV in Bitwarden, and how to handle it:

  • Secure notes. Bitwarden Note items aren't part of SecureKeep's credentials section, so copy them by hand into SecureKeep's secure notes; every vault has a dedicated section.
  • Identities and cards. Copy these manually. SecureKeep's secure notes section is the right home for identity records, and cards can live there too.
  • Custom fields. If you leaned on Bitwarden's custom fields, plan to fold them into the notes field of the matching SecureKeep credential.
  • Sends, attachments, and organizations. These fall outside SecureKeep's model. Sends are a Bitwarden-specific feature. Attachments map onto SecureKeep's encrypted documents, so upload them directly. Organizations are a Bitwarden Teams concept and don't translate to a local-only vault.

What draws Bitwarden users away

You don't need to be unhappy with Bitwarden to find this useful. Three themes come up repeatedly:

Start with the architecture trade. Bitwarden's encrypted vault syncs to Bitwarden's servers, or to your own box if you self-host. The encryption is real. The vault, though, still lives somewhere off your phone, on infrastructure that, however well secured, exists. SecureKeep doesn't sync. Your vault stays on your phone, encrypted under a key derived from your master password, and the only way it leaves the device is a backup you start yourself. There's no SecureKeep server keeping a copy of your vault around to be stolen, because we never built one.

Then the family model. Bitwarden Families ($40 a year) is a multi-user product: each member has an account, and shared organizations pass credentials between them. SecureKeep works differently. One device holds several vaults, one per trusted person, so the vaults for your spouse, a parent, and a child all sit on a single phone that one person manages. Whether that fits depends on what your family actually needs.

Finally, the pricing fit. Bitwarden's free tier is excellent, and Premium at $10 a year is about the cheapest mainstream option going. SecureKeep is $7.99 one time. If you don't need cross-device sync, because your vault lives on the one device you actually use, the one-time purchase lines up better with how you'll use the app.

None of this is a push to leave Bitwarden if it's working for you. It's a prompt to ask whether your password manager's architecture matches the way you actually use it.

After the import: a quick cleanup pass

  1. Open Password Health (Settings โ†’ Password Health) and run the analysis. Bitwarden's reports vary by tier; SecureKeep runs the same audit on every vault. Clear the top three offenders first.
  2. Walk through any TOTP codes you imported. Check one or two against your authenticator app. If they match, retire the authenticator for those sites, or keep both. Entirely your call.
  3. Set up your Emergency Card and name your trusted person. Collecting everything in one place only helps if the people who rely on you can reach it when they need to.
  4. Decide what to do with your Bitwarden account. If you're sure about the switch, archive or delete it. If you'd rather keep it as a fallback for 30โ€“90 days, set a calendar reminder to revisit.

Frequently asked questions

Is the CSV import secure? The CSV is read on your device, parsed in memory, and each credential is encrypted with your vault's per-vault data encryption key (AES-256-GCM) before being written to disk. The plain-text CSV never touches disk; it exists only in memory for the length of the import.

What about my Bitwarden organizations / shared collections? SecureKeep doesn't model multi-user organizations the way Bitwarden does. If you need shared credentials across people, the SecureKeep approach is one device, one trusted person, and a separate vault per relationship. If you need true real-time multi-user collaboration, SecureKeep isn't the right tool for it; Bitwarden Teams is.

Can I import the encrypted JSON instead? No. SecureKeep reads CSV. The encrypted JSON is Bitwarden's own internal format, meant for re-importing into Bitwarden.

What if I self-host Bitwarden (Vaultwarden)? Same export path. The web UI is identical and the CSV format is identical.

Will the import overwrite my existing credentials? No. Host-and-username dedupe preserves existing credentials. Only new ones are added. To replace an existing entry, edit it manually after the import.

Does it import my Bitwarden Sends? No. Sends are a Bitwarden-specific shared-link feature. SecureKeep's family model uses backup files and the Emergency Card export instead.

Does the import work on iPad? Yes. Same Files-based picker, same flow.


Related reading: