About inbox-triage
inbox-triage is a Gmail workflow skill for sorting unread inbox messages by priority and handling groups of email. It combines configurable classification rules with batch archive commands and safeguards for reviewing messages.
Key features
- 01Classify unread inbox messages into P1–P4
- 02Apply editable, first-match rules
- 03Summarize messages before full reading
- 04Batch archive selected priority groups
- 05Support dry runs and confirmation
Use cases
- 01Prioritize unread Gmail messages
- 02Archive low-priority groups in batches
- 03Review urgent threads while respecting privacy
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ maroffo/ claude-forge --skill inbox-triageAfter installing, type/inbox-triagein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
pyproject.tomlrules.yamlsrc/inbox_triage/__init__.py__main__.pyclassifier.pycli.pyformatter.pymodels.pytests/__init__.pyconftest.pytest_classifier.pytest_cli.pytest_formatter.pytest_models.pyDetails
From the project READMEABOUTME: Gmail inbox triage - classify unread by priority, suggest actions
ABOUTME: P1-P4 priority system with CLI tool for classification and batch archival
Inbox Triage Skill
Gmail: See ../_GMAIL.md for account config and commands.
Workflow
Step 1: Classify Inbox
Pipe gog search output through the CLI tool:
gog gmail search "is:unread in:inbox" --json --max=30 [email protected] \
| uv run --project ~/.claude/skills/inbox-triage -- inbox-triage classify
This outputs a markdown summary grouped by priority and saves state to /tmp/inbox-triage-state.json.
Step 2: Review with User
Present the CLI output to the user. The summary includes:
- P1 - Urgent: Direct messages from known contacts, time-sensitive
- P2 - Important: Work-related, newsletters worth reading, personal correspondence
- P3 - Normal: General updates, notifications
- P4 - Low Priority: Promotions, social, automated noise
Step 3: Archive
Use the archive subcommand for batch operations:
# Dry run (shows commands without executing)
uv run --project ~/.claude/skills/inbox-triage -- inbox-triage archive p3 p4
# Execute
uv run --project ~/.claude/skills/inbox-triage -- inbox-triage archive p3 p4 --yes
Step 4: Handle Remaining Items
For P1/P2 threads that need action:
# Open in browser
gog gmail url <threadId>
# Star for follow-up
gog gmail thread modify <threadId> [email protected] --add=STARRED
# Mark as read without archiving
gog gmail thread modify <threadId> [email protected] --remove=UNREAD
Classification Rules
Rules are in ~/.claude/skills/inbox-triage/rules.yaml (user-editable). First match wins:
- Sender exact email match
- Sender domain match (
@domain.com) - Gmail label match
- Gmail category fallback (
CATEGORY_PROMOTIONS, etc.) - Default (P3)
Rules
- Summarize first - don't read full content unless asked
- Respect privacy - don't read personal emails in detail without permission
- Batch operations - group similar actions (archive all promos, etc.)
- Confirm destructive actions - always confirm before trash/delete
- Open in browser - use
gog gmail url <threadId>for user to read full email