email · git:20260611.7e4abf6 · 2026-06-11 · sha256 d7412772603aea69
email git:20260611.7e4abf6A
Immutable. This exact content is served forever at /api/v1/blob/d7412772603aea69.
---
name: email
description: "Use when reading or sending email — checking the inbox, searching mail, reading a specific message, drafting or sending a reply. Triggered by 'read my email', 'check my inbox', 'send an email', 'reply to that email', 'search my mail', or any request to read/send mail."
allowed-tools: Bash
user-invocable: true
---
# Email
Reach for the lightest tool that does the job. Walk the four-tier ladder below
top to bottom, trying each tier first and falling through to the next ONLY on
tool absence OR auth failure. **Never use BYOB browser automation for a simple
read or send** — it is slow, flaky, and burns browser context. BYOB is a last
resort for tasks no CLI/MCP path can do at all.
## Tool Ladder (priority order)
### Tier 1 — `valor-email` (preferred: Redis-cached, fastest)
The project email CLI. Reads hit a Redis history cache (fast); sends queue via
the email relay. Use this first whenever it is on PATH.
```bash
valor-email read --limit 5
valor-email read --search "deployment" --since "2 hours ago"
valor-email send --to alice@example.com --subject "Re: Deploy" "Looks good"
```
Fall through to Tier 2 if `valor-email` is not on PATH, or a read/send fails
because the bridge/relay is unreachable.
### Tier 2 — `gws gmail` (Google Workspace CLI, direct API)
Google's official Workspace CLI. On PATH after `npm install -g
@googleworkspace/cli`. Requires a one-time human `gws auth setup` / `gws auth
login` OAuth step — if a call fails with an auth error, fall through.
```bash
gws gmail users messages list --params '{"userId": "me", "maxResults": 5}'
gws gmail users messages get --params '{"userId": "me", "id": "MSG_ID"}'
```
Fall through to Tier 3 if `gws` is not on PATH OR every call errors with an
authentication failure (binary present but unauthenticated).
### Tier 3 — Gmail MCP (`mcp__claude_ai_Gmail__*`, interactive sessions only)
The registered Gmail MCP tools. Available only in interactive Claude sessions,
not in headless/agent runs. Use for read and draft-first composition.
```text
mcp__claude_ai_Gmail__search_threads (search the inbox)
mcp__claude_ai_Gmail__get_thread (read a full thread)
mcp__claude_ai_Gmail__create_draft (draft a reply — never auto-send)
```
Fall through to Tier 4 if the MCP tools are not available in this session.
### Tier 4 — BYOB browser automation (LAST RESORT)
Only when no tier above can reach the mailbox at all (e.g. a webmail provider
with no CLI/MCP path). **Never** use BYOB for simple read or send when any tier
above is available.
## Rules
- **Fall through on absence OR auth failure**, not just absence. A present-but-
unauthenticated `gws` must hand off to the next tier — do not stall on it.
- **Never use BYOB for a simple read or send.** If you find yourself opening a
browser to read the inbox, stop and re-walk the ladder from Tier 1.
- **Draft-first for composition.** When sending on the user's behalf, prefer a
draft the user reviews unless explicitly told to send.