Himalaya:在终端里收发邮件的 CLI Skill

前言

在终端里处理邮件,常见做法是接一个邮件客户端库自己写脚本,或者干脆手工开网页收发。前者要处理 IMAP/SMTP 的认证和协议细节,后者无法和 shell 里的其他步骤串起来。下面介绍的 Himalaya Skill 提供一个 CLI 形态的邮件工具,让 Agent 或开发者直接在终端列出、读取、撰写、回复、转发、搜索和整理邮件,不必自己拼协议。

它出自 ClawHub 生态,由 André Lamelas(lamelas)维护,SkillHub 上归类为 office-efficiency,标签显示无需 API Key(requires_api_key=false)。

这是什么

一句话定位:Himalaya 是一个基于 IMAP/SMTP 的终端邮件客户端,Skill 形态封装了这套 CLI,供 Agent 调用。

需要区分两件事:Skill 负责把命令、配置和调用方式打包给 Agent,真正的邮件收发由 Himalaya CLI 完成,底层走 IMAP(收)和 SMTP(发),可选 Notmuch、Sendmail 后端。它解决的是「在终端环境里用统一命令操作邮件,而不是切换到网页客户端」的问题,并支持多账户和用 MML(MIME Meta Language)编写复杂邮件。

版本 v1.0.0,许可证 MIT-0。

核心功能

下面是已核实的能力,按操作类型归纳:

  • 列出文件夹和邮件(含分页)。
  • 读取邮件正文,或导出原始 MIME。
  • 撰写、回复、回复全部、转发邮件。
  • 搜索邮件(可按发件人、主题等条件)。
  • 移动、复制、删除邮件,管理标记(flag)。
  • 下载附件到指定目录。
  • 多账户管理,可按账户切换。
  • 结构化输出(JSON、plain 等),便于脚本消费。
  • 邮件编写支持 MML 语法,能表达附件、富文本等复杂内容。

安装与启用

Himalaya 是 ClawHub 生态的 Skill,安装命令如下,在终端执行即可。

openclaw skills install @lamelas/himalaya

上游仓库地址:https://clawhub.ai/lamelas/himalaya 。

安装后还需要本机具备 Himalaya CLI,用下面命令确认:

himalaya --version

配置

邮件收发依赖一个配置文件。最快的方式是运行交互式向导,它会引导填入 IMAP/SMTP 凭据:

himalaya account configure

也可以手工创建 ~/.config/himalaya/config.toml,下面是一个最小可用的单账户示例,收走 IMAP、发送走 SMTP,密码用 pass 命令读取(也可改用系统 keyring):

[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"

配置里每个字段都对应实际的邮件服务地址,请按自己的邮箱服务商填写,不要照抄示例域名。

典型用法

下面例子来自官方资料,可直接复现。命令都假设已经完成上面的配置。

列出文件夹和邮件:

himalaya folder list
himalaya envelope list
himalaya envelope list --folder "Sent"
himalaya envelope list --page 1 --page-size 20

搜索和读取:

himalaya envelope list from john@example.com subject meeting
himalaya message read 42
himalaya message export 42 --full

message read 输出纯文本;message export --full 导出完整 MIME 报文,适合需要原始头部或附件的场景。

回复、转发、撰写:

himalaya message reply 42
himalaya message reply 42 --all
himalaya message forward 42
himalaya message write

交互式回复和撰写会打开 $EDITOR。也可以直接用模板发送,或用 -H 传头部:

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"

整理邮件、标记和附件:

himalaya message move 42 "Archive"
himalaya message copy 42 "Important"
himalaya message delete 42
himalaya flag add 42 --flag seen
himalaya flag remove 42 --flag seen
himalaya attachment download 42 --dir ~/Downloads

多账户和结构化输出:

himalaya account list
himalaya --account work envelope list
himalaya envelope list --output json
himalaya envelope list --output plain

需要排查问题时,打开调试日志:

RUST_LOG=debug himalaya envelope list
RUST_LOG=trace RUST_BACKTRACE=1 himalaya envelope list

适用场景与注意

适合需要在终端或 Agent 流程里批量、自动处理邮件的场景,例如整理收件箱、按规则归档、定时检索特定发件人的邮件,或把邮件操作串进 shell 流水线。结构化输出让它容易被脚本消费。

几点需要注意:

  • Message ID 是相对于当前文件夹的,切换文件夹后要重新 envelope list 再取 ID,否则会读到错误的编号。
  • 密码不要用明文写进配置文件,优先用 pass、系统 keyring 或一个输出密码的命令。
  • 撰写带附件或富文本的邮件要用 MML 语法,详见 references/message-composition.md。
  • 具体的配置细节(各后端选项、认证方式)见 references/configuration.md。
  • 安装命令面向 ClawHub 生态(openclaw skills install)。如果你用的是 Cursor、Codex CLI 或 Claude Code,安装方式和入口可能不同,本文未核实到对应命令,请以各自文档为准。
  • 关于热度数据需要说明:本篇线索给出的「评分 99324、下载 1322 次」与 SkillHub 抓取到的「评分 100000、下载 66239、安装 4327」不一致,正文以 SkillHub 抓取结果为准,此处仅提示差异。

结尾

Himalaya 的价值在于把邮件收发收敛成一组终端命令,让 Agent 能像操作文件一样操作邮件。适合想要脚本化邮件流程、又不想自己处理 IMAP/SMTP 细节的开发者。官方地址:https://www.skillhub.cn/skills/clawhub_lamelas/himalaya ,上游仓库:https://clawhub.ai/lamelas/himalaya 。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye