I made a Bitwarden automatic backup manager

I think everybody here can agree that Bitwarden is a great password manager. I’ve been using Bitwarden for about a year now, and my experience has been great. However, the app has always missed one important feature: automatic vault backups. This seems like a no-brainer to most people, but Bitwarden doesn’t have it and it doesn’t look like they plan to incorporating it in the near future.

This issue has come up many times in the Bitwarden Forums, and many users are frustrated with the poor implementation of vault exports. Most of the alternatives I found on GitHub were unreliable (most require unsafe storing of your master password!) and not supported by Bitwarden. Additionally, you need to manually create these backups, and there’s no system to do it automatically in the background. Many people’s solution, including mine, to this problem was to create automatic backups of the Bitwarden Desktop data.json file in the background, but this turns out to be very inefficient. It required me to force quit the Bitwarden Desktop app during every backup, which would be very frustrating when it’s in use. Additionally, this file isn’t supported by the Bitwarden vault import feature or other password managers, and is something that Bitwarden has mentioned isn’t a good way of creating backups.

Knowing that there needs to be a different approach, I decided to spend the next weeks researching the Bitwarden clients repository on GitHub and PBKDF2 key derivation to get a better idea of how this could be made possible. After about 3 weeks, I finally created a user-friendly backup solution.

The app, Bitwarden Auto-Backup Manager, is powered by Electron and allows you to create local, encrypted backups of your personal Bitwarden vault without using your master password. Additionally, it allows you to schedule automatic backups of your Bitwarden Vault to occur in the background (and it’s memory efficient, too)! The application creates backups for the active account on the Bitwarden Desktop app, and communicates with the Bitwarden API to sync your encrypted vault. The Bitwarden clients library is then utilized to format the encrypted data to a readable JSON format and is exported to the desired backup location.

In case you ever want to decrypt your vault, you can enter your master password used at the time of the backup (you only need to do this during decryption, and your password is only used for this purpose). It then utilizes your Protected Symmetric Key (encryption key), as well as your iteration count (stored in the encrypted file), and utilizes PBKDF2 key derivation to decrypt the items in your vault (Argon2id is not supported yet, but it should be a similar implementation). You can use the decrypted vault file and import it directly to the Bitwarden Desktop app (or any other password managers that are supported with the JSON) to easily access your vault items, including offline mode.

The project is completely open-source, and I’d love to see any improvements made on it (I make absolutely no money from it, so any contributions are appreciated)! The app is currently in beta testing, so there may be bugs. If you’d like to check it out for yourself, you can find it on Github here. I highly encourage you to help report any issues you experience with the app. You can also leave a comment on this post with any suggestions you may have!

2 Likes

thank you for your hard work, but hope bitwarden make it become true soon.