A simple, lightweight, web-based email client written in PHP that needs no database.
pimalaya/himalaya
A command-line email client written in Rust for managing mail over IMAP, SMTP, JMAP, Gmail and Microsoft Graph.
Open-source alternative to:Thunderbird
Outlook
- Stars
- 7,605
- Forks
- 267
- Open issues
- 6
- Last commit
- yesterday
What is it?
Himalaya is a command-line interface for reading, searching, sending and organizing email. Instead of an interactive terminal interface, it runs as stateless shell commands, so mail can be handled from scripts or combined with other command-line tools. It offers a shared API for mailboxes, envelopes, flags, messages and attachments, plus protocol-specific subcommands that expose each backend's full surface.
The project supports IMAP, SMTP, ManageSieve, JMAP, the Gmail REST API and Microsoft Graph, and can read local Maildir, m2dir and mbox stores. Authentication covers common SASL mechanisms, OAuth bearer tokens supplied by an external helper, and secrets pulled from commands such as pass. Account discovery uses PACC, Thunderbird autoconfiguration, SRV records and JMAP session resolution, and configuration lives in a TOML file with multi-account support.
Himalaya is written in Rust and gates backend support behind cargo features. Pre-built binaries are available for several package managers, and output can be emitted as JSON with --json.
Key features
- 01Shared commands for mailboxes, envelopes, flags, messages and attachments across backends
- 02Supports IMAP, SMTP, ManageSieve, JMAP, Gmail REST API and Microsoft Graph
- 03Reads local Maildir, m2dir and mbox mail stores
- 04Automatic account discovery via PACC, Thunderbird autoconfig and SRV records
- 05SOCKS5 and HTTP proxy support, plus TOML multi-account configuration
- 06JSON output via --json for scripting
Use cases
- Searching and archiving mail from shell scripts or cron jobs
- Managing a mailbox over SSH without a graphical client
- Sending mail from scripts or build pipelines through SMTP
- Managing Sieve filtering rules on a mail server
Quick start
- 1
Install via Homebrew
brew install himalaya - 2
Run himalaya; the wizard asks for your email address and discovers the account settings
himalaya
Things to know
- Gmail requires an app password with 2-step verification, or an external OAuth token helper such as ortie.
- Outlook requires OAuth 2.0 via an external helper such as ortie, since basic authentication is retired.
- Proton Mail requires running Proton Bridge locally to provide IMAP and SMTP access.
- There is no in-place command to edit an account; changes mean re-running the wizard and merging its TOML output.
In collections
Topics
FAQ
- What is himalaya?
- A command-line email client written in Rust for managing mail over IMAP, SMTP, JMAP, Gmail and Microsoft Graph. Himalaya is a command-line interface for reading, searching, sending and organizing email. Instead of an interactive terminal interface, it runs as stateless shell commands, so mail can be handled from scripts or combined with other command-line tools. It offers a shared API for mailboxes, envelopes, flags, messages and attachments, plus protocol-specific subcommands that expose each backend's full surface.
- Is himalaya free to use? What license does it have?
- himalaya is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is himalaya still maintained?
- Actively maintained. The last commit to himalaya was on Nov 6, 2026.
- What can I use himalaya for?
- Searching and archiving mail from shell scripts or cron jobs Managing a mailbox over SSH without a graphical client Sending mail from scripts or build pipelines through SMTP Managing Sieve filtering rules on a mail server
- How do I install himalaya?
- Install via Homebrew: brew install himalaya Run himalaya; the wizard asks for your email address and discovers the account settings: himalaya
- Where can I get himalaya?
- The source code and installation instructions are on GitHub: https://github.com/pimalaya/himalaya
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A lightweight, self-hostable webmail client that combines multiple email accounts into one view over IMAP, SMTP, JMAP and EWS.
A mail client app for Nextcloud that connects to any IMAP account from within your Nextcloud instance.
Self-hosted mail server for your own domain, with SMTP/IMAP/POP3, CardDAV/CalDAV, a React webmail and admin console, deployed via Docker Compose.
Self-hostable all-in-one mail and collaboration server in Rust, supporting IMAP, JMAP, POP3, SMTP, CalDAV, CardDAV and WebDAV.
Cyrus IMAP is a self-hosted mail, contacts and calendar server that serves email over IMAP, JMAP, POP3, CalDAV, CardDAV and WebDAV.