Agent skill

himalaya

CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).

Stars 355,710
Forks 72,004

Install this agent skill to your Project

npx add-skill https://github.com/openclaw/openclaw/tree/main/skills/himalaya

Metadata

Additional technical details for this skill

openclaw
{
    "emoji": "\ud83d\udce7",
    "install": [
        {
            "id": "brew",
            "bins": [
                "himalaya"
            ],
            "kind": "brew",
            "label": "Install Himalaya (brew)",
            "formula": "himalaya"
        }
    ],
    "requires": {
        "bins": [
            "himalaya"
        ]
    }
}

SKILL.md

Himalaya Email CLI

Himalaya is a CLI email client that lets you manage emails from the terminal using IMAP, SMTP, Notmuch, or Sendmail backends.

References

  • references/configuration.md (config file setup + IMAP/SMTP authentication)
  • references/message-composition.md (MML syntax for composing emails)

Prerequisites

  1. Himalaya CLI installed (himalaya --version to verify)
  2. A configuration file at ~/.config/himalaya/config.toml
  3. IMAP/SMTP credentials configured (password stored securely)

Configuration Setup

Run the interactive wizard to set up an account:

bash
himalaya account configure

Or create ~/.config/himalaya/config.toml manually:

toml
[accounts.personal]
email = "you@example.com"
display-name = "Your Name"
default = true

backend.type = "imap"
backend.host = "imap.example.com"
backend.port = 993
backend.encryption.type = "tls"
backend.login = "you@example.com"
backend.auth.type = "password"
backend.auth.cmd = "pass show email/imap"  # or use keyring

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 = "you@example.com"
message.send.backend.auth.type = "password"
message.send.backend.auth.cmd = "pass show email/smtp"

Common Operations

List Folders

bash
himalaya folder list

List Emails

List emails in INBOX (default):

bash
himalaya envelope list

List emails in a specific folder:

bash
himalaya envelope list --folder "Sent"

List with pagination:

bash
himalaya envelope list --page 1 --page-size 20

Search Emails

bash
himalaya envelope list from john@example.com subject meeting

Read an Email

Read email by ID (shows plain text):

bash
himalaya message read 42

Export raw MIME:

bash
himalaya message export 42 --full

Reply to an Email

Interactive reply (opens $EDITOR):

bash
himalaya message reply 42

Reply-all:

bash
himalaya message reply 42 --all

Forward an Email

bash
himalaya message forward 42

Write a New Email

Interactive compose (opens $EDITOR):

bash
himalaya message write

Send directly using template:

bash
cat << 'EOF' | himalaya template send
From: you@example.com
To: recipient@example.com
Subject: Test Message

Hello from Himalaya!
EOF

Or with headers flag:

bash
himalaya message write -H "To:recipient@example.com" -H "Subject:Test" "Message body here"

Move/Copy Emails

Move to folder:

bash
himalaya message move 42 "Archive"

Copy to folder:

bash
himalaya message copy 42 "Important"

Delete an Email

bash
himalaya message delete 42

Manage Flags

Add flag:

bash
himalaya flag add 42 --flag seen

Remove flag:

bash
himalaya flag remove 42 --flag seen

Multiple Accounts

List accounts:

bash
himalaya account list

Use a specific account:

bash
himalaya --account work envelope list

Attachments

Save attachments from a message:

bash
himalaya attachment download 42

Save to specific directory:

bash
himalaya attachment download 42 --dir ~/Downloads

Output Formats

Most commands support --output for structured output:

bash
himalaya envelope list --output json
himalaya envelope list --output plain

Debugging

Enable debug logging:

bash
RUST_LOG=debug himalaya envelope list

Full trace with backtrace:

bash
RUST_LOG=trace RUST_BACKTRACE=1 himalaya envelope list

Tips

  • Use himalaya --help or himalaya <command> --help for detailed usage.
  • Message IDs are relative to the current folder; re-list after folder changes.
  • For composing rich emails with attachments, use MML syntax (see references/message-composition.md).
  • Store passwords securely using pass, system keyring, or a command that outputs the password.

Expand your agent's capabilities with these related and highly-rated skills.

openclaw/openclaw

openclaw-test-heap-leaks

Investigate `pnpm test` memory growth, Vitest worker OOMs, and suspicious RSS increases in OpenClaw using the `scripts/test-parallel.mjs` heap snapshot tooling. Use when Codex needs to reproduce test-lane memory growth, collect repeated `.heapsnapshot` files, compare snapshots from the same worker PID, distinguish transformed-module retention from real data leaks, and fix or reduce the impact by patching cleanup logic or isolating hotspot tests.

355,710 72,004
Explore
openclaw/openclaw

parallels-discord-roundtrip

Run the macOS Parallels smoke harness with Discord end-to-end roundtrip verification, including guest send, host verification, host reply, and guest readback.

355,710 72,004
Explore
openclaw/openclaw

security-triage

Triage GitHub security advisories for OpenClaw with high-confidence close/keep decisions, exact tag and commit verification, trust-model checks, optional hardening notes, and a final reply ready to post and copy to clipboard.

355,710 72,004
Explore
openclaw/openclaw

openclaw-release-maintainer

Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.

355,710 72,004
Explore
openclaw/openclaw

openclaw-ghsa-maintainer

Maintainer workflow for OpenClaw GitHub Security Advisories (GHSA). Use when Codex needs to inspect, patch, validate, or publish a repo advisory, verify private-fork state, prepare advisory Markdown or JSON payloads safely, handle GHSA API-specific publish constraints, or confirm advisory publish success.

355,710 72,004
Explore
openclaw/openclaw

openclaw-pr-maintainer

Maintainer workflow for reviewing, triaging, preparing, closing, or landing OpenClaw pull requests and related issues. Use when Codex needs to validate bug-fix claims, search for related issues or PRs, apply or recommend close/reason labels, prepare GitHub comments safely, check review-thread follow-up, or perform maintainer-style PR decision making before merge or closure.

355,710 72,004
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results