modules/home/programs/cli-agents/shared/skills/cli-tools/himalaya/SKILL.md
Configure and use Himalaya CLI email client with Protonmail Bridge. Use when setting up himalaya, debugging IMAP/SMTP connection issues, or managing email from the terminal. Covers config format for v1.2.0, Protonmail Bridge quirks, and common commands.
npx skillsauth add not-matthias/dotfiles-nix himalayaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Rust-based CLI email client. Connects to Protonmail via Bridge's local IMAP/SMTP.
~/.config/himalaya/config.toml
Bridge exposes local IMAP/SMTP — credentials come from Bridge, not your Proton account.
Get credentials: protonmail-bridge --cli → login → info
127.0.0.1:1143127.0.0.1:1025[accounts.proton]
default = true
email = "[email protected]"
display-name = "Your Name"
downloads-dir = "~/Downloads"
backend.type = "imap"
backend.host = "127.0.0.1"
backend.port = 1143
backend.encryption.type = "none"
backend.login = "[email protected]"
backend.auth.type = "password"
backend.auth.cmd = "pass show proton/bridge"
message.send.backend.type = "smtp"
message.send.backend.host = "127.0.0.1"
message.send.backend.port = 1025
message.send.backend.encryption.type = "none"
message.send.backend.login = "[email protected]"
message.send.backend.auth.type = "password"
message.send.backend.auth.cmd = "pass show proton/bridge"
"none" — Bridge uses a self-signed cert that causes CaUsedAsEndEntity TLS errors with rustls. Localhost-only so no security risk.auth.cmd for shell commands, auth.raw for inline, auth.keyring for system keyring. NOT auth.command — that's an invalid key.himalaya envelope list # List inbox
himalaya envelope list -f Sent # List sent
himalaya message read <ID> # Read message
himalaya message write # Compose (opens $EDITOR)
himalaya message reply <ID> # Reply
himalaya message forward <ID> # Forward
himalaya attachment download <ID> # Download attachments
himalaya folder list # List folders
himalaya envelope list --debug # Debug logs
himalaya envelope list --trace # Verbose trace + backtrace
Common errors:
CaUsedAsEndEntity → Set encryption.type = "none" for both IMAP and SMTPcannot parse configuration → Check for invalid keys (e.g., auth.command instead of auth.cmd)authentication failed → Use Bridge password, not Proton account passworddocumentation
Save notes, journal entries, and research to the personal-notes Obsidian vault (personal-vault-v2). Use when the user asks to 'save note', 'save to notes', 'write to personal notes', 'save to daily notes', 'note this down', or wants to persist findings/analysis to their personal vault.
documentation
Use whenever the user asks to address, fix, resolve, review, or respond to pull-request comments or review feedback.
development
Apply Not Matthias's Rust-first personal coding style. Use whenever the user explicitly asks to apply or review their code style, make Rust match their preferences, perform a style pass, or simplify/refactor according to their conventions. Inspect only task-touched code, honor local project conventions first, and make only safe opt-out style edits.
development
Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search codebases using Abstract Syntax Tree (AST) patterns, find specific code structures, or perform complex code queries that go beyond simple text search. This skill should be used when users ask to search for code patterns, find specific language constructs, or locate code with particular structural characteristics.