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 223
Forks 31

Install this agent skill to your Project

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

Metadata

Additional technical details for this skill

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 (HTML, attachments, inline images)

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 — see references/configuration.md.

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"

Send HTML Email

Use MML <#part> tags for HTML content (see references/message-composition.md for full syntax):

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

<#part type=text/html>
<h1>Monthly Report</h1>
<p>Here are the <strong>key metrics</strong> for this month.</p>
<ul>
  <li>Revenue: $50,000</li>
  <li>Users: 1,200</li>
</ul>
<#/part>
EOF

Send Email with Text + HTML + Attachment

bash
cat << 'EOF' | himalaya template send
From: you@example.com
To: recipient@example.com
Subject: Report with attachment

<#multipart type=mixed>
<#multipart type=alternative>
Please find the report attached.

<#part type=text/html>
<p>Please find the report attached.</p>
<#/part>
<#/multipart>
<#part filename=~/reports/q4-2024.pdf description="Q4 2024 Report"><#/part>
<#/multipart>
EOF

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 and HTML, 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.

Didn't find tool you were looking for?

Be as detailed as possible for better results