
Himalaya
Manage IMAP/SMTP inbox, search, compose, and organize mail from the terminal while your coding agent runs shell commands.
Overview
Himalaya is an agent skill most often used in Grow (also Operate) that wires your agent to the Himalaya CLI for list, read, search, compose, reply, and folder operations over IMAP/SMTP.
Install
npx skills add https://github.com/steipete/clawdis --skill himalayaWhat is this skill?
- Full IMAP/SMTP via Himalaya CLI: folders, envelopes, read, and filtered search
- Compose with write/template/send, reply, forward, and MML for attachments
- Organize with copy, move, and delete across mail folders
- Setup via `himalaya account configure` and `~/.config/himalaya/config.toml`
- Reference docs for configuration and MML message-composition syntax
- References cover configuration and MML message-composition in two dedicated docs
- Documented flows: read/search, write (write/template/send/reply/forward), and organize (copy/move/delete)
Adoption & trust: 2.4k installs on skills.sh; 378k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need to work your real mailbox from the agent session without pasting credentials into chat or juggling a separate mail app.
Who is it for?
Indie builders who want scriptable inbox triage, templated replies, and folder hygiene alongside their dev workflow.
Skip if: Teams that require a hosted email API only (no local CLI), or anyone who refuses to install/configure Himalaya and IMAP/SMTP accounts locally.
When should I use this skill?
User needs IMAP/SMTP mail operations from shell: list, read, search, compose, reply, forward, copy, move, or delete via Himalaya.
What do I get? / Deliverables
Your agent runs documented Himalaya commands to read, send, and organize mail with config on disk and secrets kept out of logs.
- Executed CLI mail operations (read/search/send/organize)
- Composed messages using MML when attachments or rich bodies are needed
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Customer and vendor email is a day-two solo-builder job after launch; this skill sits on the Grow shelf as inbox and reply workflows, not app code. Support is where founders triage invoices, user threads, and partnership mail—exactly what list/read/reply/forward covers.
Where it fits
Search envelopes from a billing address and draft a reply to a churn-risk user without leaving the agent.
Move resolved threads to an archive folder after a release so the inbox reflects current incidents only.
Validate Himalaya config.toml and auth against your provider before wiring alerts into other automation.
How it compares
Terminal mail integration via a documented CLI skill—not a browser automation or dedicated email MCP server.
Common Questions / FAQ
Who is himalaya for?
Solo builders and agent users who already use or can install the Himalaya binary and want IMAP/SMTP operations from shell-driven workflows.
When should I use himalaya?
Use it in Grow when handling support or lifecycle email, and in Operate when triaging operational threads—search invoices, reply to users, move messages to folders, or send from templates.
Is himalaya safe to install?
Review the Security Audits panel on this Prism page and only store mailbox credentials in config/keyrings per the skill; do not paste secrets into agent chat or logs.
SKILL.md
READMESKILL.md - Himalaya
# Himalaya Use `himalaya` for IMAP/SMTP email from shell. ## References - `references/configuration.md`: account config, auth, backend setup. - `references/message-composition.md`: MML compose syntax. ## Setup ```bash himalaya --version himalaya account configure ``` Config path: `~/.config/himalaya/config.toml`. Prefer password managers/keyrings for credentials; do not paste secrets into chat/logs. ## Read/search ```bash himalaya folder list himalaya envelope list himalaya message read <id> himalaya envelope list from alice@example.com subject invoice ``` ## Write ```bash himalaya message write himalaya template write himalaya template send < /tmp/message.txt himalaya message reply <id> himalaya message forward <id> ``` Use MML for attachments and rich messages; read `references/message-composition.md` first. ## Organize ```bash himalaya message copy <id> <folder> himalaya message move <id> <folder> himalaya message delete <id> himalaya flag add <id> --flag seen himalaya flag remove <id> --flag seen ``` ## Safety - Confirm before sending, deleting, or moving many messages. - Use `--account` when multiple accounts exist. - Quote exact message IDs in summaries. # Himalaya Configuration Reference Configuration file location: `~/.config/himalaya/config.toml` ## Minimal IMAP + SMTP Setup ```toml [accounts.default] email = "user@example.com" display-name = "Your Name" default = true # IMAP backend for reading emails backend.type = "imap" backend.host = "imap.example.com" backend.port = 993 backend.encryption.type = "tls" backend.login = "user@example.com" backend.auth.type = "password" backend.auth.raw = "your-password" # SMTP backend for sending emails message.send.backend.type = "smtp" message.send.backend.host = "smtp.example.com" message.send.backend.port = 587 message.send.backend.encryption.type = "start-tls" message.send.backend.login = "user@example.com" message.send.backend.auth.type = "password" message.send.backend.auth.raw = "your-password" ``` ## Password Options ### Raw password (testing only, not recommended) ```toml backend.auth.raw = "your-password" ``` ### Password from command (recommended) ```toml backend.auth.cmd = "pass show email/imap" # backend.auth.cmd = "security find-generic-password -a user@example.com -s imap -w" ``` ### System keyring (requires keyring feature) ```toml backend.auth.keyring = "imap-example" ``` Then run `himalaya account configure <account>` to store the password. ## Gmail Configuration ```toml [accounts.gmail] email = "you@gmail.com" display-name = "Your Name" default = true backend.type = "imap" backend.host = "imap.gmail.com" backend.port = 993 backend.encryption.type = "tls" backend.login = "you@gmail.com" backend.auth.type = "password" backend.auth.cmd = "pass show google/app-password" message.send.backend.type = "smtp" message.send.backend.host = "smtp.gmail.com" message.send.backend.port = 587 message.send.backend.encryption.type = "start-tls" message.send.backend.login = "you@gmail.com" message.send.backend.auth.type = "password" message.send.backend.auth.cmd = "pass show google/app-password" ``` **Note:** Gmail requires an App Password if 2FA is enabled. ## iCloud Configuration ```toml [accounts.icloud] email = "you@icloud.com" display-name = "Your Name" backend.type = "imap" backend.host = "imap.mail.me.com" backend.port = 993 backend.encryption.type = "tls" backend.login = "you@icloud.com"