spark-recipe-inbox-zero — Claude Code skill: triage inbox to zero
A skill that walks the agent through Spark inbox categories and clears the mailbox: read the thread, then archive, move or mark done.
npx skills add readdle/spark-cli-skills --skill spark-recipe-inbox-zero -a claude-code
npx skills add readdle/spark-cli-skills --skill recipe-inbox-zero -a claude-codeWhat spark-recipe-inbox-zero does
The skill lays out an order for working through a Spark inbox. The agent scans by category in priority order — priority, personal, invitation, notification, newsletter — then reads the threads that matter and picks an action for each message.
Actions map to spark commands: spark thread <id> to read, then spark action archive <id>, moveToFolder, markAsDone, pin, snooze, setAside. Notifications and newsletters are meant to be archived in a batch by listing several ids in one command. A final check with spark emails Inbox --filter "is:unread" shows what is left.
The skill depends on the base use-spark skill for command reference and filter syntax, and needs the triage access level. Without those the commands will not go through. When a message needs a reply, the recipe suggests drafting with spark draft --reply-to <id> and archiving afterwards — the draft keeps the task alive.
What it helps with
- triage an inbox by category instead of top to bottom
- read the thread before deciding on a message
- batch-archive a pile of notifications in one command
- snooze a message until a date
- reclassify a sender whose mail keeps landing in the wrong category
Example prompts for the agent
- triage my Inbox to zero, category by category
- show unread from category:priority and suggest actions
- batch-archive all notifications after I confirm
How to install spark-recipe-inbox-zero
1Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill spark-recipe-inbox-zero -a claude-codenpx skills add readdle/spark-cli-skills --skill recipe-inbox-zero -a claude-code2Manually: put the files in place
~/.claude/skills/recipe-inbox-zero/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/recipe-inbox-zero/
1Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill recipe-inbox-zero -a codex2Manually: put the files in place
.agents/skills/recipe-inbox-zero/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill recipe-inbox-zero -a cursor2Manually: put the files in place
.cursor/skills/recipe-inbox-zero/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install readdle/spark-cli-skills recipe-inbox-zero2Manually: put the files in place
.github/skills/recipe-inbox-zero/SKILL.md1Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill recipe-inbox-zero -a gemini-cli2Platform CLI
gemini skills install https://github.com/readdle/spark-cli-skills --path skills/recipe-inbox-zeroManually: put the files in place
.devin/skills/recipe-inbox-zero/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill recipe-inbox-zero -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about spark-recipe-inbox-zero
How do I install spark-recipe-inbox-zero in Claude?
Run npx skills add readdle/spark-cli-skills --skill spark-recipe-inbox-zero -a claude-code. The skill file lands at ~/.claude/skills/recipe-inbox-zero/SKILL.md.
What does spark-recipe-inbox-zero do?
It drives the agent through a Spark inbox in category order, reads threads and applies actions: archive, move to folder, mark as done, pin, snooze or set aside.
What does the skill need to work?
The base use-spark skill for command reference and filter syntax, plus the triage access level.
Source text
SKILL.md · MIT
---
name: spark-recipe-inbox-zero
description: >-
Process inbox to zero using category-first triage: review by category,
read threads, then archive, move, or mark done.
metadata:
version: 1.0.0
requires:
skills:
- use-spark
accessLevel: triage
---
# Recipe: Inbox Zero
Process the inbox to zero using category-first triage. Work through categories in priority order, then take action on each email.
**Prerequisite:** Read the `use-spark` base skill for command reference and filter syntax.
**Access level required:** triage.
## Steps
### Step 1: Scan by category (use recipe-inbox-by-category)
Process inbox in priority order:
```bash
spark emails Inbox --filter "category:priority is:unread"
spark emails Inbox --filter "category:personal is:unread"
spark emails Inbox --filter "category:invitation"
spark emails Inbox --filter "category:notification is:unread"
spark emails Inbox --filter "category:newsletter newer_than:7d"
```
### Step 2: Review and act on each email
For emails that need attention, read the thread:
```bash
spark thread <id>
```
Then decide the action:
**Archive** - handled or informational, no further action needed:
```bash
spark action archive <id>
```
**Move to folder** - needs filing:
```bash
spark action moveToFolder <id> --folder "[email protected]:Projects"
```
**Mark as done** - completed/resolved:
```bash
spark action markAsDone <id>
```
**Pin** - important, need to come back to:
```bash
spark action pin <id>
```
**Snooze** - not relevant now, revisit later:
```bash
spark action snooze <id> --date 2026-04-10
```
**Set aside** - save for later review:
```bash
spark action setAside <id>
```
### Step 3: Batch process notifications and newsletters
For categories with many items, batch archive:
```bash
spark action archive <id1> <id2> <id3> <id4>
```
### Step 4: Verify
```bash
spark emails Inbox --filter "is:unread"
```
Confirm the inbox is clear or report what's left.
## Tips
- Work through categories in order - don't jump to newsletters before handling people mail.
- Batch archive is efficient for notifications: list them, confirm with the user, then archive all at once.
- Pin or snooze items that need future attention rather than leaving them unread.
- If an email needs a reply, use `spark draft --reply-to <id>` and then archive - the draft keeps the task alive.
- If you spot miscategorized contacts while triaging, use `spark contact-action changeCategory*` to reclassify all future mail from that sender.
© readdle · MIT · readdle/spark-cli-skills