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/mu-sexp-parser.cc 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 <firstname.lastname@example.org>