Awesome-omni-skill email-copilot
Manages inbox by learning preferences, cleaning noise, and prioritizing important work. Use when user asks about emails or inbox management.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/business/email-copilot" ~/.claude/skills/diegosouzapw-awesome-omni-skill-email-copilot && rm -rf "$T"
manifest:
skills/business/email-copilot/SKILL.mdsource content
Critical Rules
- ALWAYS read
before processing ANY emails.claude/skills/email-copilot/rules.md - ALWAYS run
to get current time before processing (for expiry checks, age calculations)date - NEVER mix email IDs between accounts - IDs are account-specific
- ALWAYS use label names (e.g., "Finance/Receipts"), never internal IDs (e.g., "Label_6")
- CHECK
field in output before operationsaccount - LOG all user-confirmed actions to
— IMMEDIATELY in the same tool call batch as execution, NOT after.claude/skills/email-copilot/action-log.md
CLI Alias
All commands use this base (define once per session):
EMAIL="uv run --project .claude/skills/email-copilot python .claude/skills/email-copilot/scripts/email_cli.py" GMAIL="uv run --project .claude/skills/email-copilot python .claude/skills/email-copilot/gmail_client.py"
Quick Reference
# Accounts $GMAIL --check # Check setup status $GMAIL --auth <name> # Add/authenticate account $EMAIL accounts # List accounts # List & Read $EMAIL [-a ACCOUNT] list [-n LIMIT] [-q QUERY] $EMAIL [-a ACCOUNT] read <msg_id> # Actions $EMAIL [-a ACCOUNT] trash '<json_id_list>' $EMAIL [-a ACCOUNT] untrash '<json_id_list>' $EMAIL [-a ACCOUNT] move <label> '<json_id_list>' [-r] [-c] # Labels $EMAIL [-a ACCOUNT] labels list $EMAIL [-a ACCOUNT] labels create "Name" $EMAIL [-a ACCOUNT] labels delete "Name" $EMAIL [-a ACCOUNT] labels rename "Old" "New" # Send & Reply $EMAIL [-a ACCOUNT] send --to EMAIL --subject SUBJ --body BODY [--cc CC] [--attachment FILE] $EMAIL [-a ACCOUNT] reply <msg_id> --body BODY [--cc CC] # Drafts $EMAIL [-a ACCOUNT] drafts list $EMAIL [-a ACCOUNT] drafts create --to EMAIL --subject SUBJ --body BODY $EMAIL [-a ACCOUNT] drafts reply <msg_id> --body BODY $EMAIL [-a ACCOUNT] drafts send <draft_id> $EMAIL [-a ACCOUNT] drafts delete <draft_id> # Attachments $EMAIL [-a ACCOUNT] attachments <msg_id> $EMAIL [-a ACCOUNT] download <msg_id> [-o DIR] [-f FILTER] $EMAIL [-a ACCOUNT] search-download -q QUERY [-o DIR] [-n LIMIT] # Filters & Maintenance $EMAIL [-a ACCOUNT] filters list $EMAIL [-a ACCOUNT] filters add [--from X] [--add-label Y] [--archive] [--mark-read] $EMAIL [-a ACCOUNT] summary <label> [-n LIMIT] $EMAIL [-a ACCOUNT] cleanup <label> [-d DAYS]
Procedure
- Check Accounts:
$EMAIL accounts - Load Rules: Read
(MANDATORY).claude/skills/email-copilot/rules.md - Review Action Log: Read
to identify patterns from recent decisions.claude/skills/email-copilot/action-log.md - Process Each Account:
$EMAIL -a <account> list -n 100- Apply account-appropriate rules (work: strict cleanup; personal: conservative)
- Classify & Execute:
- Auto-Trash List matches →
trash - Expired notifications →
trash - Receipts/Statements →
to Finance labelsmove
- Auto-Trash List matches →
- Log Actions: When user confirms, execute operations AND update
in the same tool call batch (parallel Edit + Bash calls)action-log.md - Report & Evolve:
- Group remaining by account AND category
- Review action log for recurring patterns → propose rule updates
- Update
if user agreesrules.md
Learning & Evolution
When email doesn't match rules:
- Cold sales → Propose adding sender to Auto-Trash List
- New project → Propose adding Project Keyword
- Recurring newsletter → Propose Newsletter category
Always ask user before updating
rules.md.
Multi-Account Notes
- Work accounts: Prioritize project emails, strict cleanup
- Personal accounts: Conservative deletions, preserve receipts
- Each operation outputs
field to identify mailboxaccount
Tips
- Reply-To:
uses Reply-To header when present (mailing lists)reply - GitHub: Check snippet for "approved", "lgtm", bot names
- Safety: If unsure, list in report instead of trashing
- Drafts Workflow: Create draft → User reviews in Gmail →
or manual senddrafts send
Action Log Format
Log file:
.claude/skills/email-copilot/action-log.md
## YYYY-MM-DD ### Trashed - [account] sender@example.com - "Subject" (reason: auto-trash match / user confirmed) ### Moved - [account] sender@example.com - "Subject" → Label/Name ### Kept - [account] sender@example.com - "Subject" (user decision: reason) ### Patterns Identified - sender@example.com appeared 3x this week → consider adding to auto-trash
Review log before each session to:
- Identify senders appearing repeatedly → propose Auto-Trash rule
- Find emails consistently moved to same label → propose filter
- Track user overrides → adjust rule confidence
Additional Files
- First-time setup: Read
.claude/skills/email-copilot/README.md - Invoice recipes: Read
.claude/skills/email-copilot/SKILL-RECIPES.md - User rules:
.claude/skills/email-copilot/rules.md - Action log:
.claude/skills/email-copilot/action-log.md