I hated Apple’s Contacts app even when it was called Address Book. It’s just a bad app, with terrible use of space and a clumsy, modal user experience. BusyMac did a good job at creating a better monolithic contacts app with BusyContacts back several years ago (see “BusyContacts Turbo Charges Mac Contact Management,” 17 March 2015), but Flexibits, makers of Fantastical, have now introduced a completely different take on contact management: Cardhop.
Part of the problem with contact management is that it’s basically database work. Create a record, edit fields, perform searches, etc. It’s all stuff that any database can do, but until Cardhop, interacting with a contact manager wasn’t much different than using FileMaker. Cardhop relies on exactly the same system-level contact database that Contacts and BusyContacts use, but how you add, edit, and use contacts is rather different.
First off, Cardhop is an attractive menu-bar app with light and dark modes. By default, it appears as a popover when you invoke it and disappears when you switch away from it. However, you can drag its popover off the menu bar to turn it into a standalone window that remains visible when you move to another app.
Initially, Cardhop shows you the people whose birthdays are coming up shortly (I turned this off by deselecting View > Show Birthdays), followed by people whose contact info you’ve worked with recently in Cardhop. You can click All Contacts at the bottom to see everyone, but realistically, you won’t want to do that most of the time. Similarly, you can expand the window to see contact groups, and click one to restrict the search results to people in that group. Again, I doubt you’ll want to do this much.
That’s because Flexibits built Cardhop around its natural language parser, so even though you can click buttons and choose menu items to run Cardhop, it’s designed so that you can type at it. That might sound like a throwback to command-line tools, but actual usage is far more fluid and intuitive than the command line.
Adding, Searching, and Editing -- For instance, imagine you want to add a contact for your new friend Tim Cook. Press the hotkey you’ve defined to bring up Cardhop and then start typing. Enter “Tim Cook Apple email@example.com @tim_cook 408-555-1212” and Cardhop immediately starts creating a new card and filling it out with the name, company name, email address, Twitter handle, and phone number. You can even copy and paste all that information into Cardhop, and it will work similarly. Press Return or click Add Contact and you’re done.
Want to add an address? First you have to find Tim Cook’s contact card. Invoke Cardhop, and start typing a portion of his name (first or last, it doesn’t matter). That’s all there is to a search, which is why I don’t think you’ll want to browse through all contacts or restrict searches to groups in most cases. It’s just too easy to find the person you want with a few keystrokes. If you have multiple people named Tim in your contacts, you might need to type “tim co” to get the right contact, or you could just type “cook.”
Once Cardhop has selected the right contact, you can add Tim Cook’s address just by typing it. Then enter “work 1 Infinite Loop Cupertino CA 95014” and Cardhop adds it as soon as you press Return. Notice that I put “work” at the start to indicate this is a work address; “home” and “other” are also possibilities, or you can just leave that word out to default to a home address.
Need to delete some data, like an old phone number? Invoke Cardhop and type “cook delete phone.” Cardhop even colorizes the word “delete” so you know it’s a command and not data.
It doesn’t seem that you can change details via Cardhop’s parser, but as soon as you select a contact and see their information, you can click any field to edit it right away — there’s no need to switch to a special editing mode, as in Contacts. You can also change field names like this, if you want to specify that a phone number is an iPhone, not a work phone.
Other actions require more traditional forms of interface too. If you want to add a field, click the Add Field button at the bottom of the screen. Want to add a note about the contact? Click in the omnipresent note field at the bottom of the card and type your note. Unlike Contacts, that notes field will always be visible, making it easier to use.
Interacting with Contacts -- Contact management isn’t just about maintaining a database; it’s about using contact information. Here too Cardhop relies on its parser, which understands a number of commands, and doesn’t care whether you enter the command before or after selecting a contact.
So, if you wanted to send email to Tim Cook, you could just type “email tim cook” and press Return to have Cardhop create the message in your default email client. In all likelihood, Cardhop would have found the right contact after just one or two characters of the name since you’ve been using it recently, so it knows to guess at Tim Cook before any other guys named Tim. Plus, you can add a Subject line by including it after the name, as in “email tim cook Feedback about iTunes.”
Cardhop understands quite a few commands for everyday interactions with contacts:
“call Tim” calls the contact via your iPhone through Continuity or Wi-Fi Calling, or sends the call to a phone paired with the Mac via Bluetooth. You can choose the default behavior in Cardhop’s preferences, or switch per call by pressing Option-Return. Synonyms are “dial” and “phone.”
“copy Tim” copies contact information. It shows you which piece of information it will copy by default (which varies by contact), but you can specify specific properties too, as in “copy Tim work email.”
“email Tim” creates an email message as mentioned above. The word “mail” works too.
“facetime Tim” starts a FaceTime call with the contact. You can abbreviate it to “ft” or specify a FaceTime Audio call with “facetimeaudio,” “audio,” “facetime audio,” or just “fta.”
“message Tim” starts a conversation in Messages with that contact. There are lots of synonyms, including: “imessage,” “text,” “txt,” “im,” and “ping.” Alas, you can’t enter a message to send as well.
“skype Tim” initiates a Skype call with the contact.
“search Tim” is supposed to start a Spotlight search for the contact, but neither it nor its synonyms of “spotlight” or “find” are working right now.
“tweet Tim” sends a tweet to the contact. You could also say “twitter Tim.”
“web Tim” opens the URL associated with a contact — also try “website,” “webpage,” or “url.”
“map Tim” displays a map to the contact’s address. You can also enter “maps,” “directions,” and “route.”
“show Tim” displays phone number and address information in large type so you can read it easily. You’ll likely want to specify the information, as in “show Tim address” or “show Tim mobile.” Command variants include “large,” “banner,” and “big.”
Interestingly, many of these commands can be used with freeform information that isn’t associated with a contact as well. So you could type “call 408-555-1212” or “email firstname.lastname@example.org” and Cardhop would happily send those commands off to the appropriate apps.
Since typing even short commands may be overly cumbersome for certain tasks, Cardhop offers four Quick Actions that appear as buttons when you hover over a contact in the list and in each contact. Plus, you can invoke them with Command-1 through Command-4. By default, Cardhop sets the Quick Actions to Message, Email, Call, and Video, but you can change them globally in Cardhop’s preferences or even for individual contacts (Control-click one of the Quick Action buttons to change it).
Getting Used to Cardhop -- Cardhop is a fine app, and a compelling rethinking of how you can interact with contact information, but it still faces an uphill battle for acceptance. The problem is that we’ve all built up habits that will be hard to break. For instance, if I’m going to send someone email, I’ll switch to Mailplane, start a new message, and enter their name. If I want to call someone, I’ll pull out my iPhone, tap the Phone app, tap Favorites or Contacts, and tap the appropriate item in the list. I’m not saying that these techniques are efficient, but they’re what I’ve done for years.
I’ve had only a few days with Cardhop so far, and although I’ve been forcing myself to use it as much as I can, it hasn’t yet become second nature. I think that’s in part because most of my communications are either reactive (someone sends me email and I reply) or ongoing (I start by pulling up an existing Messages or Slack conversation). Nonetheless, I’m sufficiently intrigued by the parser-based approach that Flexibits has taken that I’m willing to keep trying.
At the moment, Cardhop is purely a Mac app, although I wouldn’t be surprised to see Flexibits adapt it to iOS if it succeeds on the Mac. If nothing else, if you accustom yourself to contact-first thinking on the Mac, it might feel awkward to switch back to app-first thinking on the iPhone.
Should you check out Cardhop? If you dislike Contacts and haven’t already found a better solution, yes. Or, if you inherently think in a contact-first way, rather than an app-first approach, Cardhop could be the dashboard around which you initiate your communications. Regardless, Flexibits provides a 21-day free trial version of Cardhop, so you can give it a real-world try.
Cardhop requires OS X 10.11 El Capitan or later, and is available both from Flexibits and the Mac App Store for $14.99 as a special launch price; the regular price will be $19.99.