himalaya

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

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Reading, searching, and sending email usually 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, 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 from the command line. - Non-Interactive Composition: Send, reply, and forward emails by piping MML templates via stdin, avoiding interactive editor sessions that break automation. - Multi-Account Configuration: Configure IMAP/SMTP, Notmuch, or OAuth2 backends for Gmail, iCloud, and custom servers with secure password handling via pass or keyring. - Use Case: An agent monitors an inbox for new messages from a client, reads the latest thread, and sends a templated reply with an attached PDF report, all without leaving the terminal. ## Quick Start Ask the agent to list the ten most recent emails in your inbox using himalaya envelope list after configuring your IMAP account.

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 using a heredoc, for example cat << 'EOF' with From, To, and Subject headers. This non-interactive approach avoids opening an editor and works reliably in scripts and agent workflows.

How to configure himalaya for Gmail IMAP and SMTP?▼

Set the IMAP host to imap.gmail.com port 993 and SMTP to smtp.gmail.com port 587 with an app password. You must also map folder aliases like sent to [Gmail]/Sent Mail, otherwise saving sent messages fails after delivery.

Why does himalaya send duplicate emails on failure?▼

Duplicates happen when folder aliases use the old singular alias syntax, which v1.2.0 silently ignores. Save-to-Sent then fails after SMTP delivery succeeds, and any retry re-runs the send. Use the plural folder.aliases.X dotted keys instead.

Does himalaya support multiple email accounts?▼

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

Can himalaya store passwords securely instead of plaintext?▼

Yes, use backend.auth.cmd to call a password manager like pass, or backend.auth.keyring for the system keyring. Raw passwords via backend.auth.raw are supported but recommended only for testing.

How do I add attachments to emails in himalaya?▼

Use MML syntax in the message body with a part tag specifying the filename, such as <#part filename=/path/to/file.pdf><#/part>. Himalaya compiles MML parts into proper MIME attachments when sending.