ClawSkills logoClawSkills

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 accoun

Introduction

# 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 = "[email protected]" display-name = "Your Name" default = true

backend.type = "imap" backend.host = "imap.example.com" backend.port = 993 backend.encryption.type = "tls" backend.login = "[email protected]" 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 = "[email protected]" 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 [email protected] 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: [email protected] To: [email protected] Subject: Test Message

Hello from Himalaya! EOF ```

Or with headers flag: ```bash himalaya message write -H "To:[email protected]" -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.

More Products