Freebuff Focus Mode v1.8.3

Chrome · Edge · Brave · Firefox

Stay in flow.
The build keeps streaming.

A focus companion for freebuff.com only. Flip focus on before a deep work block and it quiets ad requests plus the slots that appear mid-build and never fire a separate request. Flip it off when you are done, and everything returns, so free models stay free.

When to use it: flip focus on when ads break your concentration during real work, a deadline, or a screenshare. Flip it off for everyday browsing and casual exploring.

The respect behind it: we respect Freebuff's decision to fund free models with ads, and this tool keeps that deal intact. It gives you a little leverage only for moments of utmost focus, never as a default.

How it works

Three quiet layers, only while you focus

Nothing changes until you flip focus on. Outside focus, the page is untouched.

01

Pause the noise

A declarativeNetRequest ruleset pauses known ad and tracker hosts before the request leaves the tab, while focus is on. Every rule is scoped to requests initiated by freebuff.com, so it never follows you to other sites. Focus off, requests resume.

02

Clear mid build slots

Slots rendered client-side never make a separate ad request, so a request list cannot see them. While focus is on, a content script watches the DOM and quiets the ones inserted while the platform is thinking, then collapses the empty space they leave behind.

The same layer covers freebuff.com's own in-product promo cards, the ones with a literal AD chip. Those are first-party, so only reading the page can quiet them. They are matched on the badge text and never on page text alone, and nothing holding a link-free paragraph, a code block or an editor is ever touched.

03

Focus, then restore

The toolbar popup flips focus for the whole site in one click and shows what was quieted on the current tab. Choose a timed session (15m, 25m, 45m) or focus until toggled off — browser alarms automatically restore ads when your focus time is up. The setting syncs through chrome.storage with no account and no external server.

It also carries the escape hatch: Hide an element in focus. Click it, click anything nothing recognised, and the rule applies in future focus sessions. That is the part no heuristic can replace. Quiet rules only run while focus is on.

The part that matters

It cannot break your build

Your build and thinking progress arrives over XHR and WebSocket from freebuff.com itself. A single broad rule could cut that off, so the ruleset carries a priority-100 allow rule for freebuff.com's own traffic that every session rule, all priority 1, has to lose against. Path-based rules are slash-anchored so /load and /headers can never match, and the content script refuses to quiet any element that still holds real content. Outside focus, no rule runs at all.

Install

Load it unpacked, about a minute

Neither Chromium nor Firefox installs an unsigned extension from a link, so the manual path loads the extracted folder as a developer extension. It behaves exactly like an installed one. In Chromium it persists, in Firefox a temporary add-on lasts until the browser restarts. Focus stays off after install until your first session.

  1. 1

    Download and extract

    Grab the zip and unpack it somewhere permanent. If you move the folder later, Chrome will report the extension as unloaded and you will need to point it at the new path again.

    Download extension Or simply, /downloads/freebuff-focus-1.8.3.zip
  2. 2

    Open the extensions page

    Visit chrome://extensions, or edge://extensions / brave://extensions, and switch on Developer mode in the top right corner.

  3. 3

    Choose Load unpacked

    Press Load unpacked and select the extracted freebuff-focus folder, the one containing manifest.json. The toolbar icon appears and you are done.

  4. 4

    Reload your open freebuff.com tabs

    Content scripts only attach to pages loaded after the extension is enabled. Reload any tab that was already open, open the popup, and flip focus on. Flip it off when the block ends to bring everything back.

What a listing changes

A store listing removes every step above: one click, and the store handles updates. It is also the only route that survives a restart without reloading anything by hand. Either way, focus stays off until you flip it on.

Two packages are built for submission, both with manifest.json at the archive root, which is what the stores require: one for the Chrome Web Store and Edge Add-ons, and one for addons.mozilla.org.

Safari is the exception. It needs a separate build wrapped in a native app and a paid Apple developer account, so browsers that detect as Safari get no button at all. Better a missing button than one that leads nowhere.

Auto-updates

What the update feed does, and does not, do

Unpacked extensions do not auto-update

This is the honest part. Chrome only checks an update.xml feed for extensions that were installed from that feed. A folder you loaded unpacked is treated as local source: Chrome will never poll for a newer version of it, and none of the files on this site can change that.

To update, download the new zip, extract it, and hit the refresh button on the extension card in chrome://extensions.

The feed is built and ready

The build regenerates update.xml alongside every package, with the matching version and codebase URL. Wire it up when you want automatic updates, by either route:

  • Managed policy, set ExtensionInstallForcelist on your own machine, pointing at the feed. Chrome then installs, updates and reloads it for you.
  • Chrome Web Store, publish it and the store handles distribution and rollouts entirely.

Both require the placeholder app ID in update.xml to be replaced with the packed extension's real ID, and a signed CRX rather than a zip.

Desktop app

The desktop app, with focus sessions

Freebuff Desktop is a separate app that renders its ads from a runtime inside its own bundle, so no browser extension can ever reach it. This is the other half: a small local tool for focus blocks. Run install before deep work to quiet the ad runtime in place, run revert after to bring it back. It runs entirely on your machine, needs no account, and sends nothing anywhere.

All three have a tool. Pick your platform, the switch opens on the one you are reading this on, and each tab's download is that platform's build.

Run it

One line, and nothing to install first. macOS already ships the sh and perl it uses. The tool writes a copy of the original file before it touches anything, and revert puts it back. Install for the work block, revert to support free access.

curl -fsSL https://freebuff-focusmode.vercel.app/downloads/freebuff-focus-desktop.sh | sh

That one line does three things: it puts the tool in ~/.local/share/freebuff-focus, writes a freebuff-focusmode command into ~/.local/bin, and patches Freebuff. curl is not needed again. From then on: freebuff-focusmode status reports what is applied and changes nothing, freebuff-focusmode focus keeps the ads off until you end it, freebuff-focusmode focus 25m keeps them off until the deadline and then restores the file itself, freebuff-focusmode focus session keeps them off until Freebuff quits, freebuff-focusmode unfocus ends any of them and brings the ads back, freebuff-focusmode verify waits for the relaunch and then says what the app you have open actually loaded, freebuff-focusmode revert puts the untouched original back, and freebuff-focusmode update fetches a newer tool, replaces this copy and patches again.

If ~/.local/bin is not on your PATH, the installer prints the one line that adds it. Run curl -fsSL …/downloads/freebuff-focus-desktop.sh | sh -s --add-path and it edits your shell rc for you. Piping always needs sh -s <command>: | sh status asks sh for a file called status.

Prefer a file? Download the tool, a zip with a double-clickable launcher and a short read-me, then run sh freebuff-focus.sh install, or sh freebuff-focus.sh setup if you want the command as well.

Tool v1.8.3, matched to Freebuff Desktop 0.0.164: while applied, it quiets the ad auction and pauses the ad client API path, and it undoes its own write if the result does not check out. If a Freebuff release moves code it cannot recognise, it refuses and prints the counts it saw instead of guessing, and freebuff-focusmode scan prints what the installed build actually contains, changing nothing. An older Freebuff with a different arrangement is refused, not half-patched.

After you run it

  1. It restarts Freebuff for you. The orchestrator is read once at launch, so bringing the window forward is not enough - the tool quits the app, starts it again, and then reports what it finds: whether the running process started after the patch was written, and whether the ad code it targets is still in the build. Ctrl-C stops the wait, and --no-restart leaves the quitting to you.
  2. If macOS says “Operation not permitted”, it is App Management holding the write back. Open System Settings → Privacy & Security → App Management, switch on Terminal (or whichever app you ran it from), quit and reopen that app, and run it again. The tool never asks for a password and never uses sudo.
  3. After a Freebuff update, run it again. An update replaces the app's Resources folder, so the quiet state goes with it. The backup is kept for each version, so reverting an older one still works. When the block ends, revert and relaunch to bring ads back.

Why it is safe to run

It refuses to guess

The tool matches the exact ad code it expects to find, and only the ad code: the one gate the ad auction consults, and the one request helper every ad API call goes through. It counts every anchor before it writes, and on a mismatch from a new Freebuff version or a hand edited file, it stops and changes nothing, rather than half-patching a 9 MB file. Every run prints what it found first, so status tells you exactly what is applied on your machine. Revert restores the original.

Scope

Two apps, one idea, one focus flip each, because neither can reach the other. The web version is covered by the extension above, which a browser can only reach because Chromium renders the page. The desktop app is a separate bundle with no extension surface, so it is covered by the local tool in For Desktop instead: one build per platform, macOS, Windows and Linux. Neither has a server, an account or a telemetry endpoint, and neither touches anything outside freebuff.com and your own machine. Sessions are local, manual, and reversible.