5 items
Detects sustained passive feed use on this device and applies the intervention you configured. Nothing leaves this device. 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.
Aug 25, 2026
rating_count is the Chrome Web Store ratings count, not a written-review count.
Media assets
Screenshots and videos on the listing.
Has promo video
Whether the listing includes at least one video.
Languages
Declared language locales.
Developer website
Listing exposes a developer website URL.
Contact email
Listing exposes a contact email.
Keyword in name
Case-insensitive substring match in the name.
Keyword in description
Case-insensitive substring match in the description.
Keyword occurrences in description
Count of case-insensitive occurrences in the description.
Category user-count percentile
Share of same-category extensions with fewer users (null if unknown).
These are transparent listing completeness / keyword signals, not a prediction of Chrome Web Store search ranking.