khard is an address book for the Unix command line. It can read, create, modify and delete carddav address book entries. khard only works with a local store of VCARD files. It is intended to be used in conjunction with other programs like an email client, text editor, vdir synchronizer or VOIP client.
configuration file (default:
output debugging information
show a help message and exit
skip unparsable vcards when reading the address books
show program’s version number and exit
The functionality of khard is divided into several subcommands. All of these
have their own help text which can be seen with
khard SUBCOMMAND --help.
Many subcommands accept search terms to limit the number of contacts they should work on, display or present for selection. The syntax is described in Search query syntax.
These subcommands list information of several contacts who match a search query.
list all (selected) contacts
list birthdays (sorted by month and day)
list email addresses
list phone numbers
list postal addresses
list filenames of all matching contacts
These subcommands display detailed information about one subcommand.
display detailed information about one contact, supported output formats are “pretty”, “yaml” and “vcard”
These subcommands are used to modify contacts.
edit the data of a contact, supported formats for editing are “yaml” and “vcard”
create a new contact
Extract email address from the “From:” field of an email header and add to an existing contact or create a new one
merge two contacts
copy a contact to a different addressbook
move a contact to a different addressbook
remove a contact
list all address books
print an empty yaml template
Search query syntax¶
Search queries consist of one or more command line arguments. Each can be a
simple search term or a search term for a specific field. The field name is
separated from the search term by a colon (
:) without any spaces.
Spaces in the field name have to be replaced with underscores.
The available fields are the same fields as in the YAML template with the
exception of the five name components (first, last, prefix, suffix,
additional). But there is the special pseudo field specifier
will search in any name related field (including nichnames and formatted
If a field name is not known the search term is interpreted as a plain search term and the string (including the colon) is looked up in any field of the contact.