Detects sustained passive feed use on this device and applies the intervention you configured. Nothing leaves this device.
Users
3
+1 in 30 days
Rating
0.0 / 5
unchanged in 30 days
Ratings
0
0 in 30 days
Store rank
#319K
#253K among extensions
Version
0.1.1
updated 31 Aug 2026
Users
monthly, 2 months
Latest, 15 Oct 2026:3 usersMove the mouse over the chart for any month
Ratings count
monthly, 2 months
Latest, 15 Oct 2026:0 ratingsMove the mouse over the chart for any month
The Chrome Web Store rounds user counts down to the leading digit, so the user line moves in steps. The ratings count is exact and is the better signal of real adoption.
About Local Focus Coach
Local Focus Coach is a private, local-first tool for macOS Chrome. It watches
three specific views — Instagram Reels, X/Twitter timeline, YouTube Shorts —
and, once you land on one, asks whether you meant to. Declare a doomscroll
session and a timer starts against the budget you set. When the budget is
spent, the feed is covered by a wall whose only action is Leave.
Everything happens on your machine.
- No account, no server, no cloud sync, no analytics.
- No network requests. A test in the source (tests/privacy-boundary.test.ts)
fails the build if a fetch, XHR, WebSocket, sendBeacon, or captureVisibleTab
call ever appears.
- No screenshots, no page text, no post content, no comment content, no
URLs beyond the site key, and no scroll coordinates ever leave the
extension.
- No sync. Storage is chrome.storage.local, never chrome.storage.sync.
Local Focus Coach requires the companion Local Focus Coach for macOS app,
which is where you edit your rules. Chrome and the desktop app talk over
Chrome Native Messaging on your own machine.
Optional on-device model: on Chrome 138+ with
chrome://flags/#prompt-api-for-gemini-nano enabled, an on-device Gemini Nano
model can act as an honesty check on your declaration. It sees only aggregate
statistics (item dwell time, completion, replays, mute/pause flags, aggregate
action counts) — never titles, captions, or URLs. If the model is unavailable,
your declaration governs unchanged.
How the flow works, in one paragraph:
Open Reels/Shorts/timeline. A full-page overlay asks "Hey, what are we doing
here?" with one button, "Doomscrolling — give me N minutes", where N is the
budget you set. Click it and your session starts. The extension icon shows a
live timer. When the budget is spent, the next scroll raises a wall covering
the feed with a single Leave button. A direct link to a specific Reel or
Short still opens without a prompt — one item, no wall — and only becomes a
feed session if you advance past that item.
Uninstalling removes all local data.