MELI(1)

NAME
meli - Meli Mail User Agent. meli is the Greek word for honey

SYNOPSIS
meli [--help | -h] [--version | -v] [--config path]

--help | -h
    Show help message and exit.

--version | -v
    Show version and exit.

--config path
    Start meli with given configuration file.

create-config [path]
    Create configuration file in path if given, or at $XDG_CONFIG_HOME/meli/config.toml

test-config [path]
    Test a configuration file for syntax issues or missing options.

man [page]
    Print documentation page and exit (Piping to a pager is recommended.)

print-default-theme
    Print default theme keys and values in TOML syntax, to be used as a blueprint.

print-loaded-themes
    Print all loaded themes in TOML syntax.

view
    View mail from input file.

DESCRIPTION
meli is a terminal mail client aiming for extensive and user-frendly configurability.

         ^^      .-=-=-=-.  ^^
     ^^        (`-=-=-=-=-`)         ^^
             (`-=-=-=-=-=-=-`)  ^^         ^^
       ^^   (`-=-=-=-=-=-=-=-`)   ^^
           ( `-=-=-=-(@)-=-=-` )      ^^
           (`-=-=-=-=-=-=-=-=-`)  ^^
           (`-=-=-=-=-=-=-=-=-`)          ^^
           (`-=-=-=-=-=-=-=-=-`)
    ^^     (`-=-=-=-=-=-=-=-=-`)  ^^
       ^^   (`-=-=-=-=-=-=-=-`)          ^^
             (`-=-=-=-=-=-=-`)  ^^
      ^^       (`-=-=-=-=-`)
                `-=-=-=-=-`          ^^

STARTING WITH meli
When launched for the first time, 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 and presented with a sample configuration file ($XDG_CONFIG_HOME/meli/config.toml) that includes 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? for 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, the left-side sidebar may be toggled with ` (shortcuts.listing: toggle_menu_visibility ).

Each mailbox may be viewed in 4 modes: Plain views each mail individually, Threaded shows their thread relationship visually, Conversations collapses each thread of emails into a single entry, Compact shows one row per thread.

If you're using a light color palette in your terminal, you should set theme = light in the terminal section of your configuration. See meli-themes(5) for complete documentation on user themes.

VIEWING MAIL
Open attachments by typing their index in the attachments list and then a ( shortcut open_attachment). meli will attempt to open text inside its pager, and other content via xdg-open . Press m ( shortcut open_mailcap) 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. You can save individual attachments with the COMMAND save-attachment INDEX path-to-file where INDEX is the attachment's index in the listing. If the zeroth index is provided, the entire message is saved. If the path provided is a directory, the message is saved as an eml file with its filename set to the messages message-id.

SEARCH
Each e-mail storage backend has a default search method assigned. IMAP uses the SEARCH command, notmuch uses libnotmuch and Maildir/mbox performs a slow linear search. It is advised to use a search backend 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 search_backend to sqlite3 in the configuration file and to create the sqlite3 index issue command index ACCOUNT_NAME.

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 )) or flags:seen,draft)

    alladdresses:mailing@example.com and cc:me@example.com

Boolean operators are or , and and not ( alias:!) String keywords with spaces must be quoted. Quotes should always be escaped.

Important Notice about IMAP/JMAP

To prevent downloading all your messages from your IMAP/JMAP server, don't set search_backend to sqlite3 . 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.

  QUERY ABNF SYNTAX

•   query = "(" query ")" | from | to | cc | bcc | alladdresses | subject | flags | has_attachments | query "or" query | query "and" query | not query

•   not = "not" | "!"

•   quoted = ALPHA / SP *(ALPHA / DIGIT / SP)

•   term = ALPHA *(ALPHA / DIGIT) | DQUOTE quoted DQUOTE

•   tagname = term

•   flagval = "passed" | "replied" | "seen" | "read" | "junk" | "trash" | "trashed" | "draft" | "flagged" | tagname

•   flagterm = flagval | flagval "," flagterm

•   from = "from:" term

•   to = "to:" term

•   cc = "cc:" term

•   bcc = "bcc:" term

•   alladdresses = "alladdresses:" term

•   subject = "subject:" term

•   flags = "flags:" flag | "tags:" flag | "is:" flag

TAGS
meli supports tagging in notmuch and IMAP/JMAP backends. Tags can be searched with the `tags:` or `flags:` prefix in a search query, and can be modified by tag add TAG and tag remove TAG (see meli.conf(5) TAGS , settings colors and ignore_tags for how to set tag colors and tag visiblity)

COMPOSING

  Opening the message Composer tab
To create a new mail message, press m (shortcut new_mail ) while viewing a mailbox. To reply to a mail, press R ( shortcut reply). Both these actions open the mail composer view in a new tab.

  Editing text
•   Edit the header fields by selecting with the arrow keys and pressing enter to enter INSERT mode and Esc key to exit.
•   At any time you may press e (shortcut edit_mail ) to launch your editor (see meli.conf(5) COMPOSING , setting editor_command for how to select which editor to launch).
•   Your editor can be used in meli 's embed terminal emulator by setting embed to true in your composing settings.
•   When launched, your editor captures all input until it exits or stops.
•   To stop your editor and return to meli press Ctrl-z and to resume editing press the edit_mail command again ( default e).

  Attachments
Attachments may be handled with the add-attachment , remove-attachment commands (see below).

  Sending
Finally, pressing s (shortcut send_mail ) will send your message according to your settings ( see meli.conf(5) COMPOSING , setting send_mail) . With no Draft or Sent mailbox, meli tries first saving mail in your INBOX and then at any other mailbox. 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 location.

  Drafts
To save your draft without sending it, issue COMMAND close and select 'save as draft'.

To open a draft for further editing, select your draft in the mail listing and press edit_mail .

CONTACTS
meli supports two kinds of contact backends:

1.  an internal format that gets saved under $XDG_DATA_HOME/meli/account_name/addressbook .
2.  vCard files (v3, v4) through the vcard_folder 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.

MODES
NORMAL
    is the default mode
COMMAND
    commands are issued in COMMAND mode, by default started with: and exited with Esc key.
EMBED
    is the mode of the embed terminal emulator
INSERT
    captures all input as text input, and is exited with Esc key.

  COMMAND Mode

  Mail listing commands

set plain | threaded | compact | conversations
    set the way mailboxes are displayed
conversations | shows one entry per thread
compact | shows one row per thread
threaded | shows threads as a tree structure
plain | shows one row per mail, regardless of threading

sort subject | date   asc | desc
    sort mail listing

subsort subject | date   asc | desc
    sorts only the first level of replies.

go n
    where n is a mailbox prefixed with the n number in the side menu for the current account

toggle thread_snooze
    don't issue notifications for thread under cursor in thread listing

search STRING
    search mailbox with STRING query. Escape exits search results.

select STRING
    select threads matching STRING query.

set seen, set unseen
    Set seen status of message.

import FILEPATH MAILBOX_PATH
    Import mail from file into given mailbox.

copyto, moveto MAILBOX_PATH
    Copy or move to other mailbox.

copyto, moveto ACCOUNT MAILBOX_PATH
    Copy or move to another account's mailbox.

delete
    Delete selected threads.

export-mbox FILEPATH
    Export selected threads to mboxcl2 file.

create-mailbox ACCOUNT MAILBOX_PATH
    create mailbox with given path. Be careful with backends and separator sensitivity (eg IMAP)

subscribe-mailbox ACCOUNT MAILBOX_PATH
    subscribe to mailbox with given path

unsubscribe-mailbox ACCOUNT MAILBOX_PATH
    unsubscribe to mailbox with given path

rename-mailbox ACCOUNT MAILBOX_PATH_SRC MAILBOX_PATH_DEST
    rename mailbox

delete-mailbox ACCOUNT MAILBOX_PATH
    deletes mailbox in the mail backend. This action is unreversible.

  Mail view commands

pipe EXECUTABLE ARGS
    pipe pager contents to binary

list-post
    post in list of viewed envelope

list-unsubscribe
    unsubscribe automatically from list of viewed envelope

list-archive
    open list archive with xdg-open

  composing mail commands

add-attachment PATH
    in composer, add PATH as an attachment

add-attachment < CMD ARGS
    in composer, pipe CMD ARGS output into an attachment

add-attachment-file-picker
    Launch command defined in the configuration value file_picker_command in meli.conf(5) TERMINAL

add-attachment-file-picker < CMD ARGS
    Launch command CMD ARGS . The command should print file paths in stderr, separated by NULL bytes.

remove-attachment INDEX
    remove attachment with given index

toggle sign
    toggle between signing and not signing this message. If the gpg invocation fails then the mail won't be sent. See meli.conf(5) PGP for PGP configuration.

save-draft
    saves a copy of the draft in the Draft folder

  generic commands

open-in-tab
    opens envelope view in new tab

close
    closes closeable tabs

setenv KEY=VALUE
    set environment variable KEY to VALUE

printenv KEY
    print environment variable KEY

quit
    Quits meli .

reload-config
    Reloads configuration but only if account configuration is unchanged. Useful if you want to reload some settings without restarting meli .

SHORTCUTS
See meli.conf(5) SHORTCUTS for shortcuts and their default values.

EXIT STATUS
meli exits with 0 on a successful run. Other exit statuses are:

1   catchall for general errors

101 process panic

ENVIRONMENT

EDITOR
    Specifies the editor to use

MELI_CONFIG
    Override the configuration file

NO_COLOR
    When present (regardless of its value), prevents the addition of ANSI color. The configuration value use_color overrides this.

FILES
meli uses the following parts of the XDG standard:

XDG_CONFIG_HOME
    defaults to ~/.config/

XDG_CACHE_HOME
    defaults to ~/.cache/

and appropriates the following locations:

$XDG_CONFIG_HOME/meli/
    User configuration directory

$XDG_CONFIG_HOME/meli/config.toml
    User configuration file, see meli.conf(5) for its syntax and values.

$XDG_CONFIG_HOME/meli/hooks/*
    Reserved for event hooks.

$XDG_CONFIG_HOME/meli/plugins/*
    Reserved for plugin files.

$XDG_CACHE_HOME/meli/*
    Internal cached data used by meli.

$XDG_DATA_HOME/meli/*
    Internal data used by meli.

$XDG_DATA_HOME/meli/meli.log
    Operation log.

/tmp/meli/*
    Temporary files generated by meli .

Mailcap entries are searched for in the following files, in this order:

1.  $XDG_CONFIG_HOME/meli/mailcap
2.  $XDG_CONFIG_HOME/.mailcap
3.  $HOME/.mailcap
4.  /etc/mailcap
5.  /usr/etc/mailcap
6.  /usr/local/etc/mailcap

SEE ALSO
meli.conf(5), meli-themes(5), xdg-open(1), mailcap(5)

CONFORMING TO
XDG Standard <https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html> , maildir <https://cr.yp.to/proto/maildir.html> , IMAPv4rev1 RFC3501, The JSON Meta Application Protocol (JMAP) RFC8620, The JSON Meta Application Protocol (JMAP) for Mail RFC8621.

AUTHORS
Copyright 2017-2019 Manos Pitsidianakis <epilys@nessuent.xyz> Released under the GPL, version 3 or greater. This software carries no warranty of any kind. (See COPYING for full copyright and warranty notices.)

<https://meli.delivery>