Skip to main content
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).
Zur Installation springen Skills Marktplatz Entdecken und erkunden Sie KI-Skills, die von der Community erstellt wurden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Prompt kopierenPrompt-Details anzeigen Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
npx skills add https://github.com/sypherin/openclaw-source --skill himalayaDer Befehl bleibt in einer Zeile. Scrollen Sie horizontal, um ihn vor dem Kopieren vollständig zu prüfen.
Sie bevorzugen eine lokale Kopie? Laden Sie die Dateien herunter, die SkillsMP derzeit vorliegen.
ZIP herunterladen Herunterladen... Verwandte Berufe SOC
Basierend auf der SOC-Berufsklassifikation
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). homepage https://github.com/pimalaya/himalaya metadata {"openclaw":{"emoji":"📧","requires":{"bins":["himalaya"]},"install":[{"id":"brew","kind":"brew","formula":"himalaya","bins":["himalaya"],"label":"Install Himalaya (brew)"}]}}
Himalaya Email CLI
Himalaya is a CLI email client that lets you manage emails from the terminal using IMAP, SMTP, Notmuch, or Sendmail backends.
IMPORTANT: Binary and OAuth2
The himalaya binary at ~/.cargo/bin/himalaya (also symlinked to ~/.npm-global/bin/himalaya) is compiled with +oauth2 support. Do NOT use the Homebrew version — it lacks oauth2.
Verify with: himalaya --version — output must include +oauth2.
Do NOT attempt to recompile himalaya. The working binary is already installed.
Outlook OAuth2 (ACTIVE)
Outlook email is fully configured and working via OAuth2. Config: ~/.config/himalaya/config.toml
To read emails, just run:
himalaya envelope list
If you see "authentication failed, refreshing access token", that is normal — himalaya auto-refreshes the token via keyring and retries successfully.
References
references/configuration.md (config file setup + IMAP/SMTP/OAuth2 authentication)
references/message-composition.md (MML syntax for composing emails)
Prerequisites
Himalaya CLI installed with +oauth2 (himalaya --version to verify)
A configuration file at ~/.config/himalaya/config.toml
OAuth2 tokens stored in system keyring (already configured for Outlook)
Configuration Setup Run the interactive wizard to set up an account:
himalaya account configure
Or create ~/.config/himalaya/config.toml manually.
Password auth example: [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"
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"
OAuth2 auth example (Outlook): [accounts.outlook]
email = "you@outlook.com"
display-name = "Your Name"
default = true
backend.type = "imap"
backend.host = "outlook.office365.com"
backend.port = 993
backend.login = "you@outlook.com"
backend.encryption.type = "tls"
backend.auth.type = "oauth2"
backend.auth.method = "xoauth2"
backend.auth.client-id = "your-azure-app-client-id"
backend.auth.auth-url = "https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize"
backend.auth.token-url = "https://login.microsoftonline.com/consumers/oauth2/v2.0/token"
backend.auth.scopes = ["https://outlook.office.com/IMAP.AccessAsUser.All" , "offline_access" ]
backend.auth.pkce = true
backend.auth.redirect-host = "localhost"
backend.auth.redirect-port = 9999
backend.auth.access-token.keyring = "outlook-imap-access"
backend.auth.refresh-token.keyring = "outlook-imap-refresh"
message.send.backend.type = "smtp"
message.send.backend.host = "smtp.office365.com"
message.send.backend.port = 587
message.send.backend.login = "you@outlook.com"
message.send.backend.encryption.type = "start-tls"
message.send.backend.auth.type = "oauth2"
message.send.backend.auth.method = "xoauth2"
message.send.backend.auth.client-id = "your-azure-app-client-id"
message.send.backend.auth.auth-url = "https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize"
message.send.backend.auth.token-url = "https://login.microsoftonline.com/consumers/oauth2/v2.0/token"
message.send.backend.auth.scopes = ["https://outlook.office.com/SMTP.Send" , "offline_access" ]
message.send.backend.auth.pkce = true
message.send.backend.auth.redirect-host = "localhost"
message.send.backend.auth.redirect-port = 9999
message.send.backend.auth.access-token.keyring = "outlook-smtp-access"
message.send.backend.auth.refresh-token.keyring = "outlook-smtp-refresh"
Common Operations
List Folders
List Emails List emails in INBOX (default):
List emails in a specific folder:
himalaya envelope list --folder "Sent"
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 export 42 --full
Reply to an Email Interactive reply (opens $EDITOR):
himalaya message reply 42
himalaya message reply 42 --all
Forward an Email himalaya message forward 42
Write a New Email Interactive compose (opens $EDITOR):
Send directly using template:
cat << 'EOF' | himalaya template send
From: you@example.com
To: recipient@example.com
Subject: Test Message
Hello from Himalaya!
EOF
himalaya message write -H "To:recipient@example.com" -H "Subject:Test" "Message body here"
Save a Draft Save a message to the Drafts folder without sending:
cat << 'EOF' | himalaya message save --folder "Drafts"
From: zachary_aw@outlook.sg
To: recipient@example.com
Subject: Draft Subject
Draft message body here.
EOF
This saves the raw MIME message to the Drafts folder via IMAP. The draft will appear in Outlook's Drafts folder ready for editing/sending.
Move/Copy Emails himalaya message move 42 "Archive"
himalaya message copy 42 "Important"
Delete an Email himalaya message delete 42
Manage Flags himalaya flag add 42 --flag seen
himalaya flag remove 42 --flag seen
Multiple Accounts 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 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, use MML syntax (see references/message-composition.md).
Store passwords securely using pass, system keyring, or a command that outputs the password.
Mehr aus diesem Repository Official Late API reference for scheduling posts across 13 social media platforms. Covers authentication, endpoints, webhooks, and platform-specific features. Use when building with the Late Social Media Scheduling API.
Delegate complex tasks to Claude Code CLI for superior reasoning, research, analysis, and multi-step work. Use when: (1) deep research requiring multiple web searches and synthesis, (2) complex multi-step reasoning or analysis, (3) tasks requiring careful fact-checking or verification, (4) long document summarization or transformation, (5) system administration and diagnostics, (6) any task where quality matters more than speed. NOT for: simple greetings, casual chat, one-line answers, tasks already handled well by the current model.