From claude-assist
Manage Gmail email sync, triage, and analysis workflows. Use when user wants to sync emails, triage inbox, check email analysis results, view email statistics, manage the email processing pipeline, find newsletters, check pending emails, or understand email workflow status. Triggers on phrases like "sync my emails", "triage inbox", "email status", "check newsletters", "email analysis", "what emails do I have", "pending emails", "unsubscribe from newsletters".
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-assist:google-emailThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manage Gmail sync, AI-powered triage, and email analysis workflows.
Manage Gmail sync, AI-powered triage, and email analysis workflows.
Use the google-account-setup skill to configure Gmail accounts before using these workflows. Accounts must have OAuth credentials (has_credentials: true) for sync and triage to work.
The scripts/ directory contains executable wrappers for all API endpoints. Always use these scripts instead of raw curl commands.
Run scripts using their full path relative to this skill's base directory (provided when the skill is loaded). For example: <skill-base-dir>/scripts/accounts
All scripts default to http://localhost:2529. Override with CLAUDE_ASSIST_SERVER env var.
Available scripts: accounts, sync-emails, emails, email, email-stats, triage, triage-progress
Emails progress through a three-state pipeline:
The server runs these scheduled tasks automatically:
ANTHROPIC_API_KEY)Each triaged email has an analysis field with this structure:
interface EmailAnalysis {
overview: string; // 1-2 sentence summary
mentioned_people: string[]; // Names mentioned in email
mentioned_organizations: string[]; // Organizations mentioned
potential_action_items: string[]; // Action items for recipient
sender_type: 'automated' | 'human';
message_type: 'spam' | 'newsletter' | 'alert' | 'group' | 'personal';
unsubscribe_link: string | null; // Extracted unsubscribe URL
rationale: string; // Explanation of classification
}
The AI triage uses a conversational approach:
scripts/accounts
Returns accounts with email_sync_status and email_triage_status showing real-time progress.
# Incremental sync all accounts
scripts/sync-emails
# Full sync specific account
scripts/sync-emails --account personal --full
# Filter by workflow status and message type
scripts/emails --status triaged --type newsletter --days 7
# Get single email with full details
scripts/email 123
# Get statistics
scripts/email-stats --days 7
Query Parameters:
account - Filter by account identifier (e.g., "personal", "work")workflow_status - Filter by state: discovered, new, triagedmessage_type - Filter by classification (comma-separated for OR): spam, newsletter, alert, group, personalsearch - Full-text search on email contentwith - Comma-separated substrings to match against from/to fields (OR logic). e.g. --with "alice,bob" finds emails from or to either persondays - Look back N days (default: 30)limit - Results per page (default: 50, max: 100)offset - Pagination offset# Batch triage all 'new' emails
scripts/triage
# Triage single email
scripts/triage 123
# Check progress
scripts/triage-progress
scripts/sync-emails --account personal --full
scripts/accounts # monitor progress
scripts/email-stats --days 7
scripts/triage-progress
scripts/emails --type newsletter --status triaged --days 7
scripts/emails --type personal --status triaged --days 3
Query triaged emails and filter by those with potential_action_items in the analysis:
scripts/emails --status triaged --days 7
Then filter results where analysis.potential_action_items is non-empty.
scripts/triage # all pending
scripts/triage 123 # specific email
npx claudepluginhub jarvusinnovations/claude-assist --plugin claude-assistCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.