himalaya

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

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill himalaya-vivekgoquest
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: himalaya
Source: https://github.com/vivekgoquest/hermes-agent-stable/tree/main/skills/email/himalaya
Command: npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill himalaya-vivekgoquest

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Reading, searching, composing, and organizing email normally requires a GUI client or web interface, which blocks terminal-based automation. This Skill lets an agent operate a full mailbox through the Himalaya CLI using IMAP, SMTP, Notmuch, or Sendmail backends. ## Core Features & Use Cases - Mailbox Operations: List folders and envelopes, search messages, read or export raw MIME, move, copy, delete, and manage flags across multiple accounts. - Non-Interactive Composition: Send, reply, and forward by piping MML templates via stdin, with support for HTML parts, attachments, and inline images. - Provider Configuration: Reference guides cover IMAP/SMTP setup for Gmail, iCloud, OAuth2, keyring or pass-based credentials, and the v1.2.0 folder.aliases syntax that prevents duplicate sends. - Use Case: Ask the agent to check your INBOX for unread messages from a client, draft a reply quoting the original thread, and archive the conversation — all without leaving the terminal. ## Quick Start Ask the agent to list the ten most recent emails in your inbox using himalaya envelope list with JSON output.

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 into himalaya template send via stdin, for example using a heredoc with From, To, and Subject headers. This non-interactive approach avoids opening $EDITOR and is the recommended method for scripted or agent-driven sending.

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 when 2FA is enabled. You must also set folder.aliases.sent to "[Gmail]/Sent Mail" so saving to Sent does not fail after delivery.

Why does himalaya send duplicate emails on failure?▼

With the outdated singular folder.alias syntax, himalaya v1.2.0 silently ignores aliases, so save-to-Sent fails after SMTP delivery succeeds and the command exits non-zero. Retrying on that exit code re-runs SMTP, sending duplicates; use the plural folder.aliases.X keys instead.

Does himalaya support attachments and HTML emails?▼

Yes, himalaya composes rich messages using MML, an XML-like syntax compiled to MIME. Use <#part filename=...> for attachments, multipart/alternative for HTML plus plain text, and himalaya attachment download to save received files.

Can I use himalaya with multiple email accounts?▼

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