Filter Bubble is a Chrome and Firefox browser extension that hides web content matching topics you don't want to see.
- Add the topics you want to hide.
- For each website, add CSS selectors targeting the content blocks or feed items that might contain those topics.
- When a topic appears inside a targeted element, the element is hidden or removed.
A handful of websites are configured out of the box. Adding others means writing the selectors yourself and granting Filter Bubble access to them.
Topic phrases match as whole words, case-insensitively, and literally: punctuation is punctuation, not a pattern. Only rendered text inside a targeted element counts.
| Feature | What it does |
|---|---|
| Remove / hide | Per website: the block goes, or keeps its space |
| Highlight | While the popup is open, matches stay on screen, highlighted |
| Badge | Counts the blocks filtered on the current tab |
| Off switch | Pauses filtering in this browser, changing nothing you configured |
| Sync | Topics and websites sync between browsers signed into the same profile; the off switch stays local |
| Export/Import | Moves a configuration between browsers as a JSON file |
Install Node (version in .nvmrc), then:
npm install
npm startnpm test, npm run lint and npm run build cover the rest; package.json lists every script.
npm run start:android runs the extension on a USB-connected device. See the Extension Workshop guide for the full walkthrough:
-
Enable Android developer options and USB debugging, and turn on "Remote Debugging via USB" in Firefox for Android.
-
Install
adb:sudo apt install adb -
On Linux, grant USB access with a udev rule (replace
idVendorwith the value fromdmesg):echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"' \ | sudo tee /etc/udev/rules.d/50-android-usb.rules
-
Connect the device, run
adb devices, and authorize the computer when prompted.
Tagged releases (v*) build a packaged extension via GitHub Actions:
-
Match
versioninpackage.jsonandmanifest.json. -
Commit, then tag and push:
git tag v0.x.x git push && git push --tags
Build locally with npm run package (output in web-ext-artifacts/). Store dashboards: Chrome, Firefox.

