I built exactly this: https://github.com/yeo/bima
I stored everything into a SQLite in `~/.bima/bima.db`
Your OTP secret is encrypted using a master password that you chooese. I use AES GCM for encryption: https://github.com/yeo/bima/blob/master/shield/encrypt.go#L1...
You then has 2 options to backup/sync among device it:
1. backup that file using dropbox, icloud, google drive 2. Enable sync to my backend. You sync encrypted data, even me cannot see it. Then other device can sync from my backend, and you enter your master password to decrypt it.
Entire thing is open source, implement using Golang Fyne UI toolkit so it run across linux/mac/window/ios/android.
If you want to help beta test it, I can send you a beta build.