Help us improve
Share bugs, ideas, or general feedback.
From email-triage-plugin
Scans Gmail inbox for recent emails using time-based queries, classifies into three priority tiers, and drafts replies for urgent Tier 1 items.
npx claudepluginhub ericporres/email-triage-pluginHow this skill is triggered — by the user, by Claude, or both
Slash command
/email-triage-plugin:email-triageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scan Gmail for recent messages, classify them into three priority tiers, and offer to draft replies for urgent items.
Triages unread emails from Gmail or Outlook, scores importance (0-100) using sender recognition, urgency keywords, thread depth, and relevance, categorizes into Urgent/Important/Routine/Archive, and generates reply suggestions for priorities.
Triages Gmail inbox by classifying emails using Eisenhower matrix for importance/urgency, determines if replies needed, and drafts responses in user's voice. Useful for inbox zero and email prioritization.
Scans multiple IMAP email accounts for unread messages, groups into threads by normalized subject, classifies priorities based on To/CC/sender signals, and drafts replies for morning inbox review.
Share bugs, ideas, or general feedback.
Scan Gmail for recent messages, classify them into three priority tiers, and offer to draft replies for urgent items.
If you use a family-assistant skill or maintain reference files with contact and alias data, load them here before scanning. This gives the triage engine context about who matters and which aliases map to which priority.
Example reference files (if available):
| File | What it provides |
|---|---|
family-members.md | Names, relationships, emails — always Tier 1 |
email-aliases.md | Alias routing & default priority tiers |
household.md | Schools, services — helps classify household emails |
Tip: The family-assistant-skill template is a good companion for this plugin. It provides the contact and household context that makes triage smarter.
If you don't have reference files yet, the skill still works — it just classifies based on content and sender patterns instead of alias routing.
Use Gmail MCP tools to search:
Query: in:inbox newer_than:1d
Add exclusions for any labels you handle separately (e.g., -label:AI if you have an AI newsletter digest).
Why not is:unread: Many people casually browse emails on their phone without intending to act on them. Read status is unreliable as a triage signal. Use time-based windowing instead.
Time window options:
newer_than:1d (last 24 hours — good for daily morning triage)newer_than:12hnewer_than:3dSnippet-first approach: The search results include subjects, senders, and snippets. Classify from these first. Only call read_gmail_message for:
This avoids token blowout on high-volume days.
Emails with a direct question, request, or action aimed at you. Each gets:
Urgency signals (auto-promote to Tier 1):
@yourcompany.com)Needs your eyes but not necessarily a reply:
Marketing, bulk newsletters, automated notifications, social media alerts, promotional offers. Summarize as counts by category.
If you use email aliases (e.g., shopping@yourdomain.com, travel@yourdomain.com), map them to default tiers here. This is the most powerful part of the triage — a well-configured alias map means most emails get classified instantly without needing to read content.
Example alias routing:
Primary (you@domain.com) → Evaluate on content
Family/kids aliases → Default Tier 1
Financial aliases (bank@, 401k@) → Default Tier 1
Health/medical aliases → Default Tier 1
Household/utilities aliases → Default Tier 2
Travel aliases → Default Tier 2
Shopping aliases → Default Tier 3 (unless delivery update → Tier 2, fraud → Tier 1)
Subscription/media aliases → Default Tier 3
Tip: If you use the family-assistant-skill's
email-aliases.md, you can list 100+ aliases with per-alias tier routing. The triage skill reads it at runtime and applies the mapping automatically.
When an alias isn't recognized, fall back to content-based classification.
Format output as:
# Inbox Triage — [Today's Date]
[X emails scanned from last 24h]
## Reply Needed (X)
1. **[Sender Name]** — [Subject]
[One-line summary of what they need]
→ Suggested: [Reply / Schedule / Forward to X]
2. ...
## Review (X)
- **[Sender]** — [Subject] — [One-line summary]
- ...
## Noise (X)
[X] marketing, [X] social, [X] automated, [X] promotional
→ Want me to archive these?
Numbering matters. Tier 1 items are numbered so you can say "draft a reply to #3."
When asked to draft a reply (e.g., "draft a reply to #3"):
read_gmail_message if not already loadedread_gmail_thread for conversation contextDescribe how you write emails so Claude can match your style:
- Direct and concise — no filler
- Warm but professional
- Uses first names
- Signs off with "[Your Name]" or "Best, [Your Name]"
- Doesn't over-explain or over-apologize
If there are Tier 3 (noise) emails and the user confirms archival:
Never auto-archive. Never permanently delete.