himalaya

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

Updated Jul 7, 2026
One-click install
npx skills add https://github.com/episvr/USTB-2026-SummerInternship --skill himalaya-episvr
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: himalaya
Source: https://github.com/episvr/USTB-2026-SummerInternship/tree/main/hermes-config/skills/email/himalaya
Command: npx skills add https://github.com/episvr/USTB-2026-SummerInternship --skill himalaya-episvr

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires himalaya, and includes references (resource) components.

What problem does it solve? Reading, searching, and sending email typically requires a GUI client or web interface, which blocks terminal-based agents and scripts from operating a mailbox. This Skill lets an agent perform full email operations through the Himalaya command-line client. ## Core Features & Use Cases - Mailbox Operations: List folders and envelopes, search messages, read or export raw MIME, move, copy, delete, and manage flags via IMAP. - Composing and Sending: Send new emails, replies, and forwards non-interactively by piping MML templates to himalaya template send, with support for HTML parts and attachments. - Multi-Account Configuration: Configure IMAP/SMTP credentials for Gmail, iCloud, or custom servers, including folder aliases and secure password storage via pass or keyring. - Use Case: An agent monitors an inbox, searches for messages from a specific sender, reads the latest one, and sends a templated reply — all without leaving the terminal. ## Quick Start Ask the agent to list the latest emails in your inbox using himalaya and then send a plain-text reply to one of them.

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` via stdin, for example using a heredoc with From, To, and Subject headers. This non-interactive approach avoids opening an editor and works reliably in scripts and agents.

How to configure himalaya for Gmail IMAP and SMTP?▼

Create a config.toml account with imap.gmail.com:993 and smtp.gmail.com:587, using an app password if 2FA is enabled. You must also set folder.aliases mapping sent to [Gmail]/Sent Mail, drafts to [Gmail]/Drafts, and trash to [Gmail]/Trash.

Why does himalaya send duplicate emails on retry?▼

This happens when folder aliases use the old singular `folder.alias` syntax, which v1.2.0 silently ignores. Save-to-Sent then fails after SMTP delivery succeeds, and retrying the non-zero exit re-sends the message. Use the plural `folder.aliases.X` syntax.

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`.

Can himalaya handle attachments and HTML emails?▼

Yes, himalaya uses MML syntax for rich composition, supporting multipart messages, file attachments via `<#part filename=...>`, and inline images. Download received attachments with `himalaya attachment download <id>`.