#+TITLE: MU
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc

* NAME

mu - a set of tools to deal with Maildirs and message files, in particular to
index and search e-mail messages.

* SYNOPSIS

*mu* [​_COMMON-OPTIONS_​] [[​_COMMAND_​] [​_COMMAND-OPTIONS_​]]

For information about the common options, see *COMMON OPTIONS*.

* DESCRIPTION

*mu* is the general command that shows help about the specific commands:

- *add*:  add specific messages to the database.
- *cfind*: find contacts
- *extract*: extract attachments and other MIME-parts
- *find*: find messages in the database
- *help*: get help for some command
- *index*: (re)index the messages in a Maildir
- *info*: show information about the *mu* database
- *init*: initialize the *mu* database
- *labels*: manage message labels
- *mkdir*: create a new Maildir
- *move*: move a message or change its flags
- *remove*: remove specific messages from the database
- *scm*: start a Guile/Scheme shell or run a script
- *server*: start a server process (for ~mu4e~-internal use)
- *verify*: verify cryptographic message signatures
- *view*: view a specific message

Each of the commands have their own manpage *mu-<command>*.

*mu* is a set of tools for dealing with Maildirs and the e-mail messages
in them.

*mu*'s main purpose is to enable searching of e-mail messages. It
does so by periodically scanning a Maildir directory tree and
analyzing the e-mail messages found (this is called `indexing'). The
results of this analysis are stored in a database, which can then be
queried.

In addition to indexing and searching, *mu* also offers
functionality for viewing messages, extracting attachments and
creating maildirs, and searching and exporting contact information.

*mu* can be used from the command line or can be integrated with various
e-mail clients.

This manpage gives a general overview of the available commands
(*index*, *find*, etc.); each *mu* command has its own
man-page as well.

* COLORS

Some *mu* commands support colorized output, and do so by default when writing to
a TTY (roughly, to a screen). When not writing to a TTY, for instance when
redirection the output to a file or using a pipe, the default is to *not* show
colors.

If you do not want colors, you can use *--nocolor*.

If you want colors even when it is not the default, use *--nocolor=false*.

* ENCODING

*mu*'s output is in the current locale, with the exceptions of the output
specifically meant for output to UTF8-encoded files. In practice, this means
that the output of commands *index*, *view*, *extract* is always encoded according to
the current locale.

The same is true for *find* and *cfind*, with some exceptions, where
the output is always UTF-8, regardless of the locale:

- For *cfind* the exception is *--format=bbdb*. This is hard-coded to UTF-8, and as
  such specified in the output-file, so emacs/bbdb can handle it correctly
  without guessing.
- For *find* the output is encoded according the locale for *--format=plain* (the
  default), and UTF-8 for all other formats.

* DATABASE AND FILE

The *index*, *find*, *cfind*, *move*, *add*, *remove* and *labels* commands work with the
database, while the other ones work on individual mail files. Hence, running
*view*, *mkdir* and *extract* does not require the *mu* database.

* LOGGING

*mu* logs to the standard logging location, which is either the systemd journal,
*syslog* or a log file (by default, _~/.cache/mu/mu.log_), depending on your
system's setup; the first that appears to be working is used.

When using a log file, it can safely be deleted when *mu* is not running. When
running with *--debug* option, the log file can grow rather quickly. See the note
on logging below.


#+include: "common-options.inc" :minlevel 1

#+include: "exit-code.inc" :minlevel 1

#+include: "prefooter.inc" :minlevel 1

* SEE ALSO

{{{man-link(mu-add,1)}}},
{{{man-link(mu-cfind,1)}}},
{{{man-link(mu-extract,1)}}},
{{{man-link(mu-find,1)}}},
{{{man-link(mu-help,1)}}},
{{{man-link(mu-index,1)}}},
{{{man-link(mu-info,1)}}},
{{{man-link(mu-init,1)}}},
{{{man-link(mu-labels,1)}}},
{{{man-link(mu-mkdir,1)}}},
{{{man-link(mu-move,1)}}},
{{{man-link(mu-remove,1)}}},
{{{man-link(mu-scm,1)}}},
{{{man-link(mu-server,1)}}},
{{{man-link(mu-verify,1)}}},
{{{man-link(mu-view,1)}}},
{{{man-link(mu-query,7)}}},
{{{man-link(mu-easy,7)}}}
