pimalaya

himalaya: Manage Email from the Command Line

Himalaya is a Rust CLI for managing email through commands rather than a persistent terminal interface. It connects to common mail services and local mail stores, making it suited to shell workflows and scripts.

RustApache-2.0CLIEmailTerminal
Stars
7.4k
Forks
249
Stars, last 8 days
+42

Our take

Health score

63/100

How it is scored
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.