cleanfox.
// firefox user.js ยท synced with latest Betterfox

Betterfox, minus the breakage.

Cleanfox keeps the Betterfox speed and privacy baseline, relaxes the few settings that break logins and embeds, and quiets the UI. One file, rebuilt from upstream every month.

  • 3 defaults relaxed
  • 5 prefs added
  • 17 telemetry prefs off
  • resyncs monthly
user.js โ€” patched from Betterfox
/** TRACKING PROTECTION ***/-user_pref("browser.contentblocking.category", "strict");+user_pref("browser.contentblocking.category", "standard");/** DISK AVOIDANCE ***/-user_pref("browser.cache.disk.enable", false);+user_pref("browser.cache.disk.enable", true);/** SECTION: CLEANFOX ***/+user_pref("browser.tabs.hoverPreview.enabled", false);+user_pref("browser.urlbar.openViewOnFocus", false);
build.py ยท applies Cleanfox on upstream GitHub Action ยท monthly
WHAT'S INSIDE

Four sections, straight from the file.

The config keeps Betterfox's own structure โ€” three upstream sections, plus one that's ours.

FASTFOX

Speed

Caching, networking, and rendering tuned upstream. Snappier loads without touching a single pref yourself.

SECUREFOX

Privacy

Telemetry, studies, and crash pings zeroed out โ€” 17 prefs' worth. HTTPS-only mode on, referrers trimmed.

PESKYFOX

Quiet UI

Sponsored tiles, recommendations, and full-screen warnings removed. The new-tab page is actually new.

CLEANFOX

House rules

No tab previews on hover, no address-bar pop-out, no Alt stealing focus for the menu, saner double-click selection.

THE DIFF

Every change from Betterfox, as a patch.

Cleanfox isn't a fork that drifts โ€” build.py re-applies exactly this patch to fresh upstream every month. This is the whole thing.

betterfox โ†’ cleanfox
@@ tracking protection @@-user_pref("browser.contentblocking.category", "strict");+user_pref("browser.contentblocking.category", "standard");  // logins, embeds, and comment widgets keep working@@ disk cache @@-user_pref("browser.cache.disk.enable", false);+user_pref("browser.cache.disk.enable", true);  // faster repeat visits, less bandwidth@@ search suggestions @@-user_pref("browser.search.suggest.enabled", false);+user_pref("browser.search.suggest.enabled", true);  // address-bar suggestions stay@@ left at firefox defaults @@-user_pref("browser.download.manager.addToRecentDocs", false);-user_pref("browser.ml.enable", false);  // + other browser.ai.* / browser.ml.*  // downloads show in recent files; AI prefs untouched โ€” strict versions live in the optional block@@ added: house rules @@+user_pref("ui.key.menuAccessKeyFocuses", false);+user_pref("browser.tabs.warnOnClose", false);+user_pref("browser.urlbar.openViewOnFocus", false);+user_pref("browser.tabs.hoverPreview.enabled", false);+user_pref("layout.word_select.eat_space_to_next_word", false);
5 hunks everything else is Betterfox, verbatim
TRY YOURSELF

Stricter, if you want it.

The bottom of the file ships commented-out blocks for people who want more. They do nothing until you uncomment them.

user.js โ€” optional block
// PREF: disable Firefox AI features// user_pref("browser.ai.control.default", "blocked");// user_pref("browser.ml.enable", false);// PREF: disable all DRM content// user_pref("media.eme.enabled", false);// PREF: disable Firefox Sync// user_pref("identity.fxaccounts.enabled", false);// PREF: disable OS geolocation services// user_pref("geo.provider.ms-windows-location", false);  // [WINDOWS]
ships commented out uncomment ยท save ยท restart

// hover a block โ€” in the file, removing the slashes is all it takes

INSTALL

In your profile in under a minute.

No extension, no account, nothing running in the background โ€” Firefox reads the file once at startup.

  1. Download user.js from the repo.

  2. In Firefox, open about:profiles.

  3. Under your profile, click Open Folder next to Root Directory.

  4. Drop user.js into that folder.

  5. Restart Firefox. Done.

One file. Drop it in.

MIT licensed. Rebuilt from upstream Betterfox on the first of every month.