Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
friends
Spend time with the people you care about. Introvert-tested. Extrovert-approved. (by JacobEvelyn)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Another comment already mentioned Khard, which has been around a while. [0]
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
This is maybe slightly different than what you’re looking for, but my project Friends[1] is a journaling CLI that I also use to keep track of people’s addresses and contact info (via the “notes” feature).
[1] https://github.com/JacobEvelyn/friends
Very cool! I wish macOS contacts were supported. I would not migrate to something that doesn't solve the "sync b/w devices" problem. It would be pretty nifty to have a CLI frontend for iCloud contacts.
... And it looks like such a thing somewhat exists! https://github.com/keith/contacts-cli
I'm aware of that approach for Python, and Bundler can be configured to do a similar thing for Ruby. Those are good approaches for development environments (though I generally prefer Docker for those these days), but for system tools I think that's just kind of a hassle and I don't want to do it.
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 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.