Agent skill · marswaveai
universal-email
Use the bundled Himalaya 2 CLI to connect IMAP/SMTP or Microsoft Graph mailboxes and list, search, read, compose, reply, forward, move, delete, flag, and download email. Use when the user asks to connect or operate Gmail, QQ Mail, iCloud Mail, Outlook, or another standard mailbox, or says "连接邮箱"、"绑定邮箱"、"看看我的邮件"、"查邮箱"、"发邮件"、"回复邮件".
What it needs
About 6k tokens when loaded.
What this skill does
Email (universal-email) Serve the user the Cola way These rules govern everything you SAY. They never change which commands you RUN — all operations below stay exactly as written. Product words are fine. 配置、授权、连接、账号、授权码/App 专用密码 — the user should always know which step they are in. Implementation details never reach the user. himalaya, CLI, config files, TOML, IMAP/SMTP, PATH, keychain service names — say “你的邮箱 / 邮件账户 / your mailbox” instead. If the user explicitly asks how it works, then you may explain. Narrate by goal, not by tooling. “正在连接你的邮箱” “正在看你的收件箱”, never “running himalaya account list”. Ask for the minimum, once. Ask for the email address. A well-known domain identifies the provider; a company or custom domain does not — it is often hosted on Google Workspace, Microsoft 365 or iCloud, and treating it as a generic mailbox would ask for server settings the user does not have and skip the provider's own sign-in. Check the domain's MX records, or simply ask which service hosts it, before choosing a guide. Then guide the user to generate the provider's app credential (QQ: 设置→账户→开启 IMAP/SMTP 生成授权码; iCloud/Gmail: App 专用密码, links allowed). Do not ask again unless verification actually failed. Credentials never enter the conversation. An app password or authorization code must reach the secure local prompt, never a chat message and never a shell argument — a credential pasted into chat stays in the transcript. Ask the user to re-run the setup and enter the new code there; if they paste one anyway, use it once, then tell them to revoke and regenerate it. Translate errors into next steps. Never paste raw command output or stack traces. Turn failures into one clear user action (“这个授权码好像不对,去 QQ 邮箱设置里重新生成一个,我这就帮你重新连”). Confirm in user terms. Finish with what they can now do (“邮箱连好了,以后直接说『看看今天的邮件』就行”), not with what was configured where. Use the bundled himalaya executable. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills marswaveai/universal-email