Last updated: 10 August 2026 Contact: sinhanikhil549@gmail.com
The use of information received from Google APIs will adhere to the Chrome Web Store User Data Policy, including the Limited Use requirements.
In this extension's case that commitment is easy to keep: it has no server to send anything to. Everything below describes data that never leaves your computer.
Chrome asks developers to disclose the data an extension handles even when it is only ever processed locally and never transmitted. Two of Chrome's categories apply here, and both stay on your machine:
| Category | What it is here | Leaves your device? |
|---|---|---|
| Authentication information | A SHA-256 hash of the master password you optionally set | No. Never transmitted. The plain password is never stored at all. |
| Web history | The address of a tab is read as it navigates, so the extension can decide whether that site is currently blocked | No. Not stored, not logged, not transmitted. |
Nothing else is handled: no name, email, address or ID; no health, financial or payment data; no location; no personal communications; no page content; no form data; no keystrokes; no mouse or scroll tracking.
This extension collects nothing, sends nothing, and has no server. Everything it knows stays in your own browser's local storage on your own computer. There is no account, no analytics, no telemetry, no crash reporting, no advertising, and no third-party SDK of any kind.
If the extension were removed from your browser tomorrow, there would be nothing left anywhere for anyone to delete, because nothing ever left your machine.
All of it lives in chrome.storage.local — your browser's own storage, on your own disk. None of it is synced to a Google account (chrome.storage.sync is not used anywhere), and none of it is transmitted.
| What | Why |
|---|---|
| The list of websites you chose to block or allow | To know what to block |
| Your daily Anki study goal, and how much of it you've done | The gate itself |
| Cards reviewed today, as a number | The optional card-count goal |
| How many different cards you reviewed today, as a number | The optional "count each card only once" check |
| How many cards are still due today, as a number | The optional "clear today's due" goal |
| How many of today's review answers were right and wrong, as two numbers | The optional "get this much right" goal |
| Seconds studied today per deck, as a number for each deck you studied | The optional per-deck time goals |
| The names of any decks you chose to limit the goal to, exactly as you typed or picked them | To know which decks count |
| Your settings (anti-cheat switches, sensitivities, theme, reset time) | To behave the way you configured |
| A SHA-256 hash of your password, if you set one | To check the password without storing it |
| Points, level and streak count | The scoreboard on the popup |
Your password is never stored. Only a SHA-256 hash of it is kept, and the hash is only ever compared against a hash of what you type. It is not sent anywhere.
This is the part that deserves the most detail, because it is the part that sounds most alarming.
Your video never leaves your computer. It is never uploaded, never recorded, and never written to disk.
The camera check is off when you install the extension. It stays off until you turn it on yourself, with the switch in Settings → Study & Unlock → 📷 Camera. Setting a study goal does not turn it on; nothing turns it on but that switch.
If — and only if — you switch the camera check on, the extension opens a small window that requests camera access through Chrome's normal permission prompt. Each frame is analysed in memory, inside your browser, by a face detector (lib/pico.js plus a bundled detection model) that runs entirely locally. There is no cloud vision service and no network request involved in any part of it.
The only thing produced from your camera is a single true/false answer, many times a second: *is a face visible right now?* That boolean is the sole output. The frames it was computed from are discarded immediately and are never stored, serialised, or transmitted.
The camera is released (the tracks are stopped, and the recording indicator goes out) when the camera window is closed, when the page is closed, and when the extension no longer needs it.
You can turn the camera check off completely in Settings → Study & Unlock → 📷 Camera, and the extension works without it.
To block a site, the extension has to be able to see the address a tab is going to. It does this with Chrome's tabs API. That is why Chrome shows you the "read your browsing history" warning at install — it is the standard warning for that permission.
What actually happens with a URL: it is compared, in memory, against the block or allow list you typed in yourself. If it matches and today's goal isn't finished, the tab is sent to the extension's own "earn it first" page. That is the entire lifecycle.
No browsing history is stored, logged, profiled, or transmitted. The address of the page you were sent away from is passed to the blocked page in its own URL, so it can show you where you were going and send you back afterwards. It is not written to storage. Because that happens by navigating the tab, the blocked page's address — which contains the address you were heading for — appears in your own browser history like any other page you visit. That is your browser's record, on your machine; the extension neither reads it nor keeps a copy.
The only site addresses this extension *stores* are the ones you type into the block or allow list yourself.
The extension makes network requests to exactly two addresses, both of which are your own computer:
http://127.0.0.1:8765 — AnkiConnect, a third-party Anki add-on, to ask how many cards you've reviewed today, whether a card is open, which deck it is from, and (when you press ⬇ Load) the list of your deck names.http://127.0.0.1:8766 — the FocusGate Bridge add-on that ships with this extension, to ask whether the Anki window is in front and full screen, and — only if you switch those goals on — a handful of counts about today's study. The next section sets out exactly which counts, and what the extension sends in order to ask for them.That is the complete list, and both addresses are fixed constants in the code rather than settings. The extension's host permissions are exactly those two ports — http://127.0.0.1:8765/* and http://127.0.0.1:8766/* — so this claim is enforced by Chrome rather than merely promised. It has no permission to reach any other address, on your machine or on the internet.
The one exception is entirely user-initiated: if you click the Anki link and Anki turns out not to be installed, the extension opens Anki's official download page (https://apps.ankiweb.net/) in a tab. Opening a tab is not a data transfer.
The FocusGate Bridge add-on runs a small HTTP server on 127.0.0.1:8766, inside Anki, on your machine. It reports three things:
These are those four counts, in full:
| Count | What it is |
|---|---|
| Cards still due | How many cards Anki is still asking you for today, taken from the same deck-list numbers you see when you open Anki |
| Different cards answered | How many distinct cards you have answered since your day began — a count, not a list |
| Answers right | How many of today's review answers were correct |
| Answers wrong | How many were not |
To work these out, the add-on reads your review log and your deck list inside Anki. It reads your scheduling data, and this is where that happens — because there is no other way to answer "is anything still due" or "how many did you get right". What crosses the boundary is only ever the four totals above. No card identifiers, no note contents, no field text, no question, no answer, no per-card history, and no list of which cards were involved. Your collection is only ever read, never written.
So that these can be scoped to the right decks and the right day, the extension sends the add-on two things when it asks: the names of the decks you chose (if you chose any), and the time your own study day began. Both stay on your machine — this is one program on your computer asking another.
Nothing about your notes, your cards' contents, or your answers to individual cards is ever read or reported.
To answer the media question, the add-on adds a small script to the card as Anki displays it. That script looks only at the media elements on the page and, for a YouTube embed, adds enablejsapi=1 to the embed address so the player will report whether it is playing. That is a change to the copy of the card being displayed, in memory, for that moment — your notes and cards are never modified, and nothing is written back to your collection.
It only answers requests that come from a browser extension. Requests carrying a website's origin are refused, so a web page you happen to have open cannot read your Anki window state or ask Anki to come to the foreground.
On Windows it also registers a focusgate-anki:// link under your own user account (HKEY_CURRENT_USER) so the extension can start Anki, since Chrome is not allowed to launch a program directly. Nothing is written outside your user account and no administrator rights are used.
One button saves a file, and only when you click it. ⬇ Add-on builds the .ankiaddon file from the copy bundled inside the extension and saves it to your Downloads folder, the same way clicking any download link on any website does. Nothing is fetched from a server to do it, and the extension does not ask Chrome for the downloads permission — it has no ability to see, search or open your downloads. You install the saved file yourself, in Anki.
There is none. Every line of JavaScript the extension runs ships inside the package, as Manifest V3 requires. Nothing is fetched and evaluated at runtime, and there is no remote configuration.
The extension is a study tool with no accounts, no social features, no user- generated content, and no data collection, so there is nothing for it to collect from anyone of any age.
If this policy ever changes, the updated version will ship with the extension and be published alongside it. Material changes will be noted in the extension's store listing.
Questions: sinhanikhil549@gmail.com