himalaya

star 234

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).

suitedaces By suitedaces schedule Updated 2/13/2026

name: himalaya description: "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)." metadata: { "requires": { "bins": ["himalaya"] } }

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

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:

himalaya account configure

Or create ~/.config/himalaya/config.toml manually — see references/configuration.md.

Common Operations

List Folders

himalaya folder list

List Emails

List emails in INBOX (default):

himalaya envelope list

List emails in a specific folder:

himalaya envelope list --folder "Sent"

List with pagination:

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

Search Emails

himalaya envelope list from john@example.com subject meeting

Read an Email

Read email by ID (shows plain text):

himalaya message read 42

Export raw MIME:

himalaya message export 42 --full

Reply to an Email

Interactive reply (opens $EDITOR):

himalaya message reply 42

Reply-all:

himalaya message reply 42 --all

Forward an Email

himalaya message forward 42

Write a New Email

Interactive compose (opens $EDITOR):

himalaya message write

Send directly using template:

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

Hello from Himalaya!
EOF

Or with headers flag:

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):

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

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:

himalaya message move 42 "Archive"

Copy to folder:

himalaya message copy 42 "Important"

Delete an Email

himalaya message delete 42

Manage Flags

Add flag:

himalaya flag add 42 --flag seen

Remove flag:

himalaya flag remove 42 --flag seen

Multiple Accounts

List accounts:

himalaya account list

Use a specific account:

himalaya --account work envelope list

Attachments

Save attachments from a message:

himalaya attachment download 42

Save to specific directory:

himalaya attachment download 42 --dir ~/Downloads

Output Formats

Most commands support --output for structured output:

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

Debugging

Enable debug logging:

RUST_LOG=debug himalaya envelope list

Full trace with backtrace:

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.
Install via CLI
npx skills add https://github.com/suitedaces/dorabot --skill himalaya
Repository Details
star Stars 234
call_split Forks 34
navigation Branch main
article Path SKILL.md
More from Creator