himalaya
Himalaya is a terminal-based email client that manages emails through IMAP, SMTP, Notmuch, or Sendmail backends. Use it to list, read, compose, search, reply to, forward, and organize emails across multiple accounts directly from the command line, with support for MML-formatted message composition and multiple authentication methods.
git clone --depth 1 https://github.com/the-open-agent/openagent /tmp/himalaya && cp -r /tmp/himalaya/skills/himalaya ~/.claude/skills/himalayaSKILL.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.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Create, search, and manage Bear notes via grizzly CLI.
Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
BluOS CLI (blu) for discovery, playback, grouping, and volume.
Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
Capture frames or clips from RTSP/ONVIF cameras.