Have you tried KeePassXC? It has a reasonable UI and mental model, and does zero cloudy things.
After that, I would teach KeePassXC to serve the 1Password browser extension websocket protocol, because I found its UX far, far, far, far superior to KeePassXC's browser extension UX