Skip to content

Manifest V3 · Chrome & Microsoft Edge · v1.0.0

Keepadsandtrackersout.Keepyourdatain.

Veilkeep blocks ads, trackers and known malicious sites with filter lists built into the extension and enforced by the browser itself. It makes no network requests of its own and collects nothing.

Blocking rules
23,597 blocking rules
Automated tests
261 passing tests
Network requests by the extension
0 requests home
securepubads.g.doubleclick.netapp.jspagead2.googlesyndication.comvideo.mp4ib.adnxs.comwww.google-analytics.comwww.googletagmanager.comstatic.hotjar.comsb.scorecardresearch.comcdn.taboola.comarticle.htmlphoto.jpgstyles.css

blocking rules compiled from 4 filter lists

element-hiding selectors for leftover ad boxes

automated tests, all passing

real browsers tested: Chromium 153, Microsoft Edge 153, Google Chrome 153

network requests made by the extension

Real screenshots, not mockups

Same page. Before and after.

Captured automatically from the real extension on our offline test page, a synthetic news page that loads ads and trackers from real ad-network hostnames. Drag the handle.

Test page without an ad blocker: banner, sidebar, video and iframe ads, cookie banner
Test page with Veilkeep (default lists): ads removed
⇆
Without a blockerWith Veilkeep

Honest details: with the default lists the empty frame of the blocked video player and the cookie notice remain (the annoyance list that hides cookie notices is off by default). Nothing in these images is edited.

Veilkeep popup on the test page: 6 requests blocked (ads 4, trackers 2)

The popup on that page: per-category counts reported by the browser for this tab.

How it works

Compiled once. Enforced by your browser.

Veilkeep does the heavy lifting at build time, so at runtime there is almost nothing left to do: the browser applies the rules itself, even while Veilkeep's service worker sleeps.

  1. 1

    Filter lists

    206,849 lines

    EasyList, EasyPrivacy, Fanboy's Annoyance List, Online Malicious URL Blocklist. Pinned snapshots, each checked against a SHA-256 lock before every build.

  2. 2

    Compiler

    196,283 filters converted

    Exact conversion only. Domain filters are merged: EasyList goes from 56,214 to 3,782 rules. 7,201 filters that need scripts are dropped, not approximated.

  3. 3

    Browser engine

    23,597 rules

    Shipped inside the extension and enforced by Chrome/Edge's declarativeNetRequest engine, within the 30,000 rules the browser guarantees.

  4. 4

    Your page

    Nothing leaves

    Blocked requests never start. Optional element hiding removes leftover ad boxes. No code from lists ever runs.

Features

Everything it needs. Nothing it doesn't.

Ads, trackers, malware

EasyList, EasyPrivacy and the URLhaus malicious-URL list, on by default. An annoyance list for cookie notices and pop-ups is one switch away.

One click off, per site

Turn blocking off for a site, pause it for an hour or until the browser restarts, or pause everything. Reload and you are done.

Element hiding, on your terms

Hiding leftover ad boxes needs page access, so Veilkeep asks first and lets you grant it for all sites or just the ones you choose.

See what was blocked

The popup shows how many requests were blocked on this page by category, and which filters matched.

Your own rules

Write block, exception and element-hiding rules in familiar filter syntax. Every rule is validated; none is ever run as code.

YouTube ad assist

Removes the ad data YouTube sends to its player so video ads are not requested, hides ad containers, and falls back to muting and pressing Skip. YouTube changes often, so an ad can occasionally slip through.

The dashboard

Clear controls. Light or dark.

Real screenshots of Veilkeep's dashboard. Every control is keyboard- and screen-reader-accessible, and the design follows your system theme.

Veilkeep dashboard
Veilkeep dashboard, overview section, dark theme

Privacy

The best data policy is no data at all.

Your settings, allowlist and statistics stay in your browser profile. Veilkeep asks for the fewest permissions that can do the job.

network requests from the extension

enforced by a build check that fails on any unapproved URL in shipped code

analytics or telemetry

no crash reporting, no usage pings, no remote logging

rules downloaded while you browse

lists ship inside the extension and update with it

accounts, ads or data sales

there is no server that could receive your data

Permissions requested at install

5 permissions, 0 site access. Access to pages is optional and only requested if you turn on element hiding.

Read the privacy policy →
  • declarativeNetRequest
  • storage
  • activeTab
  • scripting
  • alarms
  • <all_urls> (optional)

Proof, not promises

Tested in real browsers. Every release.

One command runs every check below. The latest run passed all 16 gates on September 25, 2026.

Quality gates

npm run verify
  1. Install consistency (npm ls)passed0.8s
  2. Typecheckpassed2.8s
  3. Lint (ESLint)passed3s
  4. Formatting (Prettier)passed2.8s
  5. Unit, integration and regression testspassed6.2s
  6. Dependency audit (npm audit, high+)passed1.3s
  7. Test buildpassed1.2s
  8. Browser tests (chromium)passed55.5s
  9. Browser tests (msedge)passed60.5s
  10. Browser tests (chrome)passed57.8s
  11. Production buildpassed1.3s
  12. Release build smoke test (chromium)passed3.9s
  13. Release build smoke test (msedge)passed4.5s
  14. Release build smoke test (chrome)passed3.6s
  15. Validation (manifest, permissions, rules, remote code, URLs, secrets)passed1.9s
  16. Package + ZIP validationpassed1s

Real browsers

Chromium

v153

passed, 0 failed

Microsoft Edge

v153

passed, 0 failed

Google Chrome

v153

passed, 0 failed

Real Chromium, Microsoft Edge and Google Chrome load the extension and browse an offline test web. Blocked requests never reach the test server, so results reflect what the browser actually did.

Verified on every run

These ad and tracker endpoints are confirmed blocked by the regression suite:

  • ✕ securepubads.g.doubleclick.net
  • ✕ pagead2.googlesyndication.com
  • ✕ ib.adnxs.com
  • ✕ www.google-analytics.com
  • ✕ www.googletagmanager.com
  • ✕ static.hotjar.com
  • ✕ sb.scorecardresearch.com
  • ✕ cdn.taboola.com
  • ✕ www.youtube.com/pagead/adview
  • ✕ www.youtube.com/api/stats

…and 38 checks confirm that essential requests of major sites (search, mail, docs, maps, video playback, sign-in, CDNs) are not blocked.

lines of TypeScript, HTML & CSS

5,713 extension · 3,407 tests · 1,441 tooling

automated tests

159 unit · 32 integration · 48 regression · browser suite ×3

ms to open the popup

Edge 68 ms · Chrome 78 ms (median of 5)

words of documentation

23 documents: architecture, security, privacy, store compliance

Reproducible release package

2.38 MB ZIP, byte-for-byte identical on every rebuild · third-party code shipped: css-what

sha256 a1ff3e0015a410723bdb8585c8cec562eb888d3f43a9e3f04161d831b841601d

All numbers & sources

Honesty

What Veilkeep can't do.

Trust starts with limits stated plainly. These are documented in full in the project's testing report.

No blocker catches everything

Some ads come from the same servers as the content. 7,201 list filters need scripts or syntax Veilkeep deliberately does not run, so they are skipped.

YouTube ads that cannot be skipped still play

Veilkeep removes the ad instructions YouTube sends to the player, hides ad containers, and as a fallback mutes ads and presses Skip when YouTube offers it. YouTube changes its code often, so an ad can occasionally slip through.

Lists update with releases

Rules ship inside the extension, reviewed by the stores. The malware list changes upstream every 12 hours; Veilkeep is only as current as your installed version.

Counts are per page you check

Browsers only report blocked requests for the tab you are looking at unless an extension can read your browsing history. Veilkeep chose not to ask for that.

A quieter web, on your terms.

Free and open source. Chrome and Microsoft Edge 121 or later.

Coming soon toChrome Web StoreComing soon toMicrosoft Edge Add-ons