CUBE = Chrome URL Blocking Extension.
A modern, privacy-first request blocker built on Manifest V3 + Chrome’s declarativeNetRequest engine.
- Privacy-first defaults: block rules enabled; optional compatibility allow rules are off until you opt in.
- Fast & local: blocking happens in Chrome’s native DNR engine (no proxy, no remote service).
- Modern UX: “Fix This Site” flows (temporary tab/site bypass), per-domain allow/block, and a “Recent Activity” view.
- Transparent diagnostics: optional local match logging via
onRuleMatchedDebug(unpacked/dev only).
- Open
chrome://extensions - Enable Developer mode
- Click Load unpacked
- Select this repo folder
CUBE ships static rulesets (generated from filter lists) and also supports dynamic rules you add from the popup:
- Static rulesets (packaged, versioned):
rules.json,rules.2.json,rules.3.json,rules.4.json(block shards)rules.exceptions.json(optional compatibility exceptions; disabled by default)rules.allowlist.json(optional support-widget allowlist; disabled by default)
- Dynamic/session rules (runtime):
- per-domain allow/block
- scoped allows
- temporary bypass (tab / site) to quickly make a site work
Rules are generated from Adblock Plus (ABP)-style filter lists using Go:
go run ./tools/rulegenUseful flags:
-blocks-shards 4writesrules.json,rules.2.json, …-max-rules 30000caps each ruleset-source name=urladds/replaces sources (repeatable)-exceptions none|scoped|allcontrols@@exception emission intorules.exceptions.json-builtin-allowlist=falsedisables the small support-widget allowlist ruleset-allow-domain example.comadds domains to the generated allowlist ruleset (repeatable)
The icon set is generated (deterministically) from Go:
go run ./tools/icongen -outdir iconsOutputs:
icons/icon16.pngicons/icon32.pngicons/icon48.pngicons/icon128.png
Diagnostics logging uses declarativeNetRequest.onRuleMatchedDebug. Per Chrome’s permission model, this is intended for debugging/unpacked extensions; CUBE keeps diagnostics off by default and stores matches locally.
MIT — see LICENSE.