{"id":13469000,"url":"https://github.com/meli/meli","last_synced_at":"2025-09-06T12:07:28.685Z","repository":{"id":38216066,"uuid":"191206519","full_name":"meli/meli","owner":"meli","description":"terminal mail client, mirror of https://git.meli-email.org/meli/meli.git https://crates.io/crates/meli","archived":false,"fork":false,"pushed_at":"2025-08-19T12:47:22.000Z","size":12758,"stargazers_count":771,"open_issues_count":3,"forks_count":27,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-09-05T07:43:01.640Z","etag":null,"topics":["client","email","imap","imap-client","jmap","mail","mail-client","mbox","meli","mua","nntp","nntp-client","notmuch","rust","terminal","tui"],"latest_commit_sha":null,"homepage":"https://meli-email.org","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-06-10T16:37:01.000Z","updated_at":"2025-09-05T02:48:21.000Z","dependencies_parsed_at":"2024-01-19T22:42:16.018Z","dependency_job_id":"7f75adb5-9db0-485e-a690-630b1a170762","html_url":"https://github.com/meli/meli","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/meli/meli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meli%2Fmeli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meli%2Fmeli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meli%2Fmeli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meli%2Fmeli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meli","download_url":"https://codeload.github.com/meli/meli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meli%2Fmeli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273762041,"owners_count":25163409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","email","imap","imap-client","jmap","mail","mail-client","mbox","meli","mua","nntp","nntp-client","notmuch","rust","terminal","tui"],"created_at":"2024-07-31T15:01:23.920Z","updated_at":"2025-09-06T12:07:28.607Z","avatar_url":"https://github.com/meli.png","language":"Rust","funding_links":[],"categories":["Rust","Libraries","\u003ca name=\"email\"\u003e\u003c/a\u003eEmail"],"sub_categories":["Email"],"readme":"# meli  ![Established, created in 2017](https://img.shields.io/badge/Est.-2017-blue) ![Minimum Supported Rust Version](https://img.shields.io/badge/MSRV-1.70.0-blue) [![GitHub license](https://img.shields.io/github/license/meli/meli)](https://github.com/meli/meli/blob/master/COPYING) [![Crates.io](https://img.shields.io/crates/v/meli)](https://crates.io/crates/meli) [![IRC channel](https://img.shields.io/badge/irc.oftc.net-%23meli-blue)](ircs://irc.oftc.net:6697/%23meli)\n\n**BSD/Linux/macos terminal email client with support for multiple accounts and Maildir / mbox / notmuch / IMAP / JMAP / NNTP (Usenet).**\n\nTry an [old, outdated but online and interactive web demo](https://meli-email.org/wasm2.html \"online interactive web demo\") powered by WebAssembly!\n\n* Say hello on `#meli` on OFTC IRC, or,\n* [`#meli:matrix.org`](https://matrix.to/#/#meli:matrix.org) Matrix bridge (if operational)\n* [Mailing lists](https://lists.meli-email.org/)\n* Main repository \u003chttps://git.meli-email.org/meli/meli\u003e Report bugs and/or feature requests in [meli's issue tracker](https://git.meli-email.org/meli/meli/issues \"meli gitea issue tracker\")\u003cdetails\u003e\u003csummary\u003eOfficial git mirrors\u003c/summary\u003e\n  - \u003chttps://codeberg.org/meli/meli\u003e\n  - \u003chttps://github.com/meli/meli\u003e\n  - \u003chttps://ayllu-forge.org/meli/meli\u003e\n  - \u003chttps://gitlab.com/meli-project/meli\u003e\n  \u003c/details\u003e\n\n**Table of contents**:\n\n- [Install](#install)\n- [Build](#build)\n  - [Cargo Compile-time Features](#cargo-compile-time-features)\n- [Quick start](#quick-start)\n  - [Supported E-mail backends](#supported-e-mail-backends)\n  - [E-mail submission backends](#e-mail-submission-backends)\n  - [Non-exhaustive list of features](#non-exhaustive-list-of-features)\n  - [HTML Rendering](#html-rendering)\n- [Documentation](#documentation)\n\n## Install\n\n\u003ca href=\"https://repology.org/project/meli/versions\"\u003e\n  \u003cimg src=\"https://repology.org/badge/vertical-allrepos/meli.svg\" alt=\"Packaging status table by repology.org\" align=\"right\"\u003e\n\u003c/a\u003e\n\n- Crates.io with `cargo` on all supported systems and architectures \u003chttps://crates.io/crates/meli\u003e\n\n  ![Crates.io](https://img.shields.io/crates/v/meli)\n  ```sh\n  cargo install meli\n  ```\n  Install latest development snapshot from git repository:\n  ```sh\n  cargo install --git https://git.meli-email.org/meli/meli.git meli\n  ```\n- Official Debian (and Debian derivatives) packages \u003chttps://packages.debian.org/trixie/meli\u003e\n\n  ![Debian 13 package](https://repology.org/badge/version-for-repo/debian_13/meli.svg) ![Ubuntu 25.04 package](https://repology.org/badge/version-for-repo/ubuntu_25_04/meli.svg) ![Raspbian Testing package](https://repology.org/badge/version-for-repo/raspbian_testing/meli.svg)\n  ```sh\n  apt install meli\n  ```\n- AUR (archlinux) \u003chttps://aur.archlinux.org/packages/meli\u003e\n\n  ![AUR package](https://repology.org/badge/version-for-repo/aur/meli.svg)\n- OpenSUSE \u003chttps://build.opensuse.org/package/show/openSUSE:Factory/meli\u003e\n\n  ![openSUSE Tumbleweed package](https://repology.org/badge/version-for-repo/opensuse_tumbleweed/meli.svg)\n- Alpine Linux \u003chttps://pkgs.alpinelinux.org/packages?name=meli\u003e\n\n  ![Alpine Linux Edge package](https://repology.org/badge/version-for-repo/alpine_edge/meli.svg)\n  ```sh\n  apk install meli\n  ```\n- NetBSD with pkgsrc \u003chttps://pkgsrc.se/mail/meli\u003e\n\n  ![pkgsrc current package](https://repology.org/badge/version-for-repo/pkgsrc_current/meli.svg)\n- OpenBSD ports \u003chttps://openports.pl/path/mail/meli\u003e\n\n  ![OpenBSD port](https://repology.org/badge/version-for-repo/openbsd/meli.svg)\n- macOS with\n  - Homebrew \u003chttps://formulae.brew.sh/formula/meli\u003e\n\n    ![Homebrew package](https://repology.org/badge/version-for-repo/homebrew/meli.svg)\n    ```sh\n    brew install meli\n    ```\n  - MacPorts \u003chttps://ports.macports.org/port/meli/\u003e\n\n    ![MacPorts package](https://repology.org/badge/version-for-repo/macports/meli.svg)\n    ```sh\n    port install meli\n    ```\n- Nix with Nixpkgs \u003chttps://search.nixos.org/packages?query=meli\u003e\n\n  ![nixpkgs unstable package](https://repology.org/badge/version-for-repo/nix_unstable/meli.svg)\n- [Pre-built debian package, static binaries](https://github.com/meli/meli/releases/ \"github releases for meli\") for \u003ccode\u003eamd64\u003c/code\u003e, \u003ccode\u003earm64\u003c/code\u003e architectures\n\n## Build\n\nRun `make` or `cargo build --release --bin meli`.\n\nSee `make help` output for information on how to use the `Makefile`.\n\nFor detailed building instructions, see [`BUILD.md`](./BUILD.md)\n\n### Cargo Compile-time Features\n\n`meli` supports opting in and out of features at compile time with cargo features.\n\nThe contents of the `default` feature are:\n\n```toml\ndefault = [\"sqlite3\", \"notmuch\", \"smtp\", \"dbus-notifications\", \"gpgme\", \"cli-docs\", \"jmap\", \"static\"]\n```\n\nA list of all the features and a description for each follows:\n\n| Feature flag                                                  | Dependencies                                                                                 | Notes                                                                                                                                                                                             |\n|---------------------------------------------------------------|----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| \u003ca name=\"notmuch-feature\"\u003e`notmuch`\u003c/a\u003e                       | `maildir` feature                                                                            | Provides the *notmuch* backend                                                                                                                                                                    |\n| \u003ca name=\"jmap-feature\"\u003e`jmap`\u003c/a\u003e                             | `http` feature, `url` crate with `serde` feature                                             | Provides the *JMAP* backend                                                                                                                                                                       |\n| \u003ca name=\"smtp-feature\"\u003e`smtp`\u003c/a\u003e                             | `tls` feature                                                                                | Integrated async *SMTP* client                                                                                                                                                                    |\n| \u003ca name=\"sqlite3-feature\"\u003e`sqlite3`\u003c/a\u003e                       | `rusqlite` crate with `bundled-full` feature                                                 | Used in caches                                                                                                                                                                                    |\n| \u003ca name=\"sqlite3-static-feature\"\u003e`sqlite3-static`\u003c/a\u003e         | `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.                                                          |\n| \u003ca name=\"smtp-trace-feature\"\u003e`smtp-trace`\u003c/a\u003e                 | `smtp` feature                                                                               | Connection trace logs on the `trace` logging level                                                                                                                                                |\n| \u003ca name=\"gpgme-feature\"\u003e`gpgme`\u003c/a\u003e                           |                                                                                              | *GPG* use by dynamically loading `libgpgme.so`                                                                                                                                                    |\n| \u003ca name=\"tls-static-feature\"\u003e`tls-static`\u003c/a\u003e                 | `native-tls` crate with `vendored` feature                                                   | Links with `OpenSSL` statically where it's used                                                                                                                                                   |\n| \u003ca name=\"http-static-feature\"\u003e`http-static`\u003c/a\u003e               | `isahc` crate with `static-curl` feature                                                     | Links with `curl` statically                                                                                                                                                                      |\n| \u003ca name=\"dbus-notifications-feature\"\u003e`dbus-notifications`\u003c/a\u003e | `notify-rust` dependency                                                                     | Uses DBus notifications                                                                                                                                                                           |\n| \u003ca name=\"dbus-static-feature\"\u003e`dbus-static`\u003c/a\u003e               | `notify-rust` dependency and enableds its `d_vendored` feature                               | Includes the dbus library statically.                                                                                                                                                             |\n| \u003ca name=\"cli-docs-feature\"\u003e`cli-docs`\u003c/a\u003e                     | `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]` |\n| \u003ca name=\"libz-static-feature\"\u003e`libz-static`\u003c/a\u003e               | `libz-sys` dependency and enables its `static` feature                                       | Allows for the transitive dependency libz (from `curl`) to be linked statically.                                                                                                                  |\n| \u003ca name=\"static-feature\"\u003e`static`\u003c/a\u003e                         | enables `tls-static`, `http-static`, `sqlite3-static`, `dbus-static`, `libz-static` features |                                                                                                                                                                                                   |\n\n## Quick start\n\n```sh\n# Create configuration file in ${XDG_CONFIG_HOME}/meli/config.toml:\n$ meli create-config\n# Edit configuration in ${EDITOR} or ${VISUAL}:\n$ meli edit-config\n# Optionally, install manual pages if installed via cargo:\n$ meli install-man\n# Ready to go.\n$ meli\n# You can read any manual page with the CLI subcommand `man`:\n$ meli man meli.7\n# See help output for all options and subcommands.\n$ meli --help\n```\n\nSee a comprehensive tour of `meli` in the manual page [`meli(7)`](./meli/docs/meli.7).\n\nSee also the [Quickstart tutorial](https://meli-email.org/documentation.html#quick-start) online.\n\nAfter installing `meli`, see `meli(1)`, `meli.conf(5)`, `meli(7)` and `meli-themes(5)` for documentation.\nSample configuration and theme files can be found in the `meli/docs/samples/` subdirectory.\nExamples for configuration file settings can be found in `meli.conf.examples(5)`\nManual pages are also [hosted online](https://meli-email.org/documentation.html \"meli documentation\").\n`meli` by default looks for a configuration file in this location: `${XDG_CONFIG_HOME}/meli/config.toml`.\n\nYou can run meli with arbitrary configuration files by setting the `${MELI_CONFIG}` environment variable to their locations, i.e.:\n\n```sh\nMELI_CONFIG=./test_config cargo run\n```\n\nSee [`meli(7)`](./meli/docs/meli.7) for an extensive tutorial and [`meli.conf(5)`](./meli/docs/meli.conf.5) for all configuration values.\n\n| Main view | Compact main view | Compose with embed terminal editor |\n|-----------|-------------------|------------------------------------|\n| ![Main view screenshot](./meli/docs/screenshots/main.webp \"mail meli view screenshot\") | ![Compact main view screenshot](./meli/docs/screenshots/compact.webp \"compact main view screenshot\") | ![Compose with embed terminal editor screenshot](./meli/docs/screenshots/compose.webp \"composing view screenshot\") |\n\n### Supported E-mail backends\n\n| Protocol      | Support    |\n|---------------|------------|\n| IMAP          | full       |\n| Maildir       | full       |\n| notmuch       | full[^0]   |\n| mbox          | read-only  |\n| JMAP          | functional |\n| NNTP / Usenet | functional |\n\n[^0]: there's no support for searching through all email directly, you'd have to\n      create a mailbox with a notmuch query that returns everything and search\n      inside that mailbox.\n\n### E-mail submission backends\n\n- SMTP\n- Pipe to shell script\n- Server-side submission when supported\n\n### Non-exhaustive list of features\n\n- TLS\n- email threading support\n- multithreaded, async operation\n- optionally run your editor of choice inside meli, with an embedded\n  xterm-compatible terminal emulator\n- plain text configuration in TOML\n- ability to open emails in UI tabs and switch to them\n- optional sqlite3 index search\n- override almost any setting per mailbox, per account\n- contact list (+read-only vCard and mutt alias file support)\n- forced UTF-8 (other encodings are read-only)\n- configurable shortcuts\n- theming\n- `NO_COLOR` support\n- ascii-only drawing characters option\n- view text/html attachments through an html filter command (w3m by default)\n- pipe attachments/mail to stuff\n- use external attachment file picker instead of typing in an attachment's full path\n- GPG signing, encryption, signing + encryption\n- GPG signature verification\n\n### HTML Rendering\n\nHTML rendering is achieved using [w3m](https://github.com/tats/w3m) by default.\nYou can use the `pager.html_filter` setting to override this (for more details you can consult [`meli.conf(5)`](./meli/docs/meli.conf.5)).\n\n\n## Documentation\n\nSee a comprehensive tour of `meli` in the manual page [`meli(7)`](./meli/docs/meli.7).\n\nSee also the [Quickstart tutorial](https://meli-email.org/documentation.html#quick-start) online.\n\nAfter installing `meli`, see `meli(1)`, `meli.conf(5)`, `meli(7)` and `meli-themes(5)` for documentation.\nSample configuration and theme files can be found in the `meli/docs/samples/` subdirectory.\nManual pages are also [hosted online](https://meli-email.org/documentation.html \"meli documentation\").\n\n`meli` by default looks for a configuration file in this location: `${XDG_CONFIG_HOME}/meli/config.toml`\n\nYou can run meli with arbitrary configuration files by setting the `${MELI_CONFIG}` environment variable to their locations, or use the `[-c, --config]` argument:\n\n```sh\nMELI_CONFIG=./test_config meli\n```\n\nor\n\n```sh\nmeli -c ./test_config\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeli%2Fmeli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeli%2Fmeli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeli%2Fmeli/lists"}