himalaya

Manage IMAP and SMTP email accounts from the terminal using the Himalaya CLI.

Updated Sep 10, 2026
One-click install
npx skills add https://github.com/loteiron/ZeusAgent --skill himalaya-loteiron
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: himalaya
Source: https://github.com/loteiron/ZeusAgent/tree/main/skills/email/himalaya
Command: npx skills add https://github.com/loteiron/ZeusAgent --skill himalaya-loteiron

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Reading, searching, and sending email normally requires a GUI client or web interface, which blocks terminal-based and agent-driven workflows. This Skill lets an agent operate a full mailbox through the Himalaya CLI, covering listing, reading, composing, replying, forwarding, moving, and deleting messages over IMAP and SMTP. ## Core Features & Use Cases - Mailbox Operations: List folders and envelopes, search by sender or subject, read messages, download attachments, and manage flags across multiple accounts. - Non-Interactive Composition: Compose, reply, and forward emails by piping MML templates to himalaya template send, avoiding interactive editor prompts that break automation. - Structured Output: Use --output json for machine-parseable results, with reference guides for IMAP/SMTP configuration, Gmail and iCloud setup, and MML syntax for attachments and HTML. - Use Case: Ask the agent to check your inbox for unread messages from a client, draft a reply quoting the original thread, and send it — all without leaving the terminal. ## Quick Start Install the himalaya CLI, configure an account in ~/.config/himalaya/config.toml, then ask the agent to list your latest inbox messages.

Frequently Asked Questions about himalaya

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send an email from the command line with himalaya?▼

Pipe a message with headers and body to `himalaya template send` using a heredoc, or use `himalaya message write -H "To:..." -H "Subject:..." "body"`. Piping is recommended for automation since plain `message write` opens an interactive editor.

How to configure himalaya for Gmail IMAP and SMTP?▼

Point the IMAP backend at imap.gmail.com:993 and SMTP at smtp.gmail.com:587 with an app password. You must also set folder.aliases.sent to "[Gmail]/Sent Mail" or saving sent copies fails after delivery, causing duplicate sends on retry.

Does himalaya support multiple email accounts?▼

Yes, define multiple `[accounts.NAME]` sections in config.toml and mark one as default. Switch between them at runtime with the `--account` flag, for example `himalaya --account work envelope list`.

Why does himalaya message send fail after the email was delivered?▼

This happens when folder aliases use the old singular `[accounts.NAME.folder.alias]` syntax, which v1.2.0 silently ignores. The save-to-Sent step then fails after SMTP succeeds, and retrying re-sends the email. Use the plural `folder.aliases.X` dotted keys.

Can himalaya add attachments to outgoing emails?▼

Yes, use MML syntax in the message body with `<#part filename=/path/to/file.pdf><#/part>` tags. MML compiles to proper MIME when sending, and also supports inline images and multipart alternative text/HTML bodies.