Terminal Email

Himalaya

CLIEmail client

Command-line email client written in Rust that lists, reads, sends and moves mail through shell commands with JSON output.

Himalaya is a stateless command-line email client: each action, such as listing envelopes or sending a message, is a separate shell command, so it fits scripts, editor plugins and other tools. It talks to IMAP, SMTP, JMAP, the Gmail API and Microsoft Graph, and reads Maildir and m2dir folders. Version 2 moved composing, PGP and OAuth token handling into separate Pimalaya tools (mml and ortie); a full-screen interface, himalaya-tui, is developed separately and is still pre-release.

Type
Email client
Interface
Command-line tools and prompts
Systems
Runs on Linux, macOS and Windows, builds from source on BSD. Not available for Android.
Language
Rust
License
MIT or Apache 2.0
Latest version
2.1.0
Maintained
Yes
Website
pimalaya.org
Source
github.com/pimalaya/himalaya
Documentation
github.com

Install

SystemSupportInstall
LinuxNative
pacmansudo pacman -S himalaya
Nixnix profile install github:pimalaya/himalaya
cargocargo install --locked --git https://github.com/pimalaya/himalaya.git
Install scriptcurl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | PREFIX=~/.local sh
macOSNative
Homebrewbrew install himalaya
cargocargo install --locked --git https://github.com/pimalaya/himalaya.git
WindowsNative
Scoopscoop install himalaya

Prebuilt x86_64 Windows binary on GitHub releases.

BSDBuild from source
cargocargo install --locked --git https://github.com/pimalaya/himalaya.git

No BSD package or prebuilt binary.

AndroidNot supported-

Protocols and features

Protocols
ProtocolHimalaya
IMAPYes
POP3No
SMTPYes
JMAPYes
MaildirYes
mboxNo
notmuchNo
Features
FeatureHimalaya
OpenPGPNo
S/MIMENo
OAuth2 sign-invia script
Threadsthrough the IMAP, JMAP and Gmail subcommands
Searchbuilt-in query syntax across backends; server-side for IMAP and JMAP
HTML mailNo
MouseNo
Multiple accountsYes
Offline usewith the Maildir backend and a sync tool such as mbsync
CalendarNo
ContactsNo
Vim-style keysNo
ConfigurationTOML file; interactive setup wizard

Pros and cons

Pros

  • Every action is a shell command with optional JSON output, suited to scripts
  • Native Windows binary through Scoop and GitHub releases
  • Also supports JMAP, the Gmail API and Microsoft Graph

Cons

  • No interactive interface; himalaya-tui is still pre-release
  • Composing rich MIME or PGP messages needs the separate mml tool
  • Version 2 dropped the notmuch and sendmail backends

Use Himalaya with Forward Email

A working setup for a Forward Email mailbox. Replace you@example.com with your alias and the password command with your own. The same settings work with any provider once the server names change.

~/.config/himalaya/config.toml
# Forward Email: IMAP over SSL/TLS (993), SMTP over SSL/TLS (465)
[accounts.forwardemail]
default = true
email = "you@example.com"
display-name = "Your Name"

imap.server = "imaps://imap.forwardemail.net:993"
imap.sasl.plain.username = "you@example.com"
imap.sasl.plain.password.command = "pass show email/forwardemail"

smtp.server = "smtps://smtp.forwardemail.net:465"
smtp.sasl.plain.username = "you@example.com"
smtp.sasl.plain.password.command = "pass show email/forwardemail"

# IMAP reports only the inbox role, so map the other folders by name
mailbox.alias.sent = "Sent Mail"
mailbox.alias.drafts = "Drafts"
mailbox.alias.trash = "Trash"
ProtocolServerPortSecurity
IMAPimap.forwardemail.net993SSL/TLS
POP3pop3.forwardemail.net995SSL/TLS
SMTPsmtp.forwardemail.net465SSL/TLS
SMTPsmtp.forwardemail.net587STARTTLS

Username: your full alias address, such as you@example.com. Password: the one shown by Generate Password next to the alias in your Forward Email account. Folders: INBOX, Drafts, Sent Mail, Trash, Spam and Archive.

Prefer no config at all? Forward Email's terminal app signs in with your account and has mail, calendar and contacts in one program.

Compare Himalaya

All Himalaya alternatives

Questions

Does Himalaya work on Windows?

Yes, it runs natively on Windows. Prebuilt x86_64 Windows binary on GitHub releases.

Does Himalaya support IMAP?

Yes, Himalaya connects to IMAP servers directly.

Is Himalaya open source?

Yes, under the MIT or Apache 2.0.

How do I use Himalaya with Forward Email?

Use the config in the Forward Email section on this page, saved as ~/.config/himalaya/config.toml, and replace the address and password with your own.

Sources