This has been my side project for the last month or so. It's a "scratch your own itch" type of deal, because I wanted a CLI address book and there didn't seem to be one.
I tried really hard to find an existing one, but I'd be interested to hear if I messed up and accidentally reinvented the wheel.
There's abook[1], but yours seems different in design. (Main difference at a glance: Yours doesn't work on captured interface. So in that sense, yours is more Unixy.) One nice thing about abook is that it integrates nicely with mutt (which I see someone has already asked you about and you're working on).
One thing that might be nice would be an abook to ppl exporter. abook saves its information in a flat file at ~/.abook/addressbook with items like the following:
# abook addressbook file
[format]
program=abook
version=0.5.6
[0]
name=Someone Somewhere
email=someone.somewhere@gmail.com
[1]
name=Another Person
email=another_person@yahoo.com
nick=Another
[3]
name=Detailed Somebody
email=somebody@details.org
address=2222 Main Street
city=New Somewhere
state=NY
zip=10011
phone=212-111-1111
nick=person
notes=Birthday May 14th
It shouldn't be too hard to convert that, but I'm not sure (yet) about how you're storing information. (You mention vcard, but I'm not familiar with the details of that.)
You have described exactly the two things about abook that have always put me off using it and drove me to build this. The ncurses UI works well but isn't what I want, and the "Yet Another File Format" addressbook format isn't very interoperable.
You're right that an exporter shouldn't be hard to build. Might get on that once some bugs and other features are out of the way!
One issue that will come up with any exporter: abook can handle multiple entries for each category, and (I think?) ppl can't yet. So, at the moment, I'm not sure there's a way to export without losing some information. Anyhow, I will definitely keep an eye on ppl. Looks like a very good start.
Reminds me of when I built Logbook - store notes on Gists from CLI. The mindset is amazingly the same :)
Though I offloaded most of the CLI processing to Thor, and didn't build Command/CLI abstraction into it.
Damn, that is kind of spooky actually. I can't keep track of all the similarities... The layout of the project's directory structure, the TravisCI image placement, the README style...
I don't know, all I can say is you have excellent taste! :)
The semantics of contact data exposed via the Contacts API is supposed to be quite close to vcard, which would make pushing data from Google Contacts to your Git vcard repository reasonably easy, but the other way could be hairy.
I tried really hard to find an existing one, but I'd be interested to hear if I messed up and accidentally reinvented the wheel.