meli

terminal mail client, mirror of https://git.meli-email.org/meli/meli.git https://crates.io/crates/meli

https://github.com/meli/meli

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.6%) to scientific vocabulary

Keywords

client email imap imap-client jmap mail mail-client mbox meli mua nntp nntp-client notmuch rust terminal tui
Last synced: 4 months ago · JSON representation

Repository

terminal mail client, mirror of https://git.meli-email.org/meli/meli.git https://crates.io/crates/meli

Basic Info
  • Host: GitHub
  • Owner: meli
  • License: gpl-3.0
  • Language: Rust
  • Default Branch: master
  • Homepage: https://meli-email.org
  • Size: 11.7 MB
Statistics
  • Stars: 750
  • Watchers: 14
  • Forks: 26
  • Open Issues: 4
  • Releases: 21
Topics
client email imap imap-client jmap mail mail-client mbox meli mua nntp nntp-client notmuch rust terminal tui
Created over 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Codemeta

README.md

meli Established, created in 2017 Minimum Supported Rust Version GitHub license Crates.io IRC channel

BSD/Linux/macos terminal email client with support for multiple accounts and Maildir / mbox / notmuch / IMAP / JMAP / NNTP (Usenet).

Try an old, outdated but online and interactive web demo powered by WebAssembly!

Table of contents:

Install

Packaging status table by repology.org

Crates.io sh cargo install meli Install latest development snapshot from git repository: sh cargo install --git https://git.meli-email.org/meli/meli.git meli - Official Debian (and Debian derivatives) packages https://packages.debian.org/trixie/meli

Debian 13 package Ubuntu 25.04 package Raspbian Testing package sh apt install meli - AUR (archlinux) https://aur.archlinux.org/packages/meli

AUR package - OpenSUSE https://build.opensuse.org/package/show/openSUSE:Factory/meli

openSUSE Tumbleweed package - Alpine Linux https://pkgs.alpinelinux.org/packages?name=meli

Alpine Linux Edge package sh apk install meli - NetBSD with pkgsrc https://pkgsrc.se/mail/meli

pkgsrc current package - OpenBSD ports https://openports.pl/path/mail/meli

OpenBSD port - macOS with - Homebrew https://formulae.brew.sh/formula/meli

![Homebrew package](https://repology.org/badge/version-for-repo/homebrew/meli.svg)
```sh
brew install meli
```

nixpkgs unstable package - Pre-built debian package, static binaries for amd64, arm64 architectures

Build

Run make or cargo build --release --bin meli.

See make help output for information on how to use the Makefile.

For detailed building instructions, see BUILD.md

Cargo Compile-time Features

meli supports opting in and out of features at compile time with cargo features.

The contents of the default feature are:

toml default = ["sqlite3", "notmuch", "smtp", "dbus-notifications", "gpgme", "cli-docs", "jmap", "static"]

A list of all the features and a description for each follows:

| Feature flag | Dependencies | Notes | |---------------------------------------------------------------|----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | notmuch | maildir feature | Provides the notmuch backend | | jmap | http feature, url crate with serde feature | Provides the JMAP backend | | smtp | tls feature | Integrated async SMTP client | | sqlite3 | rusqlite crate with bundled-full feature | Used in caches | | sqlite3-static | rusqlite crate with bundled-full feature | Same as sqlite3 feature but provided for consistency and in case sqlite3 feature stops bundling libsqlite3 statically in the future. | | smtp-trace | smtp feature | Connection trace logs on the trace logging level | | gpgme | | GPG use by dynamically loading libgpgme.so | | tls-static | native-tls crate with vendored feature | Links with OpenSSL statically where it's used | | http-static | isahc crate with static-curl feature | Links with curl statically | | dbus-notifications | notify-rust dependency | Uses DBus notifications | | dbus-static | notify-rust dependency and enableds its d_vendored feature | Includes the dbus library statically. | | cli-docs | flate2 dependency | Includes the manpage documentation compiled by either mandoc or man binary to plain text in meli's command line. Embedded documentation can be viewed with the subcommand meli man [PAGE] | | libz-static | libz-sys dependency and enables its static feature | Allows for the transitive dependency libz (from curl) to be linked statically. | | static | enables tls-static, http-static, sqlite3-static, dbus-static, libz-static features | |

Quick start

```sh

Create configuration file in ${XDGCONFIGHOME}/meli/config.toml:

$ meli create-config

Edit configuration in ${EDITOR} or ${VISUAL}:

$ meli edit-config

Optionally, install manual pages if installed via cargo:

$ meli install-man

Ready to go.

$ meli

You can read any manual page with the CLI subcommand man:

$ meli man meli.7

See help output for all options and subcommands.

$ meli --help ```

See a comprehensive tour of meli in the manual page meli(7).

See also the Quickstart tutorial online.

After installing meli, see meli(1), meli.conf(5), meli(7) and meli-themes(5) for documentation. Sample configuration and theme files can be found in the meli/docs/samples/ subdirectory. Examples for configuration file settings can be found in meli.conf.examples(5) Manual pages are also hosted online. meli by default looks for a configuration file in this location: ${XDG_CONFIG_HOME}/meli/config.toml.

You can run meli with arbitrary configuration files by setting the ${MELI_CONFIG} environment variable to their locations, i.e.:

sh MELI_CONFIG=./test_config cargo run

See meli(7) for an extensive tutorial and meli.conf(5) for all configuration values.

| Main view | Compact main view | Compose with embed terminal editor | |-----------|-------------------|------------------------------------| | Main view screenshot | Compact main view screenshot | Compose with embed terminal editor screenshot |

Supported E-mail backends

| Protocol | Support | |---------------|------------| | IMAP | full | | Maildir | full | | notmuch | full[^0] | | mbox | read-only | | JMAP | functional | | NNTP / Usenet | functional |

[^0]: there's no support for searching through all email directly, you'd have to create a mailbox with a notmuch query that returns everything and search inside that mailbox.

E-mail submission backends

  • SMTP
  • Pipe to shell script
  • Server-side submission when supported

Non-exhaustive list of features

  • TLS
  • email threading support
  • multithreaded, async operation
  • optionally run your editor of choice inside meli, with an embedded xterm-compatible terminal emulator
  • plain text configuration in TOML
  • ability to open emails in UI tabs and switch to them
  • optional sqlite3 index search
  • override almost any setting per mailbox, per account
  • contact list (+read-only vCard and mutt alias file support)
  • forced UTF-8 (other encodings are read-only)
  • configurable shortcuts
  • theming
  • NO_COLOR support
  • ascii-only drawing characters option
  • view text/html attachments through an html filter command (w3m by default)
  • pipe attachments/mail to stuff
  • use external attachment file picker instead of typing in an attachment's full path
  • GPG signing, encryption, signing + encryption
  • GPG signature verification

HTML Rendering

HTML rendering is achieved using w3m by default. You can use the pager.html_filter setting to override this (for more details you can consult meli.conf(5)).

Documentation

See a comprehensive tour of meli in the manual page meli(7).

See also the Quickstart tutorial online.

After installing meli, see meli(1), meli.conf(5), meli(7) and meli-themes(5) for documentation. Sample configuration and theme files can be found in the meli/docs/samples/ subdirectory. Manual pages are also hosted online.

meli by default looks for a configuration file in this location: ${XDG_CONFIG_HOME}/meli/config.toml

You can run meli with arbitrary configuration files by setting the ${MELI_CONFIG} environment variable to their locations, or use the [-c, --config] argument:

sh MELI_CONFIG=./test_config meli

or

sh meli -c ./test_config

Owner

  • Name: meli
  • Login: meli
  • Kind: organization

terminal mail user agent

CodeMeta (codemeta.json)

{
  "@context": [
    "https://doi.org/10.5063/schema/codemeta-2.0",
    "http://schema.org/"
  ],
  "@type": "SoftwareSourceCode",
  "applicationCategory": "E-mail client",
  "author": [
    {
      "@id": "https://pitsidianak.is/",
      "@type": "Person",
      "name": "epilys",
      "email": "manos@pitsidianak.is",
      "familyName": "Pitsidianakis",
      "givenName": "Manos",
      "url": "https://pitsidianak.is/"
    }
  ],
  "codeRepository": "https://git.meli-email.org/meli/meli.git",
  "dateCreated": "2016-04-25",
  "dateModified": "2025-04-21",
  "datePublished": "2017-07-23",
  "description": "BSD/Linux/macos terminal email client with support for multiple accounts and Maildir / mbox / notmuch / IMAP / JMAP / NNTP (Usenet).",
  "downloadUrl": "https://git.meli-email.org/meli/meli/archive/v0.8.12.tar.gz",
  "identifier": "https://meli-email.org/",
  "isPartOf": "https://meli-email.org/",
  "keywords": [
    "e-mail",
    "email",
    "mail",
    "terminal user interface",
    "client",
    "mua",
    "mail user agent",
    "smtp",
    "imap",
    "jmap",
    "mbox",
    "maildir",
    "nntp"
  ],
  "license": [
    "https://spdx.org/licenses/EUPL-1.2",
    "https://spdx.org/licenses/GPL-3.0-or-later"
  ],
  "name": "meli",
  "operatingSystem": [
    "Linux",
    "macOS",
    "OpenBSD",
    "NetBSD"
  ],
  "programmingLanguage": "Rust",
  "relatedLink": [
    "https://lists.meli-email.org/",
    "https://codeberg.org/meli/meli",
    "https://github.com/meli/meli",
    "https://gitlab.com/meli-project/meli",
    "https://crates.io/crates/meli",
    "https://packages.debian.org/trixie/meli",
    "https://pkgsrc.se/mail/meli",
    "https://openports.pl/path/mail/meli",
    "https://ports.macports.org/port/meli/",
    "https://search.nixos.org/packages?query=meli"
  ],
  "version": "0.8.12",
  "contIntegration": "https://git.meli-email.org/meli/meli/actions",
  "developmentStatus": "active",
  "issueTracker": "https://git.meli-email.org/meli/meli/issues",
  "readme": "https://git.meli-email.org/meli/meli/raw/tag/v0.8.12/README.md",
  "buildInstructions": "https://git.meli-email.org/meli/meli/raw/tag/v0.8.12/BUILD.md"
}

GitHub Events

Total
  • Release event: 4
  • Watch event: 99
  • Delete event: 48
  • Issue comment event: 9
  • Push event: 37
  • Pull request event: 4
  • Fork event: 5
  • Create event: 6
Last Year
  • Release event: 4
  • Watch event: 99
  • Delete event: 48
  • Issue comment event: 9
  • Push event: 37
  • Pull request event: 4
  • Fork event: 5
  • Create event: 6

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 27
  • Average time to close issues: N/A
  • Average time to close pull requests: 24 days
  • Total issue authors: 0
  • Total pull request authors: 6
  • Average comments per issue: 0
  • Average comments per pull request: 1.78
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 12
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 2.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • dependabot[bot] (7)
  • granquet (6)
  • teto (2)
  • rudihorn (1)
  • gfreezy (1)
  • astynax (1)
  • epilys (1)
  • asdf8dfafjk (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (7)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 16
proxy.golang.org: github.com/meli/meli
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 5 months ago

Dependencies

Cargo.lock cargo
  • 249 dependencies
Cargo.toml cargo
  • regex 1 development
  • async-task ^4.2.0
  • bincode ^1.3.0
  • bitflags 1.0
  • crossbeam ^0.8
  • flate2 1.0.16
  • futures 0.3.5
  • indexmap ^1.6
  • libc 0.2.125
  • linkify ^0.8
  • melib 0.7.2
  • nix ^0.24
  • notify 4.0.1
  • num_cpus 1.12.0
  • pcre2 0.2.3
  • serde 1.0.71
  • serde_derive 1.0.71
  • serde_json 1.0
  • signal-hook ^0.3
  • signal-hook-registry 1.2.0
  • smallvec ^1.5.0
  • structopt 0.3.14
  • svg_crate ^0.10
  • termion 1.5.1
  • toml 0.5.6
  • unicode-segmentation 1.2.1
  • xdg 2.1.0
fuzz/Cargo.lock cargo
  • 239 dependencies
melib/Cargo.toml cargo
  • mailin-embedded 0.7 development
  • stderrlog ^0.5 development
  • async-stream ^0.3
  • base64 ^0.13
  • bincode ^1.3.0
  • bitflags 1.0
  • data-encoding 2.1.1
  • encoding 0.2.33
  • flate2 1.0.16
  • futures 0.3.5
  • indexmap ^1.5
  • isahc ^1.7.2
  • libc 0.2.125
  • libloading ^0.7
  • native-tls 0.2.3
  • nix ^0.24
  • nom 7
  • notify 4.0.15
  • rusqlite ^0.28
  • serde 1.0.71
  • serde_derive 1.0.71
  • serde_json 1.0
  • smallvec ^1.5.0
  • smol 1.0.0
  • unicode-segmentation 1.2.1
  • uuid ^1
  • xdg 2.1.0
  • xdg-utils ^0.4.0
fuzz/Cargo.toml cargo
meli/Cargo.toml cargo
  • flate2 1 development
  • regex 1 development
  • tempfile 3.3 development
  • async-task ^4.2.0
  • bitflags 2.4
  • crossbeam ^0.8
  • flate2 1
  • futures 0.3.5
  • indexmap ^1.6
  • libc 0.2.125
  • linkify ^0.8
  • melib 0.8.2
  • nix ^0.24
  • notify 4.0.1
  • num_cpus 1.12.0
  • pcre2 0.2.3
  • serde 1.0.71
  • serde_derive 1.0.71
  • serde_json 1.0
  • signal-hook ^0.3
  • signal-hook-registry 1.2.0
  • smallvec ^1.5.0
  • structopt 0.3.14
  • svg_crate ^0.13
  • termion 1.5.1
  • toml 0.5.6
  • xdg 2.1.0
tools/Cargo.toml cargo
tools/Cargo.lock cargo
  • 260 dependencies