{"id":13894291,"url":"https://github.com/lumail/lumail","last_synced_at":"2025-07-17T09:31:45.769Z","repository":{"id":24203661,"uuid":"27595140","full_name":"lumail/lumail","owner":"lumail","description":" A console-based mail-client with integrated Lua scripting support. ","archived":true,"fork":false,"pushed_at":"2019-06-26T05:41:44.000Z","size":2567,"stargazers_count":192,"open_issues_count":9,"forks_count":15,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-08-07T18:29:27.103Z","etag":null,"topics":["c-plus-plus","console","email","gpg","imap","lua","mail-client"],"latest_commit_sha":null,"homepage":"https://lumail.org/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lumail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"skx","custom":"https://steve.fi/donate/"}},"created_at":"2014-12-05T14:34:31.000Z","updated_at":"2024-05-31T03:34:34.000Z","dependencies_parsed_at":"2022-08-22T14:30:35.390Z","dependency_job_id":null,"html_url":"https://github.com/lumail/lumail","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lumail%2Flumail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lumail%2Flumail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lumail%2Flumail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lumail%2Flumail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lumail","download_url":"https://codeload.github.com/lumail/lumail/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226248226,"owners_count":17595158,"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","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":["c-plus-plus","console","email","gpg","imap","lua","mail-client"],"created_at":"2024-08-06T18:01:28.747Z","updated_at":"2024-11-24T23:30:23.559Z","avatar_url":"https://github.com/lumail.png","language":"C++","readme":"\n[![Build Status](https://travis-ci.org/lumail/lumail.png)](https://travis-ci.org/lumail/lumail)\n[![license](https://img.shields.io/github/license/lumail/lumail.svg)](https://github.com/lumail/lumail/blob/master/LICENSE)\n\n\nlumail\n=======\n\n`lumail` is a modern console-based email-client, with fully integrated scripting, implemented in the Lua programming language.\n\nAlthough primarily developed and tested against GNU/Linux it should run upon Mac OS X, and FreeBSD.  If your system isn't supported, and is Unix-like then this is a bug which should be fixed.\n\n`lumail` is primarily designed to operate against local `Maildir`-hierarchies, but IMAP support is available, as well as support for GPG for security.\n\nThis `README.md` file contains brief details of the project, with more complete documentation provided on the homepage. The following links on the project website should be a good starting point:\n\n* [Downloading lumail](https://lumail.org/download/)\n* [Installing lumail](https://lumail.org/install/)\n* [Getting started with lumail](https://lumail.org/getting-started/)\n* [The API documentation](https://lumail.org/api/)\n   * [Sample Code Snippets](https://lumail.org/examples/).\n\n\n## Overview\n\nLumail is a console-based mail client, which is __modal__.  A modal client\nmeans that you're always in one of a small number of states, or modes:\n\n* `maildir`-mode\n    * Allows you to see a list of message-folders.\n* `index`-mode\n    * Allows you to view a list of messages.\n       * i.e. The contents of a folder.\n* `message`-mode\n    * Allows you to view a single message.\n       * `attachment`-mode is related, allowing you to view the attachments associated with a particular message.\n* `lua`-mode.\n    * This mode displays diagnostics and other internal details.\n* `keybinding`-mode.\n    * Shows you the keybindings which are in-use.\n    * Press `H` to enter this mode, and `q` to return from it.\n\n\n## Compilation \u0026 Installation\n-----------------------------\n\nRunning `make install` will install the binary, the libraries that we bundle, and the perl-utilities which are required for IMAP-operation.\n\nIf you wish to install manually then please copy:\n\n* The contents of `lib/` to `/usr/lib/lumail`.\n* The contents of `perl.d` to `/usr/share/lumail/`.\n\nYou can also see [the notes below](#running-from-git-checkout) about running directly from a `git`-checkout of our repository.  Note that if you wish to [use IMAP](IMAP.md) you'll need to install the extra dependencies for that.\n\n\n## Configuration\n\nOnce installed you'll want to create your own personal configuration file.\n\nTo allow smooth upgrades it is __recommended__ you do not edit the global configuration file `/etc/lumail/lumail.lua`.  Instead you should copy the sample user-configuration file into place:\n\n      $ mkdir ~/.lumail/\n      $ cp user.config.lua ~/.lumail/lumail.lua\n\nIf you prefer you can name your configuration file after the hostname of the local system - this is useful if you store your dotfiles under revision control, and share them:\n\n      $ mkdir ~/.lumail/\n      $ cp user.config.lua ~/.lumail/$(hostname --fqdn).lua\n\nThe defaults in [the per-user configuration file](user.config.lua) should be adequately documented, but in-brief you'll want to ensure you set at least the following:\n\n     -- Set the location of your Maildir folders, and your sent-folder\n     Config:set( \"maildir.prefix\", os.getenv( \"HOME\" ) .. \"/Maildir/\" );\n     Config:set( \"global.sent-mail\", os.getenv( \"HOME\" ) .. \"/Maildir/sent/\" )\n\n     -- Set your outgoing mail-handler, and email-address:\n     Config:set( \"global.mailer\", \"/usr/lib/sendmail -t\" )\n     Config:set( \"global.sender\", \"Some User \u003csteve@example.com\u003e\" )\n\n     -- Set your preferred editor\n     Config:set( \"global.editor\", \"vim  +/^$ ++1 '+set tw=72'\" )\n\n\n\n### Running from `git`-checkout\n\nIf you wish to run directly from a `git`-checkout you'll need to add some\ncommand-line flags to change the default behavior:\n\n* Change the location from which Lua libraries are fetched.\n* Disable the loading of the global configuration-files.\n\nThis can be achieved like so:\n\n     $ ./lumail2 --load-path=$(pwd)/lib/ --no-default --load-file ./global.config.lua --load-file ./user.config.lua\n\n\n## Using Lumail\n\nBy default you'll be in the `maildir`-mode, and you can navigate with `j`/`k`, and select items with `ENTER`.\n\nFor a quick-start you can use the following bindings:\n\n* `TAB` - Toggle the display of the status-panel.\n   * The panel displays brief messages when \"things\" happen.\n   * `P` - Toggle the size of the panel.\n   * `ctrl-p` enters you into a mode were you can view/scroll through past messages.\n* `H` - Shows the keybindings which are configured.\n* `M` - See your list of folders.\n* `q` - Always takes you out of the current mode and into the previous one.\n   * Stopping at the folder-list (`maildir`-mode).\n* `Q` - Exit.\n\n\n## Further Notes\n\nFurther documentation can be found upon the [project homepage](https://lumail.org/), but there are also some notes available within this repository:\n\n* [API Documentation](API.md).\n   * Documents the Lua classes.\n* [Contributor Guide](CONTRIBUTING.md).\n* [Notes on IMAP](IMAP.md).\n* [Notes on GPG Support](GPG.md).\n* [Notes on implementation \u0026 structure](HACKING.md).\n   * See also the [experiments repository](https://github.com/lumail/experiments) where some standalone code has been isolated for testing/learning purposes.\n\n\nSteve\n--\n","funding_links":["https://github.com/sponsors/skx","https://steve.fi/donate/"],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flumail%2Flumail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flumail%2Flumail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flumail%2Flumail/lists"}