diillson/chatcli/email

Claude Code and agent skill by diillson/chatcli

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Send and read email from the terminal using whatever native CLI is installed (himalaya, msmtp/mutt/neomutt on Linux, or AppleScript Mail on macOS). Use when asked to "send an email", "email someone", "check my inbox", "read my email", "reply to".

Install

npx vskill@latest install diillson/chatcli/email

SKILL.md

Email

Operate the user's email through their own installed mail tooling — the hermes way: a skill (this knowledge) + the terminal (@coder exec) + a native CLI. ChatCLI does not bundle an SMTP/IMAP client; you detect what exists and drive it. Never hardcode credentials or paste passwords into commands.

Step 0 — Identify the OS first (this is a multi-OS CLI)

Detection and tooling differ by platform. ChatCLI runs on Windows, macOS, and Linux — never assume a Unix shell. Pick the detection probe for the host:

  • macOS / Linux (@coder exec runs sh):

`` command -v himalaya msmtp mutt neomutt mail 2>/dev/null; uname -s ``

  • Windows (@coder exec runs PowerShell):

`` Get-Command himalaya, mutt -ErrorAction SilentlyContinue | Select-Object Name ``

Step 1 — Choose the tool

Preference order:

  1. `himalaya` — modern, scriptable, JSON output, cross-platform (Windows/macOS/Linux

via cargo install himalaya). Best for both read and send. Prefer it everywhere.

  1. `msmtp` (+ a heredoc) — reliable send-only (Unix).
  2. `mutt` / `neomutt` — send and read (Unix).
  3. macOS with none of the above → AppleScript Mail.app via osascript.
  4. Windows with none of the above → Outlook via PowerShell COM (New-Object -ComObject Outlook.Application).
  5. None found → tell the user what to install (cargo install himalaya, brew install himalaya,

apt install himalaya) and stop. Do not invent a workaround.

Step 2 — Send

himalaya (preferred):

himalaya message send <<'EOF'
To: alice@example.com
Subject: Lunch?
From: me@example.com
Hey Alice — free for lunch Thursday?
EOF

(Use himalaya -a <account> to pick a configured account; himalaya account list to see them.)

msmtp (send-only, uses ~/.msmtprc):

printf 'To: alice@example.com\nSubject: Lunch?\n\nHey Alice — free Thursday?\n' | msmtp alice@example.com

macOS Mail (osascript) — no extra install:

osascript -e 'tell application "Mail"
set m to make new outgoing message with properties {subject:"Lunch?", content:"Hey Alice — free Thursday?", visible:false}
tell m to make new to recipient at end of to recipients with properties {address:"alice@example.com"}
send m
end tell'

Windows Outlook (PowerShell COM) — no extra install when Outlook is present:

$ol = New-Object -ComObject Outlook.Application
$mail = $ol.CreateItem(0)
$mail.To = "alice@example.com"
$mail.Subject = "Lunch?"
$mail.Body = "Hey Alice -- free Thursday?"
$mail.Send()

Step 3 — Read / search

himalaya:

himalaya envelope list # recent inbox
himalaya envelope list --folder Sent
himalaya message read <ID> # full message

Parse the table (or add -o json) and summarize for the user — don't dump raw output.

macOS Mail: read counts/subjects via osascript against Mail's inbox's messages.

Windows Outlook: enumerate via PowerShell COM — $ol.GetNamespace("MAPI").GetDefaultFolder(6).Items (folder 6 = Inbox); read .Subject/.SenderName.

Rules

  • Confirm before sending unless the user clearly already authorized this exact send

(recipient + intent are unambiguous). Email is outward-facing and hard to unsend.

  • Quote the recipient, subject, and a one-line body summary back to the user before/after sending.
  • Respect i18n: write the email in the language the user is communicating in.
  • If multiple accounts exist and the user didn't specify, ask which to send from.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/diillson/chatcli/email/badge)](https://verified-skill.com/skills/diillson/chatcli/email)

Something wrong with this skill or its page? Tell us.