Himalaya – CLI to Manage Emails Himalaya, a Rust-based CLI tool for managing emails, supports IMAP, SMTP, JMAP, Gmail REST API, and Microsoft Graph, with features including multi-account TOML configuration, TLS via Rustls or Native TLS, and proxy support. The tool can be installed via shell script, cargo, or package managers like pacman, brew, and scoop, and offers a wizard for automatic provider discovery. Features features Installation installation Configuration configuration Usage usage Interfaces interfaces FAQ faq AI disclosure ai-disclosure License license Social social Contributing contributing Sponsoring sponsoring Shared API for mailboxes , envelopes , flags , messages and attachments Protocol-specific APIs exposing each backend's full surface IMAP , SMTP , JMAP , Gmail REST API , Microsoft Graph Outlook / Microsoft 365 support Maildir , specs https://cr.yp.to/proto/maildir.html m2dir support specs https://man.sr.ht/~bitfehler/m2dir/ Simple auth support for IMAP/SMTP: anonymous, login, plain, oauthbearer, xoauth2, scram-sha-256 HTTP auth support for JMAP: basic, bearer TLS support: Rustls https://crates.io/crates/rustls with ring crypto Rustls https://crates.io/crates/rustls with aws crypto requires rustls-aws feature Native TLS https://crates.io/crates/native-tls requires native-tls feature Discovery support: SOCKS5 , HTTP proxy support via $ALL PROXY and $HTTP PROXY TOML configuration with multi-account support JSON output via --json Tip Himalaya is written in Rust https://www.rust-lang.org/ and uses cargo features https://doc.rust-lang.org/cargo/reference/features.html to gate backend support. The default feature set is declared in Cargo.toml /pimalaya/himalaya/blob/master/Cargo.toml . Himalaya can be installed with the installer: As root: curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | sudo sh As a regular user: curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | PREFIX=~/.local sh These commands install the latest binary from the GitHub releases https://github.com/pimalaya/himalaya/releases section. For a more up-to-date version than the latest release, check out the releases https://github.com/pimalaya/himalaya/actions/workflows/releases.yml GitHub workflow and look for the Artifacts section. These pre-built binaries are built from the master branch. Note Such binaries are built with the default cargo features. If you need specific features, please use another installation method. cargo install --locked --git https://github.com/pimalaya/himalaya.git With only IMAP+SMTP support: cargo install --locked --git https://github.com/pimalaya/himalaya.git \ --no-default-features \ --features imap,smtp,rustls-ring From the community repository: pacman -S himalaya Or the user repository https://aur.archlinux.org/ : git clone https://aur.archlinux.org/himalaya-git.git cd himalaya-git makepkg -isc Or with yay https://github.com/Jguer/yay : yay -S himalaya-git brew install himalaya Note Cargo features are not compatible with brew. If you need a different feature set, please use another installation method. scoop install himalaya From the COPR https://copr.fedorainfracloud.org/coprs/atim/himalaya/ repo: dnf copr enable atim/himalaya dnf install himalaya If you have the Flakes https://nixos.wiki/wiki/Flakes feature enabled: nix profile install github:pimalaya/himalaya Or run without installing: nix run github:pimalaya/himalaya git clone https://github.com/pimalaya/himalaya cd himalaya nix run Run himalaya . With no configuration file on disk the wizard prompts for an account name and an email address, runs provider discovery PACC, Thunderbird Autoconfiguration, RFC 6186 SRV and RFC 8620 JMAP resolution, all probed in parallel and merged , fills the IMAP/SMTP or JMAP prompts with the discovered defaults, then writes the result to disk. A persistent configuration is loaded from the first valid path among: $XDG CONFIG HOME/himalaya/config.toml $HOME/.config/himalaya/config.toml $HOME/.himalayarc These are the same paths the himalaya-tui https://github.com/pimalaya/himalaya-tui TUI looks at: one TOML file backs both binaries. CLI-only fields and TUI-only sections coexist without errors. See config.sample.toml /pimalaya/himalaya/blob/master/config.sample.toml for a documented template. Override the path with -c