Free · early access for Chrome, Edge & Brave

Catch the drift.Keep the hour.

Tell DriftGuard what you’re working on. When a tab pulls you off course, it asks one quick question instead of blocking the site. No account, local by default.

Works with

  • Chrome
  • Edge
  • Brave
  • Arc
  • Opera
  • Vivaldi

Works with Chrome, Edge, Brave, Arc, Opera and Vivaldi.

DriftGuard's companion

Go on. Get distracted.

This is the whole loop, running in your browser. Set an intention, start a session, then click a tab you shouldn’t. DriftGuard waits a beat, then asks. Every answer is one click.

github.com/acme/api/pull/212

fix: OAuth callback drops state param #212

Open 3 files changed

src/auth/callback.ts
const url = new URL(req.url);
- const code = url.searchParams.get("code");
+ const { code, state } = parse(url);
+ if (!verify(state)) return reject(401);
return exchange(code);

Pick an intention, then press Start.

One site.
Three verdicts.

Blockers guess: YouTube is bad, full stop. DriftGuard asks what you’re trying to do, then scores the tab from 0 to 100 on your own machine. Only past the line does it say anything.

Calm
72
Balanced
58
Strict
44

Sensitivity is yours to set. The examples use Balanced.

  1. Session: Fix the auth bugreads as coding

    youtube.com · 2 min on screen

    “Best gaming chairs 2026, honest review”

    68

    Asks you

    • +32Ambiguous work/social domain
    • +26Ambiguous site for more than 1 minute
    • +10Tab title appears weakly related to the intention

    Nothing in the title touches the work. This is drift, so it asks.

  2. Session: Study chapter 4: cell biologyreads as study

    youtube.com · 2 min on screen

    “Cell biology, chapter 4 explained”

    28

    Stays quiet

    • +32Ambiguous work/social domain
    • +26Ambiguous site for more than 1 minute
    • −30Tab title closely matches the intention

    Same site, but the title echoes what you set out to do. It stays quiet.

  3. Session: Research SaaS pricing pagesreads as research

    youtube.com · 2 min on screen

    “SaaS pricing teardown: 40 pages ranked”

    0

    Stays quiet

    • +8Ambiguous work/social domain
    • +14Ambiguous site for more than 1 minute
    • −30Tab title closely matches the intention

    Research sessions are expected to roam, so YouTube starts out cheaper.

Small nudges, stacked up.

The prompt is the heart of it. Everything else is there to make coming back feel good.

A timer that rides on the toolbar

Pick 25, 50 or 90 minutes, or leave it open. The countdown sits on the DriftGuard icon, so you know how long is left without opening anything.

9:12of 25 minutes left
25m50m90mOpen
Toolbar10m

Streaks, a daily goal, levels

Pick a daily goal (two hours to start). Ten focused minutes keeps the streak alive, and every finished session earns XP toward the next level.

DriftGuard mascot, celebrate

6-day streak

MTWTFSS
Today’s goal1h 40m / 2h
Level 4160 / 240 XP to level 5

Lock mode after a break

Drift again right after a break and the question moves to the middle of the screen. The page blurs and pauses. Back to work is one click; “I really need this” opens after 15 seconds.

DriftGuard mascot, alert

Let’s finish what you started.

You set out to Write launch email.

Back to workI really need this · 12s

AI that reads the page

Titles only go so far. Switch on the optional AI check and a model looks at what’s actually on screen, so an OAuth tutorial counts as work and a lofi stream doesn’t. Off by default. What it sends

OAuth 2.0 PKCE, explained in 12 minutes

A tutorial on the exact flow behind the auth bug.
On task · 94% sure

10 hour lofi mix · beats to relax to

This is a lofi music stream, not the auth bug.
Drift · 92% sure

A parking lot, not a guilt pile

Save for later closes the tab and parks the link in the popup. It's there when the session ends.

  • 10 hour lofi mix · beats to relax to
  • This potato looks like a duck
  • Weekend trip ideas

A recap worth ending on

End a session and get a clear page: time on task, drifts caught, where the minutes went, and the last seven days of focus.

On task
42m
Drifts caught
3
Recovered
3

Hands stay on the keyboard

Park a tab or start a session without reaching for the mouse.

  • Open DriftGuardAltShiftD
  • Save tab for laterAltShiftS
  • Start / end focusAltShiftF

Shown for Windows and Linux. Rebind them at chrome://extensions/shortcuts.

Local by default, for real

Sessions, scores and saved links live in your browser’s extension storage. There’s no account to make. The only thing that ever leaves is the AI check, and only once you turn it on.

No accountNo analyticsNo keystrokesSkips incognitoAI check is opt-in
Read exactly what it records

It has a face, so the nudge doesn’t feel like a scold.

The same little character sits in the popup, the prompt and the recap. Its mood tells you where you stand before you read a word. Hover or tap a mood to see it.

DriftGuard mascot, Happy

Happy

You're in a session and on track.

The honest version.

DriftGuard needs to see which tab you’re on to do its job. Here is all of it, in plain words. By default, everything stays in your browser’s extension storage, on your machine. Nothing leaves it unless you switch on the AI check.

Recorded on your machine, during a session

  • Your intention

    The sentence you type when you start a session.

  • Domains you visit

    Only while a session is running, to tell work tabs from drift.

  • Tab titles

    Used to match pages to your intention. Switch it off in settings.

  • Time on each tab

    So the recap can show where the minutes went.

  • Prompts and your answers

    Back to work, it’s for work, save for later, break.

  • Links you save for later

    Kept in the parking lot until you open or clear them.

Never recorded, never stored

  • Keystrokes or anything you type
  • Form fields and passwords
  • Your clipboard
  • Incognito tabs
  • Anything outside a session
  • Page text or screenshots, stored anywhere
  • Accounts, analytics or ad tracking
Off by default

The AI check, only if you turn it on.

Rules can’t tell a YouTube tutorial on OAuth from a lofi stream. So there’s an optional AI check. You switch it on from a card that says exactly what it sends. From then on, when you settle on a new page during a session, DriftGuard sends that page to its own server, which asks an AI model through OpenRouter one question: is this part of the task? It gets back a yes or no and a one-line reason, and that’s it.

Nothing is stored. DriftGuard’s server keeps no screenshots, no page text and no record of which pages you checked. OpenRouter and the model provider handle each request under their own privacy terms.

What each check sends

  • A screenshot of the visible tab

    Just what's on screen, shrunk to a small JPEG.

  • The page's text

    Address, title, headings and a few thousand characters of visible text.

  • Your intention

    So the model knows what “part of the task” means.

Never checked

  • Incognito tabs
  • Sites you've excluded
  • Sites you marked as work
  • Breaks and pauses
  • Screenshots of pages with a password field
  1. 1

    Your browser

    Captures the tab, only with the AI check on

  2. 2

    DriftGuard's server

    Checks the request, stores nothing

  3. 3

    AI model, via OpenRouter

    Answers yes or no, with a reason

About that install warning

When you load DriftGuard, your browser will say it can “read and change all your data on all websites.” That’s the standard wording for any extension that can show something on any page. DriftGuard needs it so the prompt can appear on whatever site you drift to. It doesn’t read the page itself unless you turn on the AI check, and even then it sends only what’s listed above, to DriftGuard’s own server.

Install it in about a minute.

DriftGuard isn’t in the Chrome Web Store yet, so you load it yourself as an unpacked extension. It’s the same thing developers do every day, and you can remove it in one click.

Works in any Chromium browser

Edge: edge://extensions, Developer mode is in the left sidebar. Brave: brave://extensions. Arc: open chrome://extensions in a new tab. Opera and Vivaldi use opera:// and vivaldi://extensions. Firefox and Safari aren’t supported.

  1. 1

    Download the extension.

  2. 2

    Open your Downloads folder and double-click the zip.

    Finder unzips it into a folder called DriftGuard. Move it somewhere you’ll keep it, like Documents. The browser loads it from there.
  3. 3

    Open the extensions page.

    Browsers don’t let websites link to it, so copy this and paste it into the address bar:
    chrome://extensions
  4. 4

    Switch on Developer mode, top right.

  5. 5

    Click Load unpacked and choose the DriftGuard folder.

    Pick the folder itself, the one with manifest.json inside, not the zip.
  6. 6

    Pin it so the timer stays in view.

    Click the puzzle-piece icon in the toolbar, then the pin next to DriftGuard. Open it any time with ⌥⇧D.

Questions, answered.

The short, straight answers. If something’s missing, the install steps and privacy list above are the source of truth.

Why isn’t it in the Chrome Web Store?
It’s early. The store listing will come once the build settles. Until then you load it yourself, which takes about a minute and works exactly the same.
Does it block sites?
No. There’s no blocklist. When a tab looks unrelated to what you said you’re doing, DriftGuard asks one question. You can go back, say it’s for work, save it for later or take a break. Your call, every time. The only time it gets firmer is lock mode, below.
What’s lock mode, and can I get past it?
If you drift again after taking a break, or wave off the same drift three prompts in a row, the question moves from the corner to the middle of the screen. The page blurs and its video or audio pauses. “Back to work” works straight away. “I really need this” unlocks after 15 seconds and lets that site count as work for the rest of the session. “End session” is always there too. It’s a pause to think, not a wall.
What can it see?
During a session: the domain and title of the tab you’re on and how long you stay, kept in your browser. Never keystrokes, form fields, your clipboard or incognito tabs. Page contents and screenshots are only used if you turn on the AI check. The full list is above.
What does the AI check see?
Only if you switch it on (it’s off by default): a screenshot of the visible part of the tab, the page’s address, title, headings and some of its visible text, plus your intention. That goes to DriftGuard’s server, which asks an AI model through OpenRouter whether the page is part of your task and sends back a yes or no with a short reason. Nothing is stored. It never runs on incognito tabs, sites you’ve excluded or marked as work, or during breaks, and pages with a password field never get a screenshot. Leave it off and DriftGuard runs entirely on its local rules.
Which browsers does it work in?
Chrome, Edge, Brave, Arc, Opera and Vivaldi, on macOS, Windows, Linux and ChromeOS. Anything built on Chromium. Firefox and Safari use a different extension system and aren’t supported.
Why does the install warning say it can read all my data?
That’s the browser’s standard wording for any extension that can show something on any site. DriftGuard needs it so the prompt can appear wherever you drift to. It doesn’t read page contents unless you turn on the optional AI check.
How does it decide what counts as drift?
It compares each tab with your intention: the kind of site, whether the title shares words with what you typed, and how long you’ve been there. Sites you mark as “for work” stop being flagged. The sensitivity setting (calm, balanced, strict) moves the line. With the AI check on, a model also looks at the page itself, so a tutorial on your exact topic counts as work and a music stream doesn’t.
Is it free?
Yes. No account, no trial, no card.
How do I update it?
Download the new zip, replace the old DriftGuard folder with the new one in the same place, then press the reload arrow on DriftGuard’s card in the extensions page. Your streak and history stay put.
How do I uninstall it?
Click Remove on DriftGuard’s card in the extensions page. Everything it stored lives in the browser, so it goes with it.