Scroll to navigation

MELI(1) General Commands Manual MELI(1)

NAME

meliterminal e-mail client μέλι is the Greek word for honey

SYNOPSIS

meli [--help | -h] [--version | -v] [--config path]
|
Show help message and exit.
|
Show version and exit.
path
Start meli with given configuration file.
[path]
Create configuration file in path if given, or at $XDG_CONFIG_HOME/meli/config.toml. If path is - the result is printed to the standard output stream.
[path]
Test a configuration for syntax issues or missing options. The configuration is read from path if given, or from $XDG_CONFIG_HOME/meli/config.toml. If path is - the configuration is read from the standard input stream.
[page]
Print documentation page and exit (Piping to a pager is recommended).
[path]
Install manual pages to the first location provided by MANPATH or manpath(1), unless you specify the directory as an argument.
Print compile time feature flags of this binary.
Edit configuration files with EDITOR or VISUAL.
Prints help information or the help of the given subcommand(s).
Print all directories that meli creates and uses.
Print location of configuration file that will be loaded on normal app startup.
Print default theme keys and values in TOML syntax, to be used as a blueprint.
Print all loaded themes in TOML syntax.
Print log file location.
View mail from input file.

DESCRIPTION

meli is a terminal mail client aiming for extensive and user-friendly 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 ⟨?⟩ (shortcuts.general.) 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.).

Each mailbox may be viewed in 4 modes:

  • views each mail individually,
  • shows their thread relationship visually,
  • collapses each thread of e-mails into a single entry,
  • shows one row per thread.

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

See meli(7) for a more detailed tutorial on using meli.

SHORTCUTS

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

VIEWING MAIL

Open attachments by typing their index in the attachments list and then ⟨a⟩ (shortcuts.envelope_view.). meli will attempt to open text inside its pager, and other content via xdg-open. Press ⟨m⟩ (shortcuts.envelope_view.) 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

save-attachment INDEX path-to-file

command. INDEX is the attachment's index in the listing. If the path provided is a directory, the attachment is saved with its filename set to the filename in the attachment, if any. If the 0th 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. uses the SEARCH command, 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: , , , , , , and . 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:

reindex 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 , 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 noticeable delay.

QUERY ABNF SYNTAX

FLAGS

meli supports the basic maildir flags: passed, replied, seen, trashed, draft and flagged. Flags can be searched with the ‘flags:’ prefix in a search query, and can be modified by

flag set FLAG

and

flag unset 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 visibility)

COMPOSING

Opening the message Composer tab

To create a new mail message, press ⟨m⟩ (shortcuts.listing.) while viewing a mailbox. To reply to a mail, press ⟨R⟩ (shortcuts.envelope_view.). 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⟩ (shortcuts.general.) to enter mode and Esc key to exit.
  • At any time you may press ⟨e⟩ (shortcuts.composing.) 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 in your composing settings (You can return to meli at any time by pressing ⟨Ctrl-Z⟩)
  • 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 command again.

Attachments

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

Sending

Finally, pressing ⟨s⟩ (shortcuts.composing.) will send your message according to your settings (see meli.conf(5) COMPOSING, setting name 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 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.

CONTACTS

meli supports three 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.
  3. a mutt(1) compatible alias file in the option mutt_alias_file

See meli.conf(5) ACCOUNTS for the complete account contact configuration values.

MODES

NORMAL
is the default mode
COMMAND
commands are issued in COMMAND mode, by default started with ⟨:⟩ (shortcuts.general.) 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

Mail listing commands

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
[subject | date] asc | desc
sort mail listing
[subject | date] asc | desc
sorts only the first level of replies.
n
where n is a mailbox prefixed with the n number in the side menu for the current account
don't issue notifications for thread under cursor in thread listing
search mailbox with STRING query. Escape exits search results.
STRING
select threads matching STRING query.
Clear current selection.
seen | unseen
Set seen status of message.
FILEPATH MAILBOX_PATH
Import mail from file into given mailbox.
MAILBOX_PATH
Copy or move to other mailbox.
ACCOUNT MAILBOX_PATH
Copy or move to another account's mailbox.
Delete selected entries.
FILEPATH
Export selected threads to mboxcl2 file.
ACCOUNT MAILBOX_PATH
create mailbox with given path. Be careful with backends and separator sensitivity (eg IMAP)
ACCOUNT MAILBOX_PATH
subscribe to mailbox with given path
ACCOUNT MAILBOX_PATH
unsubscribe to mailbox with given path
ACCOUNT MAILBOX_PATH_SRC MAILBOX_PATH_DEST
rename mailbox
delete-mailbox ACCOUNT MAILBOX_PATH
deletes mailbox in the mail backend. This action is irreversible.

Mail view commands

EXECUTABLE [ARGS]
pipe pager contents to binary
EXECUTABLE [ARGS]
filter and display pager contents through command
select a filter from pager.named_filters configuration value (See meli.conf(5) PAGER for its syntax)
post in list of viewed envelope
unsubscribe automatically from list of viewed envelope
open list archive with xdg-open

Composing mail commands

MAILTO_ADDRESS
Opens a composer tab with initial values parsed from the mailto: address.
PATH
in composer, add PATH as an attachment
CMD ARGS
in composer, pipe CMD ARGS output into an attachment
Launch command defined in the configuration value file_picker_command in meli.conf(5) TERMINAL
CMD ARGS
Launch command CMD ARGS. The command should print file paths in stderr, separated by NULL bytes.
INDEX
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. See meli.conf(5) PGP for PGP configuration.
saves a copy of the draft in the Draft folder

Generic commands

opens envelope view in new tab
closes closeable tabs
KEY=VALUE
set environment variable KEY to VALUE
KEY
print environment variable KEY
Quits meli.
Reloads configuration but only if account configuration is unchanged. Useful if you want to reload some settings without restarting meli.

EXIT STATUS

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

1
catchall for general errors
101
process panic

ENVIRONMENT

Specifies the editor to use
Override the configuration file
When defined (regardless of its value), prevents the addition of color. The configuration value use_color overrides this.

FILES

meli uses the following parts of the XDG standard:

defaults to ~/.config/
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_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

STANDARDS

SEE ALSO

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

AUTHORS

Copyright 2017–2024 Manos Pitsidianakis <manos@pitsidianak.is>

Released under the GPL, version 3 or greater. This software carries no warranty of any kind. (See COPYING for full copyright and warranty notices.)

March 10, 2024 Debian