Chrome extension · unpublished dev build · v1.0.0
Poke Shield
A privacy-focused blocker for your browsing. It stops ads, trackers, and telemetry, keeps your links clean of tracking parameters, and hides the annoyances. Install it as an unpacked extension in Chrome or Chromium.
Manifest V3 only
declarativeNetRequest, no deprecated webRequestBlocking
Zero telemetry
The extension never phones home
100% local
Settings and stats stay in your browser
What it blocks
Protection that stays out of your way
Each protection is a modular declarativeNetRequest ruleset or content script you can toggle on and off from the popup or the settings page, under a single master switch.
Tracker blocker
Blocks cross-site trackers, fingerprinters, and session recording with a declarativeNetRequest ruleset.
Ad blocker
Stops ad servers, ad networks, and ad exchanges before they load on any page.
Telemetry & pixels
Blocks Google Analytics, Google Tag Manager, Meta/Facebook Pixel, TikTok Pixel, Criteo, Hotjar, Mixpanel, Segment, Sentry tracing, and more.
URL cleaner
Strips utm_*, fbclid, gclid, mc_eid, igshid, dclid, msclkid, ttclid, twclid, _ga and similar, while keeping functional parameters.
Cosmetic filtering
Hides ad containers, ad slots, sponsored posts, cookie banners, and anti-adblock overlays, and collapses empty ad boxes left behind after blocking.
YouTube protection
Main-world sanitizer strips ad fields from player responses before playback, plus cosmetic hiding of sponsored and ad modules and a guarded skip fallback.
Local only
No remote code, no telemetry, no browsing-history collection. Everything runs and stays on your device.
Changelog
Fixed after user testing
Empty ad boxes are now collapsed
Blocked ads used to leave empty grey placeholders behind. Cosmetic filtering now hides ad containers, ad slots, and Google Ads placeholders, and a MutationObserver collapses newly inserted empty ad slots and wrappers after network blocking, so pages no longer show blank boxes.
Reworked YouTube protection
Replaced fast-forwarding and DOM-only skipping with an early page-context sanitizer that strips ad fields from YouTube player responses before playback, plus clean cosmetic hiding of sponsored and ad modules and a guarded skip fallback. It's best-effort and degrades gracefully. See the YouTube protection section below for how it works and its limits.
YouTube protection
Ad data is stripped before playback starts
YouTube ad handling is best-effort and inspired by uBlock Origin / uBOL / Brave scriptlet concepts. It never claims to guarantee bypass or evasion, and it collects no data.
1. Early sanitization
A MAIN-world script at document_start removes adPlacements, playerAds, adSlots, and adBreakParams from ytInitialPlayerResponse, and wraps JSON.parse, fetch, and XMLHttpRequest so /youtubei/v1/player responses are sanitized before the player consumes them. Video data is preserved untouched.
2. Cosmetic hiding
A MutationObserver hides sponsored banner cards, video overlays, home-feed promo shelves, sidebar and in-feed ad modules (ytd-promoted-video-renderer, ytd-ad-slot-renderer, .ytp-ad-module, .ytp-ad-overlay-container), handling SPA navigation and dynamic DOM.
3. Network rules
A declarativeNetRequest ruleset blocks dedicated YouTube ad and telemetry endpoints like /api/stats/ads, /api/stats/qoe, /ptracking, /pagead, and /youtubei/v1/log_event, never the video player data itself.
Limitations. YouTube changes its markup and API frequently, and browser extension APIs and site policies can limit what is possible. The wrappers fail safe (original data is returned if anything throws) and never auto-fast-forward or tamper with audio. If YouTube changes, some or all of this may stop working; the extension degrades gracefully and never breaks playback.
Included files
A complete, loadable extension
The zip is a real unpackable Manifest V3 extension, not a mock. Open it in Chrome's Load unpacked flow and it works. Browse every file inline below.
- manifest.jsonMV3 manifest, permissions, static rulesets
- background/service-worker.jsSettings, ruleset toggles, allowlist, stats, badge
- content/url-cleaner.jsQuery-parameter stripping (document_start)
- content/cosmetic-filter.jsAd/annoyance hiding + empty-slot collapse
- content/youtube.jsYouTube cosmetic hiding + guarded skip fallback
- content/youtube-sanitize.jsYouTube player ad-data sanitizer (MAIN world)
- rules/ads.jsonAd server and ad network rules
- rules/trackers.jsonCross-site tracker and fingerprint rules
- rules/telemetry.jsonAnalytics, pixel, and beacon rules
- rules/annoyances.jsonConsent and anti-adblock rules
- rules/url-tracking.jsonTracking-redirector unwrap rules
- rules/youtube.jsonYouTube ad and telemetry endpoints
- popup/popup.html + popup.jsToolbar dashboard with toggles and stats
- options/options.html + options.jsFull settings, allowlist, reset
- icons/Generated PNG icons + source SVG
- README.mdInstall, privacy model, limits, testing checklist
- LICENSE + ATTRIBUTION.mdMIT code license + list attribution
Install
Up and running in under a minute
- 01
Download
Grab the zip and unzip it to a folder you can find.
- 02
Open extensions
Go to chrome://extensions in Chrome or Chromium.
- 03
Enable developer mode
Flip the Developer mode toggle in the top-right corner.
- 04
Load unpacked
Click Load unpacked and select the extension folder containing manifest.json.
Privacy & limits
How it treats your data
Privacy model
- No remote code - nothing is loaded from the network at runtime.
- No telemetry and no browsing-history collection.
- Blocked-request stats and settings live in local chrome.storage.
- The active-tab URL is read only to power the per-site allowlist.
- Trackers are blocked before they load; nothing about you is sent out.
Known limitations
- The bundled rules are a curated starter set, not a full commercial filter.
- Aggressive blocking can break a site that depends on a blocked domain.
- Cosmetic filtering is deliberately conservative to avoid hiding real content.
- YouTube handling is best-effort and can stop working when YouTube changes.
- Chrome caps each static ruleset at 3000 rules and 50 enabled rulesets.
- This is an unpacked dev build, not published to the Chrome Web Store.
If a site misbehaves, add it to the allowlist from the popup; blocking stops there until you remove it.
Research & attribution
Inspired by the community filter lists
The bundled rules are an original curated starter set, not a copy of any upstream list. These projects are inspirations and optional compatible sources you can bring in yourself, subject to their own licenses.
- EasyList / EasyPrivacy opens a new tabGPL v3
- Peter Lowe's Ad and tracking server list opens a new tabMIT
- AdGuard Base / Tracking Protection opens a new tabGPL v3
- OISD opens a new tabMIT
- HaGeZi's The Blocklist Project opens a new tabCC BY 4.0
- ClearURLs opens a new tabMPL 2.0
- uBlock Origin opens a new tabGPL v3
Full attribution, conversion notes, the threat model, and an MV3-limits section live in the extension's README and ATTRIBUTION files.
Take back your browsing
Download the extension, load it unpacked, and watch the blocked-request counter climb while the clutter disappears.
Download poke-privacy-blocker.zipManifest V3 · unpacked developer build · not on the Chrome Web Store