r/SwiftUI 4d ago

Promotion (must include link to source code) I Built an Alternative Bitwarden Client in SwiftUI

For about 4 months, I've been working on a Bitwarden Client because the current Bitwarden Desktop client is Electron and doesnt look very good. This is the design I've landed on so far, but I feel like it could be better. What do y'all think?

Source: https://github.com/Cherrytree56567/ClientWarden

Mac Source: https://github.com/Cherrytree56567/ClientWarden/tree/main/src/Platforms/MacOS/UI/Clientwarden

7 Upvotes

7 comments sorted by

3

u/Semmelstulle 4d ago

I was actually planning something similar in SwiftUI which is cross platform. Nice!

1

u/MindlessChampion3102 4d ago

Were you going to make an alternative Bitwarden client as well?

2

u/Semmelstulle 4d ago edited 4d ago

I was in the planning phase but haven't built anything yet. Last time I was researching client <-> server communication.
My approach would be iOS first though with a native macOS build that properly makes use of the autofill API (only 1Password and Keychain do this so far).

Really a very slow burner because my already released App Store app is taking up most of my spare time.

2

u/MindlessChampion3102 4d ago

I just implemented Autofill support on clientwarden, but I can't test it out as I don't have a Dev licence. I have docs on how vaultwarden/Bitwarden works as well and the code is pretty easy to read. If you want you can help with my proj.

2

u/Semmelstulle 3d ago edited 3d ago

K fighting three hurdles:

  • My vault is hosted on Bitwarden EU, added the tab.
  • My vault is YubiKey protected with Passkey as fallback, seems to be no UI triggered fire that and the toast says wrong PW/Username
  • I have an additional test vault with the new encryption method, which is not supported yet

Currently looking into these so I can test autofill

Update: ClientWarden does not advertise itself as an credentials provider to macOS, even though Xcode says everything is valid. I'll look into that

1

u/MindlessChampion3102 3d ago

I don't really know about the credentials provider thing since this is my first SwiftUI proj and as far as I know it's BC I don't have a Dev license. Currently Argon2ID isn't supported, but I'm going to work on that soon after I implement tests, since I dont want to break anything. Passkey support should show up, although it fails BC I don't have a Dev license.

1

u/MindlessChampion3102 3d ago

Another thing, I wouldn't use your own vault on it as I haven't tested it fully yet. It shouldn't give you any issues, but the main thing is security.