Himalaya
lastmod 2024-12-11created 2024-12-111 edits
CLI for managing email (the homepage calls it Pimalaya)
Features
- Multi-account configuration: interactive setup through a wizard, or manual TOML-based configuration
- Message composition: compose messages based on $EDITOR
- Multiple backends supported: IMAP, Maildir, Notmuch, SMTP, Sendmail
- Secret management through the global system keyring
- OAuth 2.0 authentication flow support
- JSON output support
- PGP encryption: encryption via shell commands, GPG bindings, or a native implementation
Configuration
- Provides a wizard for basic account setup
- Supports integration with Proton Mail (Bridge), Gmail, Outlook, and iCloud Mail
- Recommends a CLI-queryable password manager or the system keyring for managing passwords securely
Other interfaces
- Vim and Emacs plugins and a Raycast extension available
- An experimental REPL variant of the Himalaya CLI available
FAQ
- Difference from aerc, mutt, alpine: Himalaya is a command-line interface that interacts with email through shell commands, without an event loop
- How to compose a message: use a template made up of headers and a body
- How to add attachments: MML can be used to attach files and add inline images
- How to debug: use the --debug and --trace arguments, or set environment variables, to record logs
Hacker News comments
- Himalaya: CLI to Manage Emails | Hacker News
- Himalaya makes it easy to write CLI tools and automate email workflows. It pairs well with August and can convert HTML to text. I used it to write a tool that automates git email patches
- Reading the docs, I like the oauth2 and json output features
- Wondering whether the "himalaya ..." command has to be run periodically, or whether leaving the TUI open refreshes in the background
- Wondering whether the "From" header can be rewritten when composing, like in Thunderbird
- There is a himalaya envelope list --account posteo --folder Archives.FOSS --page 2 command and a screenshot that looks like PINE
- Wondering whether that screenshot is interactive like PINE, or whether himalaya prints output and the process exits
- Would like to see a blog or post about the roadmap for this project and organization