1. Installation

These days, alot can be installed directly using your favourite package manager. On a recent Debian (-derived) systems for instance, just do sudo apt install alot and you’re done.


Alot uses mailcap to look up mime-handler for inline rendering and opening of attachments. To avoid surprises you should at least have an inline renderer (copiousoutput) set up for text/html in your ~/.mailcap:

text/html;  w3m -dump -o document_charset=%{charset} '%s'; nametemplate=%s.html; copiousoutput

On more recent versions of w3m, links can be parsed and appended with reference numbers:

text/html;  w3m -dump -o document_charset=%{charset} -o display_link_number=1 '%s'; nametemplate=%s.html; copiousoutput

See the manpage mailcap(5) or RFC 1524 for more details on your mailcap setup.

1.1. Manual installation

Alot depends on recent versions of notmuch and urwid. Note that due to restrictions on argparse and subprocess, you need to run python ≥ 3.5 (see faq). A full list of dependencies is below:

On Debian/Ubuntu these are packaged as:

python3-setuptools python3-magic python3-configobj python3-notmuch python3-urwid python3-urwidtrees python3-gpg python3-twisted python3-dev swig

On Fedora/Redhat these are packaged as:

python-setuptools python-magic python-configobj python-notmuch python-urwid python-urwidtrees python-gpg python-twisted

To set up and install the latest development version:

git clone https://github.com/pazz/alot
poetry install --no-root

Make sure ~/.local/bin is in your PATH. For system-wide installation omit the –user flag and call with the respective permissions.

1.2. Generating the Docs

This requires sphinx, ≥ 1.3 to be installed. To generate the documentation from the source directory simply do:

make -C docs html

A man page can be generated using:

make -C docs man

Both will end up in their respective subfolders in docs/build.

In order to remove the command docs and automatically re-generate them from inline docstrings, use the make target cleanall, as in:

make -C docs cleanall html


On Debian you need to overide the variable PYTHON used in the makefile so that it uses “python3”, not “python”, which by default links to version 2.7* of the interpreter.

make PYTHON="python3" -C docs cleanall html