Privacy policy.
CleanTab has no servers, no accounts and no analytics. There is no data for us to collect, because there is nowhere for it to go.
Last updated 17 September 2026
The short version
CleanTab is a Chrome extension that runs entirely on your device. It does not transmit your browsing activity, your settings or your statistics anywhere. We operate no backend that could receive them, and the extension contains no analytics, telemetry, crash reporting or advertising code of any kind.
We — the developer — never see your data. Not in aggregate, not anonymised, not at all.
What CleanTab stores, and where
Everything below lives in your browser's own extension storage (chrome.storage.local and chrome.storage.session), on the machine you installed it on.
| Stored | Retention | Purpose |
|---|---|---|
| Your settings | Until changed | Sensitivity level, whether image scanning is on, your daily hours estimate. |
| Trusted sites | Until removed | Domains you told CleanTab to stop checking. Domain names only. |
| Daily counters | 365 days | Minutes browsed and minutes clean, per day, so the ring and heatmap can be drawn. |
| Reflections | Last 1,000 | Which reason you picked on a pause screen, the site's domain, and when. |
| Recent blocks | Last 25 | Domain, the reason it fired, and a timestamp — so you can review or trust it. |
| Session state | Until Chrome closes | Temporary per-site pauses and one-time allowances. Cleared on restart. |
| Partner passphrase hash | Until removed | If you set up an accountability partner: a one-way SHA-256 hash of their phrase, and optionally a first name to show in the prompt. Never the phrase itself, and never an email or phone number. |
| Lock settings | Until changed | Your lock window hours, and timestamps of the last week's disables so the cooldown can escalate. Timestamps only — no record of what you did. |
Full URLs are never stored. A blocked page is recorded as a domain, a reason and a time — never the address you visited. The pause screen itself carries no URL, which is also why a blocked page does not appear in your Chrome history: the tab shows CleanTab's own page instead.
CleanTab never captures your screen. It contains no screenshot code and never requests one.
The accountability partner feature stores no contact details. It works by holding a one-way hash of a phrase, so the phrase cannot be recovered from it and there is nobody to notify. No email is sent, because there is no server to send one — the social agreement does the work, not a notification.
On a managed device there is a third area, chrome.storage.managed, which CleanTab only ever reads. It contains settings your administrator chose and nothing about you. If any setting is managed, the extension says so in the Guard tab rather than pretending the choice is yours.
What leaves your device
CleanTab makes no requests to any server we control, because there are none. It never contacts a font CDN, an analytics endpoint or a model host — the typefaces and the entire image-classification model are bundled inside the extension package, which is why detection still works with your network switched off.
There is exactly one case where the extension causes a network request, and it is worth stating plainly:
When you appeal a block with “This site is fine”
To check whether a site is really explicit before granting it permanent trust, your browser fetches that page and some of its images from that site and classifies them locally. The request goes to the site you are appealing, from your own browser, with cookies and credentials omitted. Nothing is sent to us, and the images are discarded once classified. This only happens when you press that button.
Image classification during normal browsing reads pictures the page has already loaded and analyses them in an offscreen document on your machine. No image is uploaded anywhere.
Permissions, and why each one is needed
Chrome shows a broad-sounding permission list on install. Here is what each entry is actually for.
Read and change all your data on all websites
This is how a content blocker works at all: CleanTab has to read the text and links of the page you are on to score it. The reading happens in your browser and the page content is never transmitted or retained — only a numeric score and a clean/not-clean verdict.
Tabs
To redirect the flagged tab to the pause screen, to know which tab is in front so a minute is counted once, and to return you to the page after an appeal.
Storage
To keep the settings and counters in the table above.
Alarms
To roll the day over at midnight and to re-enable protection when a pause expires, without keeping a timer running.
Idle
So minutes are not counted while you are away from the machine. It reports only idle or active, never what you are doing.
Offscreen
To run the image classifier in a hidden document, so inference never blocks the page you are reading.
Incognito windows
Chrome disables extensions in incognito unless you allow it, and CleanTab does not ask for that by default. If you do enable it, CleanTab runs in split mode: an incognito session gets its own temporary state, and incognito browsing is not written into your daily counters or your history.
Your data is yours
You can export everything CleanTab holds as a JSON file at any time from the Sites tab, and import it back on another machine or after a reinstall. That file is the whole of your data — read it if you want to see exactly what is kept.
Uninstalling the extension deletes all of it, because it never existed anywhere but your browser. There is no account to close and no deletion request to send. Export first if you want to keep your statistics.
Children
CleanTab is not directed at children under 13 and collects no personal information from anyone, of any age.
Changes to this policy
If the extension ever starts doing something this page does not describe, this page changes first, and the date at the top changes with it. The source is public, so the claims here can be checked rather than taken on trust.
Contact
Questions about this policy, or about anything CleanTab does, go to toubbaliilyasse@gmail.com. The code is at github.com/ToubbaliIlyass/CleanTab under the MIT license.