himalaya
CLI to manage emails
TLDR
SYNOPSIS
himalaya [options] command subcommand [arguments]
DESCRIPTION
himalaya is a command-line interface for managing emails. Unlike TUI email clients like mutt or aerc, himalaya is a pure CLI with no event loop — you interact with your emails using shell commands in a stateless way. This makes it composable with pipes and scripts, and freely integrable with other CLI tools.It supports multiple backends including IMAP, SMTP, Maildir, and Notmuch, with features like multi-account support, PGP encryption, and OAuth 2.0 authentication. Himalaya is designed to extract email logic into a simple CLI API that can be used directly from the terminal, from scripts, and from UIs.
PARAMETERS
-a, --account name
Use a specific email account.envelope list
List email envelopes in the current folder.envelope watch
Watch for new envelope changes in real time.message read id
Read a specific email message.message write
Compose a new email message.message reply id
Reply to an email message.message forward id
Forward an email message.message delete id
Delete an email message.folder list
List mail folders.folder create name
Create a new mail folder.attachment download id
Download attachments from a message.
CONFIGURATION
Configuration is stored in $XDG_CONFIG_HOME/himalaya/config.toml (or ~/.config/himalaya/config.toml) and defines accounts with backend settings for IMAP, SMTP, Maildir, or Notmuch. Run himalaya account configure for an interactive setup wizard.
CAVEATS
Initial configuration requires manual setup of mail accounts. OAuth 2.0 setup may require additional steps depending on the provider. PGP encryption requires GPG to be installed and configured.
HISTORY
himalaya was created by Clément DOUIN as part of the Pimalaya project and is written in Rust. It was designed as a Unix-philosophy approach to email, providing simple composable commands rather than a monolithic TUI application.
