Garden Inbox
paperclipai/paperclip
Scan a Paperclip user's Mine inbox, classify reversible archive candidates, request checkbox confirmation, and archive only accepted selections.
Runs a full inbox triage using the knowledge base created by the 'inbox-setup' skill.
$ npx skills add alirezarezvani/claude-skills --skill inbox-triage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install alirezarezvani/claude-skills inbox-triage --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/alirezarezvani/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/productivity/email/skills/inbox-triage .claude/skills/inbox-triage && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "inbox-triage" agent skill from https://github.com/alirezarezvani/claude-skills/tree/main/productivity/email/skills/inbox-triage into .claude/skills/inbox-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-triage", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/alirezarezvani/claude-skills/tree/main/productivity/email/skills/inbox-triageType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add alirezarezvani/claude-skills --skill inbox-triage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install alirezarezvani/claude-skills inbox-triage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alirezarezvani/claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/productivity/email/skills/inbox-triage .agents/skills/inbox-triage && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "inbox-triage" agent skill from https://github.com/alirezarezvani/claude-skills/tree/main/productivity/email/skills/inbox-triage into .agents/skills/inbox-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-triage", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alirezarezvani/claude-skills --skill inbox-triage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install alirezarezvani/claude-skills inbox-triage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alirezarezvani/claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/productivity/email/skills/inbox-triage .cursor/skills/inbox-triage && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "inbox-triage" agent skill from https://github.com/alirezarezvani/claude-skills/tree/main/productivity/email/skills/inbox-triage into .cursor/skills/inbox-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-triage", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/alirezarezvani/claude-skills.git --path productivity/email/skills/inbox-triage--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add alirezarezvani/claude-skills --skill inbox-triage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install alirezarezvani/claude-skills inbox-triage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alirezarezvani/claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/productivity/email/skills/inbox-triage .gemini/skills/inbox-triage && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "inbox-triage" agent skill from https://github.com/alirezarezvani/claude-skills/tree/main/productivity/email/skills/inbox-triage into .gemini/skills/inbox-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-triage", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install alirezarezvani/claude-skills inbox-triageInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add alirezarezvani/claude-skills --skill inbox-triage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/alirezarezvani/claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/productivity/email/skills/inbox-triage .github/skills/inbox-triage && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "inbox-triage" agent skill from https://github.com/alirezarezvani/claude-skills/tree/main/productivity/email/skills/inbox-triage into .github/skills/inbox-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-triage", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alirezarezvani/claude-skills --skill inbox-triage -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install alirezarezvani/claude-skills inbox-triage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alirezarezvani/claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/productivity/email/skills/inbox-triage .opencode/skills/inbox-triage && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "inbox-triage" agent skill from https://github.com/alirezarezvani/claude-skills/tree/main/productivity/email/skills/inbox-triage into .opencode/skills/inbox-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-triage", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
inbox-triageRuns a full inbox triage using the knowledge base created by the 'inbox-setup' skill.
Inbox Triage is an agent skill from alirezarezvani/claude-skills. Runs a full inbox triage using the knowledge base created by the 'inbox-setup' skill. Light-intake by design (most invocations skip questions and run with KB-default preferences); asks at most 2 grill-me override questions when invocation is outside normal cadence or includes category-skip intent. Searches recent emails, classifies them via the user's taxonomy, researches new senders, generates recommendations, drafts replies (NEVER sends), delivers a report in the user's preferred format, and updates the…
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `references/drafts_only_safety.md`, `references/kb_file_contract.md` and `references/triage_decision_framework.md`).
It sits in Productivity & Automation, covering Email management. The repository describes itself as: 380 Claude Code skills & agent skills & plugins (30+ Agents, 70+ custom commands, 380+ skills, customizable references, scripts)for Claude Code, Codex, Gemini CLI, Cursor, and 8… The licence is MIT.
11 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 19392f7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Inbox Triage loads about 3.5k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 226 tokens; SKILL.md has 1,581 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from alirezarezvani/claude-skills at commit 19392f7, republished under its MIT licence (© alirezarezvani). 1,581 words, ~3,534 tokens.
.claude/skills/inbox-triage/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Paired with
inbox-setup. This skill consumes the 7-file knowledge base thatinbox-setupwrites at${WORKSPACE}/Email/. The file contracts MUST match exactly. Seereferences/kb_file_contract.md— this is the mirror of the setup-side contract, viewed from the read side.
Run on a recurring schedule (1–3x daily) or on demand. Classify recent emails, research new senders, generate decision recommendations, draft replies (NEVER SEND), deliver a clean report, and update the knowledge base with what was learned this run.
Required reads at start (fail-fast if missing):
Core (required):
${WORKSPACE}/Email/email-taxonomy.md — classification + report preferences${WORKSPACE}/Email/email-patterns.md — voice, persona, templates, hard rulesOptional core (read if exists):
${WORKSPACE}/Email/evaluation-framework.md${WORKSPACE}/Email/rate-card.mdEvolving (read AND update every run):
${WORKSPACE}/Email/blocklist.md${WORKSPACE}/Email/tracker.mdOutput:
${WORKSPACE}/Email/triage-log/<YYYY-MM-DD>-<run-label>.md — per-run logIf any core required file is missing → halt, direct user to run inbox-setup first. Use scripts/kb_reader.py to perform the read + validation.
This skill creates drafts. It NEVER sends.
This is the safety property that makes the skill safe to run automatically. Stated multiple times in this skill body. Non-negotiable.
The scripts/draft_safety_validator.py enforces it post-run. Any send-shaped tool call in the action log fails validation. See references/drafts_only_safety.md for the full discipline canon.
Inbox-triage is light-intake by design — it runs on a recurring cadence with preferences pre-baked into the knowledge base from inbox-setup. The grill-me discipline here is asking ONLY the override questions that matter THIS run.
Override the default 9-hour search window? Pick: yes (specify hours) / no (use default).
Why I'm asking: If you're running on-demand outside your normal 2x/day cadence, you may want a wider window (24h after a long break) or narrower (2h for a quick check).
Skip if cadence is normal.
Skip any categories this run? E.g., "skip newsletters", "skip financial".
Why I'm asking: Sometimes you just want to scan opportunities or just want to clear active threads. Category skip narrows the run scope.
Skip if user gave no category-skip signal.
Stop condition: Max 2 questions. Default invocations skip both questions and run with KB-default preferences. The skill is optimized for fast recurring execution; intake is the exception, not the norm.
Compute via current date math. Default lookback: 9 hours (works for 2x/day cadence with slight overlap so emails between runs aren't missed).
Use scripts/search_window_calculator.py --cadence <CADENCE> --now <ISO>:
now = current_datetime
window_start = now - 9_hours (default for 2x-daily)
run_label = "Morning" if now.hour < 12 else "Afternoon" if now.hour < 17 else "Evening"Cadence-to-default-window mapping (override via Q1):
| Cadence (from email-taxonomy.md S1.Q5) | Default window |
|---|---|
| once daily | 26h |
| 2x daily | 9h |
| 3x daily | 6h |
| on-demand only | 24h (asks Q1) |
Two queries (provider-agnostic adapter pattern):
window_startCollect for each email: sender, subject, date, snippet, thread ID, labels.
Provider adapter mapping:
| Provider | Tool |
|---|---|
| Gmail | Gmail MCP |
| Outlook / Microsoft 365 | Outlook MCP |
| IMAP (Fastmail, ProtonMail, etc.) | IMAP MCP if available; halt otherwise |
| (no email tool available) | Halt with clear message: "No email tool registered for this session." |
Apply the taxonomy from email-taxonomy.md. For lowest-priority category (newsletters / automation / spam): skip thread reads entirely — context cost not worth it. For everything else: read full thread.
For senders not in tracker / blocklist / prior logs:
blocklist.md → if matched, auto-skiptracker.md → if known thread, note existing contextSkip research entirely for: known senders (in tracker), internal email, automated notifications, obvious low-priority.
For decision-required emails, apply the framework from evaluation-framework.md. Categorize:
| Category | When | Output |
|---|---|---|
| TAKE IT | Meets criteria | Recommend engaging; draft reply (Step 6) |
| WORTH CONSIDERING | Has potential, needs user judgment | Surface key context; draft for user to edit |
| PASS | Doesn't meet criteria | Brief "why" (1–3 sentences); draft polite decline |
| FLAG FOR REVIEW | Unusual; needs direct user decision | Surface fully; NO draft (user decides response shape) |
Each: brief "why", relevant context, pricing/timeline comparison if applicable.
Skip Step 5 entirely if no evaluation-framework.md exists.
See references/triage_decision_framework.md for the framework canon.
For every reasonable reply candidate, create a draft using email-patterns.md voice rules.
Draft for: opportunity responses (TAKE IT / WORTH / PASS), active conversations needing reply, action items, important personal emails.
Do NOT draft for:
Mechanics:
to, subject (Re: [original])The draft body MUST honor:
email-patterns.mdemail-patterns.mdIf evaluation-framework.md exists, draft tone matches recommendation:
Honor user's preference from email-taxonomy.md "Report Preferences" section. Default: email draft to self with HTML.
Subject: Inbox Triage — [Day], [Month Date] ([Run Label])
Sections (in order):
**Sender** — one-sentence summary + recommendation.Formatting (if HTML):
<style>)blocklist.md (append new):
tracker.md (append + update):
Learning patterns to observe over runs:
After 5+ runs, suggest KB improvements to user (e.g., "You always decline emails from X — add as auto-skip?").
Save to ${WORKSPACE}/Email/triage-log/[YYYY-MM-DD]-[run-label].md:
The log is the audit trail for scripts/draft_safety_validator.py to scan for send operations post-run.
Even with zero new emails:
tracker.md for items due today or overdueSkip Steps 3–6 entirely on empty inbox.
| Situation | Behavior |
|---|---|
| KB files missing | Halt; direct user to run inbox-setup |
| Email tool unavailable | Halt with clear message about required tool |
| Web search unavailable for sender research | Skip research step; note senders not researched |
| Draft creation fails | Skip that draft; note in log; report continues |
| Report delivery fails | Save report to file as fallback; notify user |
| User has 100+ new emails | Stay within reasonable limits; flag volume; offer to focus on priority categories only |
| Sender appears in both blocklist and tracker | Tracker wins (active conversation); note inconsistency in log |
| Script | Role |
|---|---|
scripts/kb_reader.py | Reads + validates the 7-file KB. Returns parsed structure. Halts with explicit error if required files missing. |
scripts/search_window_calculator.py | Computes window_start from cadence + current time. Returns run_label. Honors Q1 override. |
scripts/draft_safety_validator.py | Post-run scan of the action log for any send-shaped tool call. FAILs if detected. The deterministic enforcement of the NEVER-SEND rule. |
references/kb_file_contract.md — canonical 7-file contract (read perspective; mirrors ../inbox-setup/references/kb_file_contract.md)references/triage_decision_framework.md — TAKE IT / WORTH / PASS / FLAG taxonomyreferences/drafts_only_safety.md — the NEVER-SEND discipline canonVersion: 1.0.0
Source spec: megaprompts/07-inbox-triage-megaprompt.md (maintainer-local draft spec — gitignored, not present in the public repository)
Build pattern: Path B (direct conversion). Paired with inbox-setup.
© alirezarezvani, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (scripts, references) in productivity/email/skills/inbox-triage of alirezarezvani/claude-skills.
Open the folder on GitHubat commit 19392f7
Inbox Triage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Inbox Triage this skillalirezarezvani/claude-skills | 28k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Garden Inboxpaperclipai/paperclip | 99k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Continuetelegramdesktop/tdesktop | 33k | 2 repos | ~9.4k | Automated safety check: Pass | GPL-3.0 | |
| Process Inboxtelegramdesktop/tdesktop | 33k | 1 repos | ~5.4k | Automated safety check: Pass | GPL-3.0 | |
| Process InboxTDesktop-x64/tdesktop | 3k | — | ~4.3k | Automated safety check: Pass | GPL-3.0 | |
| Career-Ops Gmail Lead Plugincareer-ops-hq/career-ops | 74k | — | ~233 | Automated safety check: Notes | MIT |
paperclipai/paperclip
Scan a Paperclip user's Mine inbox, classify reversible archive candidates, request checkbox confirmation, and archive only accepted selections.
telegramdesktop/tdesktop
Continue autonomous Telegram Desktop development from the shared ai-tdesktop repository.
telegramdesktop/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
TDesktop-x64/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
career-ops-hq/career-ops
Pulls job leads from a Gmail label into the career-ops pipeline, extracting job URLs from DMARC-passing emails and de-duplicating against existing leads.
Atomic-Mail/atomic-mail-agentic
Read and write email through the Atomic Mail from an AI agent.
alirezarezvani/claude-skills
Writes INVEST-checked user stories with acceptance criteria, splits epics, plans sprints from velocity and ranks the backlog with a weighted score.
alirezarezvani/claude-skills
OKR cascade toolkit for product leaders: generates aligned company-to-team OKRs from five strategy types and scores how well they line up.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store.
alirezarezvani/claude-skills
Design AWS architectures for startups using serverless patterns and IaC templates.
alirezarezvani/claude-skills
Calculates attribution, funnel and ROI figures for marketing campaigns with three Python scripts that need only the standard library.
alirezarezvani/claude-skills
Reverse-engineers a frontend, backend or fullstack codebase into a product requirements document with per-page docs, an enum dictionary and an API inventory.
Categories
Runs a full inbox triage using the knowledge base created by the 'inbox-setup' skill. Inbox Triage is an agent skill from alirezarezvani/claude-skills. Runs a full inbox triage using the knowledge base created by the 'inbox-setup' skill.
Inbox Triage fits situations like: the user wants their inbox processed; in any variation (e.g; triage my inbox; run email triage.
Run `npx skills add alirezarezvani/claude-skills --skill inbox-triage -a claude-code`. Or copy the skill folder (productivity/email/skills/inbox-triage in alirezarezvani/claude-skills) into .claude/skills/inbox-triage in your project. Claude Code loads it when a task matches its description.
Run `npx skills add alirezarezvani/claude-skills --skill inbox-triage -a codex`. Or copy the skill folder (productivity/email/skills/inbox-triage in alirezarezvani/claude-skills) into .agents/skills/inbox-triage in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alirezarezvani/claude-skills --skill inbox-triage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/inbox-triage, .gemini/skills/inbox-triage, .github/skills/inbox-triage and .opencode/skills/inbox-triage in your project.
Going by SKILL.md and its folder, Inbox Triage needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Inbox Triage is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Inbox Triage: Garden Inbox (paperclipai/paperclip, 99k stars), Continue (telegramdesktop/tdesktop, 33k stars), Process Inbox (telegramdesktop/tdesktop, 33k stars) and Process Inbox (TDesktop-x64/tdesktop, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
alirezarezvani (a GitHub user) maintains it in alirezarezvani/claude-skills, which has 27,938 GitHub stars. The repository holds 342 skills in this directory. The repository was last updated on August 30, 2026.
Source: alirezarezvani/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.