Meli Mail User Agent. meli is the Greek word for honey
TABLE OF CONTENTS
Experimental terminal mail client
When launched for the first time,
- Show help message and exit.
- Show version and exit.
- Create configuration file in path if given, or at
- Test a configuration file for syntax issues or missing options.
- Start meli with given configuration file.
meli will search for
its configuration directory, $XDG_CONFIG_HOME/meli/.
If it doesn't exist, you will be asked if you want to create one along with a
sample configuration. The sample configuration
$XDG_CONFIG_HOME/meli/config includes comments with
the basic settings required for setting up accounts allowing you to copy and
edit right away. See meli.conf(5) for
the available configuration options.
At any time, you may press
? to show a
searchable list of all available actions and shortcuts, along with every
possible setting and command that your version supports.
The main visual navigation tool is the left-side sidebar. The
menu's visibility may be toggled with
The view into each folder has 4 modes: plain, threaded,
conversations and compact. Plain views each mail indvidually, threaded shows
their thread relationship visually, and conversations includes one entry per
thread of emails (compact is one row per thread).
If you're using a light color palette in your terminal, you may
set theme = light in the terminal
section of your configuration.
Open attachments by typing their index in the attachments list and then
^^ .-=-=-=-. ^^
^^ (`-=-=-=-=-`) ^^
(`-=-=-=-=-=-=-`) ^^ ^^
^^ (`-=-=-=-=-=-=-=-`) ^^
( `-=-=-=-(@)-=-=-` ) ^^
^^ (`-=-=-=-=-=-=-=-=-`) ^^
^^ (`-=-=-=-=-=-=-=-`) ^^
meli will attempt to open
text inside its pager and other content via
m instead to use the mailcap entry for the MIME
type of the attachment, if any. See FILES for
the location of the mailcap files and
mailcap(5) for their syntax.
Each e-mail storage backend has its default search method.
IMAP uses the SEARCH command, notmuch uses
libnotmuch and Maildir/mbox have to do a slow linear search.
Thus it is advised to use a cache on Maildir/mbox accounts.
meli, if built with sqlite3, includes the ability to
perform full text search on the following fields: From, To, Cc, Bcc,
In-Reply-To, References, Subject and Date. The message body (in plain text
human readable form) and the flags can also be queried. To enable sqlite3
indexing for an account set cache_type to
sqlite3 in the configuration file and to create the sqlite3
index issue command
To search in the message body type your keywords without any
special formatting. To search in specific fields, prepend your search
keyword with "field:" like so:
subject:helloooo or subject:"call for help"
or "You remind me today of a small, Mexican chihuahua."
not ((from:unrealistic and (to:complex or not query ))
Boolean operators are or, and
and not (alias: !) String keywords with
spaces must be quoted. Quotes should always be escaped.
Important Notice about IMAP
To prevent downloading all your messages from your IMAP server,
don't set cache_type to sqlite3.
To send mail, press
meli will relay your queries to the IMAP server.
Expect a delay between query and response. Sqlite3 on the contrary at
reasonable mailbox sizes should have a non noticable delay.
m while viewing the appropriate
account to open a new composing tab. To reply to a mail, press
R. You may edit some of the header fields from within
the view, by selecting with the arrow keys and pressing
enter to enter INSERT mode. At
any time you may press
e to launch your editor (see
meli.conf(5) COMPOSING, setting
editor_cmd for how to select which editor to launch).
Attachments may be handled with the add-attachment,
remove-attachment commands (see below). Finally, pressing
s will send your message by piping it into a binary of
your choosing (see meli.conf(5)
mailer_cmd). To save your draft
without sending it, issue command
close and select
'save as draft'.
With no Draft or Sent folder,
first saving mail in your INBOX and then at any other folder. On complete
failure to save your draft or sent message it will be saved in your
tmp directory instead and you will be notified of its
To open a draft for editing later, select your draft in the mail
listing and press
Your editor can be used in
terminal emulator by setting
true in your composing settings. When launched, your
editor captures all input until it exits or stops. To stop your editor and
meli issue Ctrl-z and to resume editing
edit_mail command again (default
meli supports two kinds of contact backends:
- an internal format that gets saved under
- vCard files (v3, v4) through the
option in the account section. The path defined as
vcard_folder can hold multiple vCards per file.
They are loaded read only.
See meli.conf(5) ACCOUNTS
for the complete account configuration values.
Commands are issued in EXECUTE mode, by default started with Space and exited
with Escape key.
the following commands are valid in the mail listing context:
plain | threaded |
compact | conversations
- set the way mailboxes are displayed
||shows one entry per thread
||shows one row per thread
||shows threads as a tree structure
||shows one row per mail, regardless of threading
subject | date
asc | desc
- sort mail listing
subject | date
asc | desc
- sorts only the first level of replies.
- where n is a mailbox prefixed with the
n number in the side menu for the current
- don't issue notifications for thread under cursor in thread listing
- filter mailbox with STRING key. Escape exits filter
read, set unread
- create folder with given path. be careful with backends and separator
sensitivity (eg IMAP)
- subscribe to folder with given path
- unsubscribe to folder with given path
- rename folder
- delete folder
envelope view commands:
- pipe pager contents to binary
- post in list of viewed envelope
- unsubscribe automatically from list of viewed envelope
- open list archive with
composing mail commands:
- in composer, add PATH as an attachment
- remove attachment with given index
- toggle between signing and not signing this message. If the gpg invocation
fails then the mail won't be sent.
- opens envelope view in new tab
- closes closeable tabs
- set environment variable KEY to
- print environment variable KEY
meli exits with 0 on a successful run. Other exit
- catchall for general errors
meli uses the following parts of the XDG standard:
and appropriates the following locations:
- User configuration directory.
- User configuration file. See
meli.conf(5) for its syntax and
- Reserved for event hooks.
- Reserved for plugin files.
- Internal cached data used by meli.
- Internal data used by meli.
- Operation log.
- Temporary files generated by
Mailcap entries are searched for in the following files, in this
maildir ⟨https://cr.yp.to/proto/maildir.html⟩, IMAPv4rev1
Copyright 2017-2019 Manos Pitsidianakis
⟨firstname.lastname@example.org⟩ Released under the GPL, version 3 or
greater. This software carries no warranty of any kind. (See COPYING for full
copyright and warranty notices.)