Read the configuration, not a promise

A small layer. A meaningful reset.

PrivacyFox uses documented LibreWolf and Gecko configuration points. The browser handles browser work; this project supplies a privacy-first policy and profile baseline you can inspect in full.

01 / System policy

Use a policy when the browser provides one.

The system-level policies.json does the important switching. That is more honest and durable than hiding buttons for features that still run behind the scenes.

/etc/librewolf/policies/policies.json

Accounts are off

DisableFirefoxAccounts disables the service—not merely its prompt. The one real gap left in LibreWolf's own hardening this project closes.

LibreWolf's own uBlock Origin stays untouched

Left exactly as LibreWolf ships it—not force-installed or duplicated. PrivacyFox adds alongside it, not on top of it.

Seven privacy extensions are set by policy

LibreWolf installs the selected baseline on first run rather than relying on a snapshot of someone else’s profile state.

PrivacyFox.js → user.js

// diffed against LibreWolf's real defaults

207 Arkenfox+Betterfox prefs · checked

118 overlap with LibreWolf · 115 kept as theirs

3 deliberate disagreements · respected, not overridden

89 genuine additions remain

02 / Profile preferences

A properly diffed hardening file, not a stack of guesses.

Every one of Arkenfox and Betterfox's 207 prefs was checked against LibreWolf's own real defaults first. 118 already overlap—115 agree outright and are left as LibreWolf's own, and 3 are LibreWolf's own deliberate choices, respected rather than fought. The remaining 89, found nowhere in LibreWolf's own file, are what user.js actually adds—with a traceable answer for every value.

03 / Extension baseline

Useful protection, selected on purpose.

Six extensions chosen for a concrete job and current maintenance—not just their popularity—force-installed alongside LibreWolf's own default uBlock Origin, so a fresh profile begins with the same inspected baseline.

uBlock Origin

Content blocking. LibreWolf's own default—left untouched.

ClearURLs

Removes tracking parameters.

LocalCDN

Local replacements for common web libraries.

CanvasBlocker

Canvas and fingerprinting defenses.

Don’t Track Me Google

Cleans Google tracking links.

Port Authority

Blocks port scanning and tracking scripts.

Privacy Badger

Learns and blocks new trackers behaviorally, not just from a list.

04 / Cosmetic cleanup

The tidy-up knows its place.

userContent.css hides one dead menu entry—Account & Sync, disabled at the policy level but still shown in Settings by default. It is explicitly the least important layer: everything that matters is handled by policy first.

Your choice stays visible

Default-browser control isn't hidden.

LibreWolf already silences its own automatic default-browser check. PrivacyFox doesn't touch that setting either way—the Settings control to deliberately choose LibreWolf as your default stays exactly where LibreWolf put it.

05 / Clear limits

What PrivacyFox deliberately does not do.

It is not a LibreWolf fork.

No binary is recompiled, repackaged, renamed, or redistributed. About LibreWolf will still say LibreWolf because that is what it is.

It does not own browser updates.

LibreWolf retains its own engine, release cadence, and security updates. That responsibility stays with the browser's own maintainers.

It is not yet a cross-platform installer.

The configuration mechanisms are Gecko-standard, but automated installation currently supports Debian and Ubuntu-family Linux only.

It is not a substitute for judgment.

Hardening comes with trade-offs. Read the configuration and adjust it if your use case needs a different balance.

Credit where it belongs

Built openly on real upstream work.

PrivacyFox configures LibreWolf. Its hardening file is diffed against LibreWolf's own defaults and drawn from Arkenfox and Betterfox. The project is independent of and not endorsed by the LibreWolf project.

Choose an install path →