From spamhole
Scan a single email (raw .eml or live message via email MCP) for tracking pixels and ad-tracker beacons, then append every detected pixel host to the user's tracking inventories (tracking-domains.json + ad-trackers.json). Use when the user wants to surgically extract pixels from one email without running the full capture pipeline.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin spamholeThis skill uses the workspace's default tool permissions.
Targeted pixel scan on a single email. The companion `scan-recent-pixels` skill does the same in bulk over recent inbox messages.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Targeted pixel scan on a single email. The companion scan-recent-pixels skill does the same in bulk over recent inbox messages.
Read ${CLAUDE_USER_DATA:-$HOME/.local/share/claude}/spamhole/config.json → corpus_path. Run setup-corpus if missing.
Search the HTML body for tracking pixels — be aggressive, false positives here are cheap:
<img> with width="1"/height="1", width:1px/height:1px CSS, or display:none/visibility:hidden on an external image?uid=, ?eid=, ?email=, base64 blobs, long random hex/UUID path segmentsmailtrack.io, qmailroute.net, emailroute.net, mailgun.org, sendgrid.net, convertkit-mail.com, list-manage.com, mc.us<N>.list-manage.com, cmail<N>.com, hubspotemail.net, mkt<N>.com, pardot.com, marketo.com, et.<vendor>.comad-trackers.json instead of tracking-domains.json): googleadservices.com, googlesyndication.com, pagead2.googlesyndication.com, doubleclick.net, googletagmanager.com, google-analytics.com, g.doubleclick.net, facebook.com/tr, bat.bing.com, analytics.twitter.com, linkedin.com/li/track, tr.snapchat.comAlso check click-tracking: <a href> routed through redirect domains rather than the apparent destination.
domain, url, type (tracking_pixel | click_tracking | ad_tracker), context.<corpus>/data/:
tracking-domains.json — pixels and click-trackers (per-email-marketing infra)ad-trackers.json — adsense / DSP / analytics beacons
Each entry: { domain, type, url, detected_in, sender, recipient, date_detected, date_sent }.(domain, url, detected_in) triple. Increment a count field on the existing entry instead.