Stay sharp. Don't rot. A Chrome extension that tracks a days-clean streak and resets it to zero the second you open a short-form feed.
Website · Privacy policy · Download the latest build
Designed and developed by lfillaz.
- Counts the number of consecutive days you stay away from brainrot feeds.
- Blocks the page whenever you open any of:
youtube.com/shorts/instagram.com/reels/(and/reel/)tiktok.com(whole domain)facebook.com/reel/(and/reels/)
- Detects in-app navigation too (single-page apps), not just full page loads.
- A full Learn page (
learn.html, opened from the popup) explains how short-form feeds hijack your brain, why it's a real addiction, the effect on focus/study, and how to quit — with a Your Reality tab showing your own stats. - 16 languages with a switcher: English, Arabic (RTL), Somali, Korean, Chinese, German, Swedish, Portuguese, Spanish, Turkish, Swahili, French, Italian, Russian, Japanese, Hindi.
- The damage tracker counts clips watched, mouse scrolls, time wasted, and repeated clips (times you re-opened the same clip).
- First open → the page is blocked with a message. Your streak stays intact.
- Come back and open again → a warning shows how many days you're about to lose, with a Lose Anyway button.
- Lose Anyway → the streak resets to 0, you're allowed to watch for up to an hour, and…
- After 20 minutes of watching → a desktop notification: "What a shame that you're wasting your time here."
- The extension stores a single
streakStartTimestamp. - Current streak (days) =
floor((now - streakStartTimestamp) / 24h). - Choosing Lose Anyway sets
streakStartTimestamp = now(reset) and bumps the reset counter. - Because it's computed from the time difference, the count stays accurate even if the browser is closed.
- Open
chrome://extensionsin Chrome. - Toggle Developer mode (top-right).
- Click Load unpacked.
- Select this folder:
unbrainrot streak. - Pin the flame icon to your toolbar and click it to see your streak.
| File | Purpose |
|---|---|
manifest.json |
MV3 config, permissions, popup, icons |
background.js |
URL detection, streak reset, page blocking |
popup.html / popup.css / popup.js |
Streak dashboard (brand UI) |
blocked.html / blocked.css / blocked.js |
Block screen shown on a reset |
learn.html / learn.css / learn.js |
Educational page (tabs + language switcher + stats) |
i18n.js |
16-language translation dictionary |
tracker.js |
Content script measuring scrolls, clips, time, repeats |
icons/ |
Flame app icons (16/48/128) |
docs/ |
Public website + privacy policy (served by GitHub Pages) |
tools/build.ps1 |
Builds the clean Chrome Web Store zip into dist/ |
tools/generate-icons.ps1 |
Regenerates the PNG icons from the brand flame |
PRIVACY.md |
Privacy policy (source of docs/privacy.html) |
Produces a clean dist/unbrainrot-streak-v<version>.zip containing only the
files the extension needs — brand sources, screenshots, docs and tooling stay
out of the upload.
powershell -ExecutionPolicy Bypass -File ".\tools\build.ps1"powershell -ExecutionPolicy Bypass -File ".\tools\generate-icons.ps1"Everything stays in chrome.storage.local on your own device. No accounts, no
servers, no analytics. Full details: PRIVACY.md (published at
https://lfillaz.github.io/unbrainrot-streak/privacy.html).
Released under the Mozilla Public License 2.0.
Designed and developed by lfillaz — GitHub @lfillaz · Bugcrowd @lfillaz
- Open each blocked URL and confirm the block screen appears and the streak reads
0. - Navigate from a normal YouTube page into a Short to confirm SPA navigation is caught.
- To fake a long streak, set an older timestamp from the extension's service worker console:
chrome.storage.local.set({ streakStartTimestamp: Date.now() - 47 * 24 * 60 * 60 * 1000 });
Days clean · Brain sharp.