Scroll to navigation

MU-SERVER(1) General Commands Manual MU-SERVER(1)


mu_server - the mu backend for the mu4e e-mail client


mu server [options]


mu server starts a simple shell in which one can query and manipulate the mu database. The output uses s-expressions. mu server is not meant for use by humans, except for debugging purposes. Instead, it is designed specifically for the mu4e e-mail client.

In this man-page, we document the commands mu server accepts, as well as their responses. In general, the commands sent to the server are s-expressions of the form:

(<command-name> :param1 value1 :param2 value2)

For example, to view a certain message, the command would be:

(view :docid 12345)

Parameters can be sent in any order; they must be of the correct type though. See lib/utils/mu-sexp-parser.hh and lib/utils/ in source-tree for the details.


mu server accepts a number of commands, and delivers its results in the form:


\376 (one byte 0xfe), followed by the length of the s-expression expressed as an hexadecimal number, followed by another \377 (one byte 0xff), followed by the actual s-expression.

By prefixing the expression with its length, it can be processed more efficiently. The \376 and \377 were chosen since they never occur in valid UTF-8 (in which the s-expressions are encoded).


Dirk-Jan C. Binnema <>



January 2020 User Manuals