Protecting focus for 1,200+ users

A CleanTab
for a ClearMind.

A focus extension that reflects with you — not blocks you out.

Free forever · No account · 100% private

Your Active Tab

reddit.com/r/popular

CleanTab scans

Images, patterns & context — not just URLs

86% confidence

Pause & Reflect

What's actually going on?

BoredStressedHabitAvoidingLonelyTired

Works inside:

RedditTwitter / XYouTubeInstagramPinterestTumblr& more

Noticing beats punishing.

One question shaped every decision: what actually helps someone change?

Detection that actually thinks

On-device image classification that fires only when you linger — not on every scroll.

A ring, not a streak

A daily goal that resets every morning. A bad day costs you nothing.

Local. Forever.

No accounts. No syncing. Your data lives in your browser, never our servers.

Friction by design

A one-hour cooldown stands between you and disabling it. Time for the impulse to pass.

Pause. Notice. Choose.

That's the whole loop.

1

Install.

One question sets your daily ring goal.

2

Browse.

We watch quietly in the background.

3

Pause.

A simple page asks one question.

BoredStressedHabitTired
4

Reflect.

One grounded line. Not a lecture.

5

Decide.

Take a beat — then go do something else.

Try it free in 30 seconds.

No account. No data leaves your browser.

Reflect,
don't restrict.

The hard part isn't access. It's noticing what's underneath the urge — and giving yourself a second to choose.

Your data stays where it belongs.

100% Local

Runs on your device. No cloud, no servers.

No Tracking

Zero data collection. Not a single byte.

Open Source

MIT licensed. Audit the code yourself.

Common questions.

Everything you might want to know.

Nowhere. Everything is stored in chrome.storage.local on your machine. Export anytime as a JSON file.

No. NSFW.js runs entirely in your browser using bundled MobileNetV2 weights. There is no inference server.

Only if you explicitly enable the extension for incognito mode in chrome://extensions. We don't ask for that by default.

Yes — but it takes a one-hour cooldown and a randomized passphrase, twice. By design. The friction is the feature.

All data is wiped — it lived in browser storage. Export first if you want to keep your stats.

On YouTube it ignores normal videos (only flags adult-keyword pages). On Twitter, Pinterest, Reddit, Instagram, and Tumblr, dwell-based image detection is active — it watches for images you linger on, not every image that scrolls by.

Streaks turn intrinsic motivation into extrinsic. The moment you slip, the structure collapses and most people uninstall. The daily ring resets every morning — a bad day costs you nothing.

Use export/import to manually move your data. Local-first storage stays the default.

Not completely. The passphrase pool is in the source code. A determined user with developer tools open can defeat any client-side blocker. The friction is designed for the version of you that isn't determined.

Reclaim your focus today.

Free, open-source, and 100% local.

View on GitHub

Free forever · No account · MIT License

Like CleanTab? Help keep it free.

Built solo. Every coffee helps it stay open-source.

Got ideas? Found a bug?

I read every email. Help shape what comes next.