← Back to docs
🌐
Getting Started

Browser extensions (Safari & Chrome)

Last verified: May 2026

Why you need them

DNS-level blocking via /etc/hosts is blunt — it blocks whole domains, which is fine for "no twitter.com" but doesn't cover "YouTube is allowed for tutorials but not for the homepage feed". The browser extensions add URL-level blocking, and they're also what reads a short DOM text excerpt from the active tab to ground the AI classifier when the screenshot is ambiguous.

  • URL-level blocking inside Safari and Chrome
  • DOM text excerpt fed to the AI classifier as a supplement to the screenshot
  • Per-tab close behavior when the AI catches a drift (Hard / Nudge intervention)

Safari

The Safari extension ships inside the FocusDragon app — there's nothing extra to download. Enable it with:

  • Open Safari.
  • Safari menu → Settings → Extensions.
  • Check the box next to FocusDragon.
  • Click "Edit Websites" and set "All Websites" to "Allow".
  • If you use Private Browsing, tick "Allow in Private Browsing" too.
If "All Websites" is not set to "Allow", the Safari extension can't block anything or feed page text to the AI classifier. This is the single most common Safari setup miss.

Chrome (and other Chromium browsers)

Install the FocusDragon extension from the Chrome Web Store — the FocusDragon app's Extensions screen has a direct link, or search "FocusDragon" in the Web Store. The same extension works in Edge, Brave, Arc, and Opera; install it from the Chrome Web Store from inside those browsers.

Firefox

Install the FocusDragon extension from Firefox Add-ons (addons.mozilla.org/addon/focusdragon). Once installed, Firefox gets the same URL-level blocking and AI page-text coverage as Safari and Chrome.

Verifying it's working

Start a test block that lists a single site, hit Start, and visit that site in the browser. You should see the FocusDragon block page instead of the site. If the site loads normally, double-check the extension is enabled and (in Safari) that "All Websites" is set to Allow.

The native-host bridge

Under the hood, the Mac app and the browser extension talk through a small native-messaging bridge: the app exchanges page-content requests and responses with the extension's native host. You don't have to configure any of this — it's automatic — but if the extension can't reach the bridge, AI classification falls back to screenshot-only.

Still stuck? Contact support