Our take
- Activity
- 71
- Community
- 47
- Issues
- 66
- Pull requests
- 66
+42 stars in the last 8 days
Overview
Himalaya is a command-line email client for people who prefer composing shell commands to working in a full-screen mail interface. It provides common operations such as listing mailboxes, searching messages, managing flags, reading and sending mail, and downloading attachments.
Its shared commands work across supported backends, while backend-specific commands expose native capabilities. This makes it useful both for interactive terminal work and for integrating email tasks into scripts. See the official repository for backend and configuration details.
Key Features
- Shared commands for mailboxes, envelopes, flags, messages, and attachments.
- Supports IMAP, SMTP, ManageSieve, JMAP, Gmail REST API, and Microsoft Graph.
- Supports Maildir, m2dir, mbox, and pimdir mail stores.
- Multi-account TOML configuration, with a setup wizard that can discover service settings.
- JSON output for use in scripts and other tools.
- Supports shell commands as sources for passwords and access tokens.
- Offers protocol-specific commands alongside backend-agnostic operations.
Use Cases
- Shell-oriented users can handle routine email tasks without leaving the terminal.
- Administrators can automate mailbox checks and message operations using CLI commands and JSON output.
- Users with multiple email accounts or services can manage them through one client and a shared command interface.
- People using local mail stores can access supported Maildir, m2dir, mbox, or pimdir data from the command line.
Getting Started
Install the latest binary with the project installer:
curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | PREFIX=~/.local sh
Run himalaya to start configuration. See the README for other installation methods, setup examples, and command usage.
Considerations
Himalaya is a CLI, not a full-screen terminal mail client. Each invocation opens a fresh TCP, TLS, and authentication session, so repeated commands can incur connection setup overhead. Feature availability depends on Cargo features, and some services require app passwords, external OAuth token helpers, or companion software such as Proton Bridge. The README documents Rust 1.89 or later as the requirement for building from source.
Found this useful?
Share it with someone who would like himalaya.