spark-recipe-newsletter-cleanup — Claude Code skill: prune newsletters
Audits your Spark newsletter subscriptions: blocks unwanted senders, unsubscribes from noisy lists, and turns on AI summaries for the ones worth keeping.
npx skills add readdle/spark-cli-skills --skill spark-recipe-newsletter-cleanup -a claude-code
npx skills add readdle/spark-cli-skills --skill recipe-newsletter-cleanup -a claude-codeWhat spark-recipe-newsletter-cleanup does
The skill walks the agent through five steps. It starts by listing Inbox mail filtered to the newsletter category, so you get the full picture of who is sending what. From there you can open a single thread and decide its fate.
For mailing lists that offer an unsubscribe mechanism, the skill runs spark action unsubscribe <id>. Senders you want gone entirely get blocked by contact or by whole domain. Newsletters you keep but never read in full can get an auto-summary, and frequent senders can be collapsed into a single grouped entry.
It runs on top of the use-spark base skill, which supplies the command reference and filter syntax. Access level triage is required. Before blocking anything, the skill tells the agent to ask which senders you actually read — otherwise it is easy to cut something you wanted. Unsubscribing is the cleaner move than blocking, since it goes through the list's own mechanism.
What it helps with
- audit a newsletter list and spot senders you never open
- unsubscribe from noisy mailing lists through their own mechanism
- block a spammer or an entire domain
- turn on AI summaries for newsletters worth keeping
- group frequent mail from one sender into a single entry
Example prompts for the agent
- list every newsletter in my Inbox and group the senders
- unsubscribe me from this list:
spark action unsubscribe <id> - enable autosummary for [email protected]
How to install spark-recipe-newsletter-cleanup
1Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill spark-recipe-newsletter-cleanup -a claude-codenpx skills add readdle/spark-cli-skills --skill recipe-newsletter-cleanup -a claude-code2Manually: put the files in place
~/.claude/skills/recipe-newsletter-cleanup/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/recipe-newsletter-cleanup/
1Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill recipe-newsletter-cleanup -a codex2Manually: put the files in place
.agents/skills/recipe-newsletter-cleanup/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill recipe-newsletter-cleanup -a cursor2Manually: put the files in place
.cursor/skills/recipe-newsletter-cleanup/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install readdle/spark-cli-skills recipe-newsletter-cleanup2Manually: put the files in place
.github/skills/recipe-newsletter-cleanup/SKILL.md1Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill recipe-newsletter-cleanup -a gemini-cli2Platform CLI
gemini skills install https://github.com/readdle/spark-cli-skills --path skills/recipe-newsletter-cleanupManually: put the files in place
.devin/skills/recipe-newsletter-cleanup/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add readdle/spark-cli-skills --skill recipe-newsletter-cleanup -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-newsletter-cleanup
How do I install spark-recipe-newsletter-cleanup in Claude?
Run npx skills add readdle/spark-cli-skills --skill spark-recipe-newsletter-cleanup -a claude-code. The skill lands at ~/.claude/skills/recipe-newsletter-cleanup/SKILL.md.
What does spark-recipe-newsletter-cleanup do?
It audits subscriptions: finds newsletters in the Inbox, unsubscribes from unwanted lists, blocks senders and domains, enables auto-summaries for keepers, and groups frequent senders.
What does the skill need to work?
The use-spark base skill for the command reference and filter syntax, plus access level triage.
Source text
SKILL.md · MIT
---
name: spark-recipe-newsletter-cleanup
description: >-
Audit newsletter subscriptions: block unwanted senders, unsubscribe from
mailing lists, and enable AI summaries for worth-keeping ones.
metadata:
version: 1.0.0
requires:
skills:
- use-spark
accessLevel: triage
---
# Recipe: Newsletter Cleanup
Audit and prune newsletter subscriptions. Block the unwanted, unsubscribe from the noisy, and enable AI summaries for the ones worth keeping.
**Prerequisite:** Read the `use-spark` base skill for command reference and filter syntax.
**Access level required:** triage.
## Steps
### Step 1: List all newsletters
```bash
spark emails Inbox --filter "category:newsletter"
```
Review the senders. Look for patterns: senders the user never reads, duplicates, or obsolete subscriptions.
### Step 2: Review individual newsletters
For each sender the user wants to evaluate:
```bash
spark thread <id>
```
### Step 3: Remove unwanted subscriptions
For mailing lists with an unsubscribe mechanism:
```bash
spark action unsubscribe <id>
```
For senders that should be blocked entirely:
```bash
spark contact-action blockContact [email protected]
```
To block an entire domain:
```bash
spark contact-action blockDomain example.com
```
### Step 4: Enable AI summaries for keepers
For newsletters the user wants to keep but not read in full:
```bash
spark contact-action enableAutosummaryForContact [email protected]
```
### Step 5: Group repetitive senders
For senders that send frequently, group their emails to reduce inbox clutter:
```bash
spark contact-action groupEmailsFromContact [email protected]
```
## Tips
- Start with `spark emails Inbox --filter "category:newsletter" --page-size 50` to see a broad list of senders.
- Ask the user which senders they actually read before blocking anything.
- `unsubscribe` works through the mailing list's unsubscribe mechanism - it's cleaner than blocking.
- `blockContact` stops all future mail from appearing; `blockDomain` is more aggressive.
- Auto-summary generates a brief AI summary at the top of each email from that sender - great for digests.
- Grouping (`groupEmailsFromContact`) collapses repeated messages from the same sender into a single entry.
- Run this recipe periodically (monthly) to keep the newsletter list pruned.
© readdle · MIT · readdle/spark-cli-skills