AI-assisted defenses against the kind of spam keyword filters miss — pseudo-personalised wide-scrape outreach, AI-faked impersonation, and tracking-pixel surveillance. Capture samples to a personal corpus, analyse intent, surface filter patterns, scan for tracking pixels (incl. ad-tracker blocking), draft manual unsubscribe replies, push server-side blocks via an email MCP, and contribute to collaborative public blocklists.
One-time setup for AdGuard Home integration. Captures the AdGuard Home base URL, credentials, and target blocklist filename, validates connectivity, and persists to corpus/config.json. Use before adguard-push.
Push the user's accumulated tracking-pixel + ad-tracker domains from the SpamHole corpus into a self-hosted AdGuard Home instance, using the credentials configured by adguard-configure. Network-layer block — every device on the LAN benefits, not just one mailbox. Use when the user wants to apply their corpus findings at the DNS layer.
Run the full SpamHole analysis pipeline on a single email — semantic spam reasoning, tracking-pixel detection, sender block, processed-emails log, markdown report. Use when the user wants a deep dive on one email rather than the lighter capture-spam-sample flow.
Create a server-side Gmail filter that auto-trashes (or labels + archives) future mail from a sender, via an available email MCP. Falls back to recording the block in the local sender-blocklist.json if no MCP is wired up. Use when the user says "block this sender" or "make sure I never see another email from X".
Process every unanalysed .eml file in the user's corpus inputs/emails/ directory through the full analyse-email pipeline. Skips files that already have a corresponding analysis report. Use when the user has dropped many .eml files into the corpus at once.
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Claude Code plugin for AI-assisted defenses against the kind of spam that keyword filters miss — pseudo-personalised wide-scrape outreach, AI-faked "I care" impersonation, and tracking-pixel surveillance.
The premise: traditional spam filtering looks at infrastructure (DKIM, SPF, sender reputation). The new wave of spam passes all of that. It's commercial scraped-list outreach with valid auth, real domains, and AI-generated pseudo-personalisation that pretends to engage with you. The signal is in the intent, not the headers — exactly the kind of thing an LLM is well-suited to reason about.
SpamHole is a personal-corpus tool. You feed it the spam that bothers you, it learns the patterns, and it helps you tune filters, push DNS-level blocks, and (optionally) contribute findings to public anti-tracking lists.
| Skill | Purpose |
|---|---|
setup-corpus | First-run scaffolding — creates the user's per-machine spam corpus and seeds inventory files |
capture-spam-sample | Lightweight capture flow — save one annoying email, get a filter pattern + system-prompt tuning suggestion + optional unsubscribe reply |
analyse-email | Heavier forensic pipeline — full SSA, tracking detection, markdown report |
bulk-analyse | Run analyse-email over every queued .eml |
scan-tracking-pixels | Surgical pixel scan on one email |
scan-recent-pixels | Bulk pixel sweep across recent inbox messages — reconnaissance |
tracking-report | Read-only summary of accumulated tracker inventory |
block-sender | Server-side Gmail filter via an email MCP, with local-only fallback |
draft-unsubscribe-reply | Compose (and optionally send) a manual unsubscribe-request reply |
export-dns-blocklist | Materialise inventory as Pi-hole / AdGuard / hosts / dnsmasq / unbound |
adguard-configure | One-time setup for AdGuard Home integration |
adguard-push | Push the corpus's tracker domains directly into AdGuard Home (network-wide block) |
contribute-blocklist | Sanitise and prepare a PR-ready contribution to public anti-tracking lists (EasyPrivacy, hagezi, oisd, AdGuard) |
mcp/adguard-home/ ships a minimal stdio MCP server wrapping the AdGuard Home REST API. Optional — the adguard-* skills can also drive AdGuard Home directly via HTTP.
gws-personal / gws-business) that capture-spam-sample, block-sender, draft-unsubscribe-reply, and scan-recent-pixels use to read messages and create Gmail filters.By default, your corpus lives at ${CLAUDE_USER_DATA:-~/.local/share/claude}/spamhole/corpus/. You can override via setup-corpus — many users will want to point it at a private GitHub repo so the corpus is backed up and versioned.
The plugin itself never reads or writes user data outside the configured corpus path.
.eml files often contain personal identifiers (recipient address embedded in tracking links, internal references). Default to keeping the corpus local and private.contribute-blocklist strips per-recipient identifiers, sender display names, subject lines, and full URLs before exporting — only domain-level data leaves the corpus.op-vault plugin) is recommended for any credentials this plugin handles.claude plugins install spamhole@danielrosehill
The corpus is the hole you toss the spam into. SpamHole is also a deliberate riff on Pi-hole — the spiritual cousin of this plugin at the network layer. SpamHole + Pi-hole / AdGuard Home is the pairing.
v0.1 — converted from the earlier Claude-Spam-Processor workspace template. Skills work; the AdGuard Home MCP is a minimal stub that covers the surface the skills need. Expect breaking changes before v1.0.
MIT — see LICENSE.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin spamholeClaude Code plugin: ideation and planning workflow — capture, evaluate, rank, simulate, and plan ideas, with ideation/single-idea-eval/multi-idea-ranking/feature-ideas/simulation/idea-capture variants.
First-pass data analysis toolkit: correlations, PII flagging, anomalies, hypothesis tests, data dictionaries, and trend analysis on a dataset in a folder.
Claude Code plugin for generating personal user manuals and private documentation for codebases. Creates personalized, private reference guides with PDF output support.
Research, filter, compare, and evaluate AI models on OpenRouter — discover models by capability (tool use, vision, audio), get cost/context-aware recommendations, run head-to-head comparisons, and conduct deep research that goes beyond the OpenRouter catalog.
Claude Code plugin for writing assistance, proofreading, style editing, and text transformation workflows.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.