Managing addresses

The alias file

Mutt has built-in support for managing email addresses with the alias command. To tell mutt about a new email address, you can enter the alias directly:

:alias mutt-users Mutt Users List <mutt-users@mutt.org>

Mutt will forget this alias when it restarts, so permanently add it to your .muttrc file or, better, keep them in a file of their own that mutt writes to and reads back:

set alias_file = ~/.mutt/aliases
source ~/.mutt/aliases

The mutt <create-alias> command, bound to a by default, creates a permanent alias entry based on the currently selected message and appends it to that file.

There are other features of mutt aliases, such as tab completion and modifying the index display - these can be found in the aliases section of the manual.

Aliases can contain personal names, email addresses or lists of other aliases. However they can’t be used as a contact manager, they won’t store telephone numbers or street addresses - These features require an external program.

Querying an external address book

Mutt can ask an external program for addresses using the query_command setting, bound to Q in the index and Ctrl-t while typing a recipient. The program is handed a search string and prints one match per line as an address, a name and an optional comment separated by tabs. Almost every address tool below knows how to produce this. See the external address queries section of the manual.

abook

The abook addressbook is a text-based contact manager designed for use with mutt. It stores more extensive information such as telephone numbers and notes, in a plain text file you can read and edit. Addresses can be added and queried directly from mutt:

set query_command = "abook --mutt-query '%s'"
macro index,pager a "<pipe-message>abook --add-email<enter>" "add sender to abook"

If you want an address book and no opinions about it, this is the one to install.

khard

If your contacts live in a CardDAV account - which they do if you have a phone - then khard is the tool that fits. It reads and writes vCard files on disk and has mutt query support built in:

set query_command = "khard email --parsable %s"
bind editor <Tab> complete-query

The second line means you can tab-complete a recipient’s address straight from your contacts while typing it.

Pair it with vdirsyncer to keep those files in step with the server, and the same contacts appear on your phone and in mutt without you maintaining two lists.

Little Brother’s Database

The Little Brother’s Database solves a different problem. It isn’t a contact manager; it is a wrapper that queries many sources of addresses at once and merges the results. It has modules for abook files, mutt aliases, vCard directories, gpg keyrings, LDAP servers and a couple of dozen other things:

set query_command = "lbdbq '%s'"

The lbdb-fetchaddr tool is bundled with it, and can extract addresses from incoming mail automatically so that anybody who has ever written to you is already there when you start typing. For a lot of people this removes the need to maintain an address book at all.

Calendaring and scheduling

Mutt does not do calendars, and an invitation arriving as a text/calendar attachment will just sit there.

The usual arrangement mirrors the address book one: vdirsyncer pulls a CalDAV calendar down to local files and khal displays and edits them. calcurse is a self-contained alternative if you keep your own calendar and don’t need to sync it anywhere.

You can at least make invitations legible by adding a mailcap entry that converts text/calendar to text, and listing it in an auto_view line - see the file attachments section.

Last updated 31 August 2026.