There's also Mates [1]. Less mature, very simple, but it's what I personally use.
I try to steer away from relying on CLI tools implemented in python or ruby: at the system level they always seem to cause dependency hell problems eventually. Mates is implemented in Rust, so it's compiled, which is primarily why I chose it.
An important related project is vdirsyncer [2]. Ppl, khard, and mates all store data in vcard format but don't talk to APIs or sync anything. Vdirsyncer can sync your vcard collection with your email provider or what have you.
[0] https://github.com/scheibler/khard
For python specifically, you can use `pipx` which will install an app into it's own venv and activate that venv only as needed, with fully isolated deps. [1]
No such solution exists for ruby or php though, and I won't use those projects unless dockerized.
For a tool I install & use, my happy path is "install it with my package manager, and then stop thinking about it". Upgrades will happen whenever I decide to ask my package manager to upgrade everything. (I use Arch Linux, so that's usually once or twice a week.)
Needing to hand-setup an installation or deal with multiple package managers like that for a program makes me cranky. I've certainly done it when there wasn't a good alternative (and also occasionally wrap programs in docker containers as well if it's easier - https://github.com/wfleming/dockerfiles), but it's the kind of thing that makes me pause and reconsider whether I really care enough to use whatever the program is.
* not only contacts but also tasks, projects, notes and calendars
* not local, instead it uses a self hosted rest-like api wrapping a database centralizing all state
* embedded MQTT broker that publishes CRUD events so you can hook into any events to script automations
* cli client that works similar to this so commands can be chained in shell pipelines
* there's also a tui client (mutt-inspired) and I might do web/mobile later
It's far from finished, but if you're interested send me an email (link in profile) and I'll keep you up to date.