8
24
Fork
You've already forked nuMatrix
4
nuMatrix: Point and click matrix to filter net requests according to source, destination and type. Based on uMatrix
  • JavaScript 83%
  • CSS 5.2%
  • HTML 5.1%
  • WebAssembly 4.7%
  • Shell 1.6%
  • Other 0.4%
Find a file
arek c636a17231
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Rewrite install, manifesto, and docs landing for nuMatrix
2026年07月05日 08:24:12 +01:00
.idea turn on all inspections 2024年05月13日 17:36:09 +01:00
assets #1172 Add URL tracking-parameter pruning from $removeparam lists with per-site switch 2026年06月20日 09:55:39 +01:00
dist Version bump 2026年06月18日 19:40:01 +01:00
docs Rewrite install, manifesto, and docs landing for nuMatrix 2026年07月05日 08:24:12 +01:00
platform #1140 Soft-reload to re-fetch blocked images and CSS without page reload 2026年06月21日 21:36:39 +01:00
scripts Build CRX for Chromium 2026年06月18日 09:34:44 +01:00
src src/_locales/de/messages.json aktualisiert 2026年06月30日 23:52:18 +02:00
tests #825 #636 #387 Add multi-type rules, domain-grouped sort, and changes-only view to My Rules 2026年06月29日 11:42:41 +01:00
tools Update .woodpecker.yml 2026年06月21日 09:56:35 +01:00
.gitignore Ignore coverage output and align switch offset map 2026年06月20日 09:55:39 +01:00
.jshintrc update 2024年05月13日 17:36:02 +01:00
.nvmrc Modernise deployment with an npm build/dev toolchain 2026年06月18日 08:56:07 +01:00
.woodpecker.yml Update .woodpecker.yml 2026年06月21日 09:56:35 +01:00
CHANGELOG.md Add CHANGELOG with Unreleased section 2026年07月05日 08:14:24 +01:00
CONTRIBUTING.md Document commit, test, and contribution conventions 2026年07月05日 08:14:24 +01:00
eslint.config.mjs #1172 Add URL tracking-parameter pruning from $removeparam lists with per-site switch 2026年06月20日 09:55:39 +01:00
LICENSE.txt a whole lot more left to do, at least popup shows 2015年04月13日 12:31:55 -04:00
package-lock.json Add unit test 2026年06月19日 20:54:04 +01:00
package.json Add unit test 2026年06月19日 20:54:04 +01:00
README.md update README 2026年06月21日 10:34:00 +01:00
vitest.config.js #825 #636 #387 Add multi-type rules, domain-grouped sort, and changes-only view to My Rules 2026年06月29日 11:42:41 +01:00

nuMatrix Pipeline status

Fork of uMatrix by Raymond Hill (https://github.com/gorhill/uMatrix).

Downloads

Download Firefox extension here: https://addons.mozilla.org/en-US/firefox/addon/numatrix/

Development

Prerequisites: Node.js >= 18 (see .nvmrc), bash, python3, and zip for packaging. Chromium/Chrome and/or Firefox for the live dev launchers.

npm install # one-time, installs the build/dev toolchain

Build unpacked extensions into dist/build/:

npm run build # both browsers
npm run build:firefox # -> dist/build/nuMatrix.firefox
npm run build:chromium # -> dist/build/nuMatrix.chromium

Build and launch a fresh browser profile with nuMatrix already installed (a throwaway profile — your real one is untouched):

npm run dev:firefox # builds, then web-ext launches Firefox
npm run dev:chromium # builds, then launches ungoogled-chromium with the extension loaded

Point the launchers at a specific binary if needed:

FIREFOX_BIN=/path/to/firefox npm run dev:firefox
CHROMIUM_BIN=google-chrome-stable npm run dev:chromium

Create distributable packages in dist/build/:

npm run package # everything: Firefox .xpi + .zip, Chrome .zip + .crx
npm run package:firefox # -> nuMatrix.firefox.xpi + nuMatrix.firefox.zip
npm run package:chromium # -> nuMatrix.chromium.zip + nuMatrix.chromium.crx

The .crx is signed with dist/nuMatrix.pem, generated on first run. Keep that key safe and out of the repo — it is the extension's identity; losing it means browsers treat a re-signed build as a different extension. Override the signing key or browser binary with NUMATRIX_PEM / CHROMIUM_BIN.

Other scripts: npm run lint (and lint:fix), npm run clean.

Changes

The only breaking change (to my knowledge) is that this PR by Raymond Hill was merged into master. One of the changes is that 'xhr' is renamed to 'fetch', so rules will need to be updated accordingly.

Other than the above, and fixing a few bugs here and there, here are some other things that have been added/changed since the last release of uMatrix (see the wiki for details):

Matrix & rules:

  • Font column in the matrix
  • Per-URL rules: right-click a cell to block/allow individual resource URLs
  • Scope isolation switch, to stop a site inheriting rules from the global scope
  • Scope-inheritance indicator (triangle marking cells whose rule comes from a parent scope)
  • Keyboard navigation, plus a configurable shortcut to open the popup

Privacy & blocking:

  • Block WebRTC per-site (CSP on Chromium, content-script on Firefox)
  • Tracking-parameter removal from $removeparam lists, with a per-site opt-out switch
  • 'Temporarily Allow' button when visiting a blocked URL
  • Display ambigious punycode URLs as ASCII
  • Clearing blocked hostnames' storage now also covers session storage and IndexedDB
  • Handling beacons as part of hyperlink auditing
  • Added new default blocklists

Dashboard & UI:

  • 'Assets' pane renamed to 'Filter lists', now showing tracking-parameter counts and custom list titles
  • Logger shows which filter list blocked a request
  • Colourblind friendly toolbar icon
  • Timestamped backup/rule exports, and a warning when importing a file with no valid rules

Other forks

I'll be trying to incorporate changes from other forks in this fork. Feel free to submit an issue or PR if I'm missing any other forks.

nuTensor by geekprojects - 24 commits ahead of original uMatrix. All feature changes are in nuMatrix

nuTensor by nikobockerman - up to date with nuTensor by geekprojects

nuTensor.d by SteelEyeballSac1 - 33 commits aheaad of nuTensor by geekprojects. Pretty much just renaming, changing blocklists, changing images, and other stuff not affecting functionality (see here)


Original README below


uMatrix

Definitely for advanced users.


Keep Github issues for actual bugs. User support is /r/uMatrix.

Forked and refactored from HTTP Switchboard.

Install manually the latest release, or install from:

You may contribute with translation work:

HTTP Switchboard's documentation is still relevant, except for uMatrix's differences with HTTP Switchboard.

You may contribute with documentation: uMatrix's wiki.

Warnings

Regarding broken sites

uMatrix does not guarantee that sites will work fine: it is for advanced users who can figure how to un-break sites, because essentially uMatrix is a firewall which works in relaxed block-all/allow-exceptionally mode out of the box: it is not unexpected that sites will break.

So this means do not file issues to report broken sites when the sites are broken because uMatrix does its job as expected. I will close any such issue without further comment.

Using uMatrix logger is key to un-break sites: the logger will show you all that uMatrix does internally.

I expect there will be community driven efforts for users to help each others. If uMatrix had a home, I would probably set up a forum, but I do not plan for such thing, I really just want to code, not manage web sites. If you need help to un-break a site when using uMatrix, you can try Wilders Security, where you are likely to receive help if needed, whether by me or other users.

uMatrix can be set to work in allow-all/block-exceptionally mode with a single click on the all cell in the global scope *, if you prefer to work this way. This will of course break less sites, but you would then lose all the benefits which comes with block-all/allow-exceptionally mode -- though you will still benefit from the 62,000+ blacklisted hostnames by default.

License

GPLv3.