IntelliScribe
Add to Chrome

Privacy Policy

IntelliScribe AI · last updated September 17, 2026

IntelliScribe AI is a Chrome extension that turns speech into text and checks spelling and grammar as you type, with a companion web app at intelliscribe-app.netlify.app. This policy covers both. It explains what data they handle, where it goes, and how you can delete it.

Summary

What the extension processes

Microphone audio

When you start dictation or a recording in the extension, or press Dictate in the web app's Write tab, IntelliScribe uses your microphone while it records. Audio is converted to text by a Whisper speech-recognition model that runs in your browser on your computer (WebGPU/WebAssembly). Audio is not transmitted unless it goes to the cloud through your own API key (below) or, for a student, through their teacher's key (see Classes), or you choose to keep recordings in your account (see Kept recordings). Unless you turn it off, a compressed copy of each recording is kept for a short time, as described under Kept recordings.

On the website, a recording of up to 60 seconds is turned into text on your device. A longer recording, or one your device cannot do (the speech model failed to load, is still downloading after 45 seconds, or ran and failed — in which case IntelliScribe tells you and you choose "Use the cloud model instead"), goes to the cloud only if there is a cloud route: an API key you saved on the website, in which case the audio goes from your browser straight to that provider; or, for a signed-in student whose teacher allows cloud dictation and who has pressed OK on the notice about it, the teacher's key, in which case the audio goes through our server to the teacher's provider and the request is logged for the teacher (see Classes). With no cloud route, or while you are offline, your device turns the whole recording into text, however long it is. Website dictations are not saved to History; the text goes into your draft, which is kept in your browser's local storage on that device.

Kept recordings

So that nothing you say is lost if turning it into text fails or IntelliScribe closes, each dictation's recording is saved before it is turned into text, and kept for a short time so you can play it back or turn it into text again (Re-transcribe): from History in the extension, or from Recent dictations under the editor in the web app's Write tab. Recordings are compressed where the browser supports it (about 0.2 MB per minute of speech; otherwise about 2 MB). On the website, the Recent dictations list (the time, the text and where its recording is) is kept in your browser's local storage on that computer, like your draft.

Speech model download

The first time you use local transcription, the model files (neural-network weights) are downloaded from huggingface.co and cached in your browser's storage. This request contains no personal data. You can delete the cache from Settings → Transcription → Model & speed.

The website does the same the first time you press Dictate: it downloads the Whisper Tiny model (about 100 to 120 MB, depending on the device) from huggingface.co, and the speech runtime files from our own site, and your browser caches them so later dictations need no download. To remove them, clear this site's data in your browser's settings.

Writing checks

When writing checks are on for a page, the extension reads the text of the field you are typing in — and only that field — to underline spelling and grammar mistakes and offer fixes. The dictionaries, word lists and rules ship inside the extension and run on your device. Nothing from the field is transmitted or stored, apart from the words you deliberately add to "Your words" (kept in your settings and, when you sign in to the extension, in your account; see Optional account and sync). Writing checks never run on password or payment fields, and banking sites and school portals are excluded even if you allow checks on all sites.

The same applies to the full-page Writing Pad in the extension and to the Write tab of the web app: the checker runs in your browser (the web app fetches its word lists from our own site once), and what you write is not sent anywhere and not saved by us — except text you choose to send to an AI feature, and dictated text that is fixed automatically (see Optional cloud providers and Classes).

Dictation history

Text you dictate is saved on your device (chrome.storage) together with the title and address of the page you dictated on, so you can find it again in the History tab. This stays on your device unless you sign in (below). The History entries for dictations made in the side panel's Record tab or the Writing Pad, and for recordings recovered after IntelliScribe closed, stay on your device and are never synced. (Signed in, a Record-tab transcript is still saved to your account as a saved transcript, as described below.) You can delete entries individually or clear everything in Settings → General → Data & privacy.

On a browser that more than one person signs in to, each dictation is synced only to the account that was signed in when it was made. A dictation made while nobody was signed in is synced only to the account that was signed in most recently before it, and only when that account signs in again; if nobody had signed in on that browser, it is never synced. Dictations from before version 5.0 that had not reached an account yet stay on the device. These rules, and the same rules for "Your words" below, apply from version 5.0 of the extension. Chrome updates extensions on its own, but until a computer has updated, an older version there (4.7 or earlier) still syncs every unsynced dictation and word on that browser into whichever account signs in, and removing a word there does not remove it from the account.

Right-click AI actions (Fix grammar, Rewrite, the tone options, Shorten, Summarize) save the text you selected and the result to that same history, so you can find and reuse them. The same rules apply: on your device unless you sign in, and you can delete any entry from History.

Optional cloud providers

If you enter an API key for Google Gemini, Groq, OpenRouter, Anthropic (Claude) or OpenAI in Settings — in the extension or on the website — then:

are sent over HTTPS to that provider (generativelanguage.googleapis.com, api.groq.com, openrouter.ai, api.anthropic.com or api.openai.com) using your key, and are subject to that provider's privacy policy. Your key is stored in local storage on your device — the extension's, or on the website that browser's — and is sent only to the provider it belongs to, plus, in the extension when you are signed in, to your private account record (below). Remove the key in Settings to stop all cloud processing.

Optional account and sync

If you sign in (Google, or email and password), the extension stores your saved transcripts, your dictation history (text, title, cleaned text, summary, key points, page title and address, timestamps) and the words in "Your words" in our database, hosted on Convex (convex.cloud), linked to your account, so they are available on your other computers. Any API keys you have entered in the extension are stored in the same private account record so the extension on your other computers can use them too; they are sent only to the browsers where you sign in and to the provider each key belongs to. On a browser that more than one person signs in to, keys synced into it stay in that browser after you sign out, until they are removed in Settings or with Clear local data, and a key entered there can be synced into the next account that signs in; on a shared computer, remove your keys before you sign out. "Your words" follow the same rule as History (see Dictation history): a word added while you are signed in is added only to your account; a word added while nobody was signed in is added only to the account that was signed in most recently before it, when that account signs in again, and never if nobody had signed in on that browser; words that were on the browser before version 5.0 stay there and are not added to any account. Words synced from your account stay in that browser's "Your words" after you sign out, until they are removed or Clear local data is used, but they are never added to another account. Removing a word in Settings while you are signed in also removes it from your account: straight away when you are online, otherwise the next time you open the extension's side panel signed in on that browser (unless Clear local data is used before then). Removing a word while nobody is signed in, or removing a word that came from someone else's account, removes it only from that browser, and a word that is in an account comes back when that account signs in there again. History your account synced to a browser also stays listed in that browser's History after you sign out, until you delete it or use Clear local data. Keys you save on the website under Settings → AI are not synced: they stay in that browser. A teacher's class keys, added under Settings → School, are different: they are kept with the teacher's account on our server (see Classes below). An account also lets you join or run a class (see Classes). Your email address is used only to identify your account (and, in a class, it is shown to the teacher; see Classes). Every database function checks the signed-in user and returns only that user's rows; nobody else, including other users, can read them. Without signing in, nothing is sent to our database, except the email address you type on the sign-in screen (see "Checking your email address") and, if you press "Forgot password?", the reset code (see "Password resets").

In the extension you can sign in inside the extension itself, or choose "Sign in in your browser", which opens our web app in a browser tab. When you finish signing in in that tab, the page passes the session to the extension and nothing else; the extension accepts it only if you asked for it from the side panel moments before. Signing out of the extension also ends a class's settings on that computer (for example, writing checks a teacher turned off come back) until you sign in again.

Checking your email address. When you sign in or create an account, the sign-in screen first asks our server whether that email address already has an account and how it signs in (with a password or with Google), so that a mistyped address does not create a second, empty account. Because this check works before anyone is signed in, it can show whether an address has an IntelliScribe account. The current sign-in screen's check is limited in how many times it can be made for one address, and in total, each hour; for that count the server stores only a scrambled (hashed) form of the address, and deletes it after a day. An older form of this check, still used by version 4.7 of the extension, is not limited; it will be removed once version 5.0 has reached everyone.

Password resets. If you press "Forgot password?", the reset code is recorded for 20 minutes and shown, with your email address, to IntelliScribe's administrator (us), so that it can be read to you when your school's mailbox cannot receive our email. The administrator is reminded to make sure they are talking to the owner of that address before reading a code out. Expired codes are deleted within about an hour.

Classes (for schools)

A teacher can create a class and add their own API key, which is kept with their account and shared by every class they run. A student joins only by typing the class code or opening the invite link their teacher shared, and is shown the class name, the teacher's email address and what the teacher can see before they confirm. Nobody can be added to a class by someone else. Classes need an account.

The class list. A teacher can paste the email addresses of the students they expect (pasting fills a class list up to 200 addresses, however many pastes it took, and one paste can be up to 50,000 characters; approving a student adds their address as well), and type a name beside any of them. That list is stored with the class on our server and can be read and changed only by the teacher who owns that class; it is not an account for anyone, it sends nobody an email, and it never puts somebody in a class who has not asked to join it themselves. What it changes is who may join: once a list exists, somebody who uses the code or link with an address that is not on it is waiting for approval — their email address and the time they asked are shown to that teacher until the teacher approves or declines them, or they withdraw by leaving. A student the teacher declines is treated exactly like one they remove from the class: their address stays on that teacher's class page as a removed student, so the teacher can let them back in later. While a student is waiting they are not in the class: none of the teacher's settings apply, nothing of theirs can use the teacher's key, and nothing they do is recorded for the teacher. Adding a waiting student's address to the list is also an approval — unless the class is full or archived, or they have since joined another class, it lets them in, and from then on the class's settings apply to them like any other student in it; the teacher's page says how many of the addresses they pasted were let in that way. A class with no list works as before: anyone with the code or link joins straight away. A teacher can remove any address from the list at any time; removing the address of a student who has already joined does not remove that student, and the last address can only be removed once nobody is waiting, because removing it opens the class to anyone with the code again. The list is kept until the teacher removes it, and a request nobody answers is deleted 30 days after it was made. A list match is the address the account signed in with: it saves the teacher a click for somebody who already has the class code or link, and a class with no list lets that same person in anyway.

While a student is in a class:

IntelliScribe's administrator (us) can see a list of all classes with each class's name, its teacher's email address, when it was made, how many students are in it and how many AI requests it made in the last 30 days, to look after the service. That list does not include the requests, their text, or who the students are.

A student can leave a class at any time; no new requests are recorded after that, and past requests age out on the schedule above. A teacher's API keys are stored on our server (Convex) linked to the teacher's account, are never shown again after being added (only their last four characters), are never sent to students' devices, and are sent only to the provider each key belongs to. A teacher can delete a key at any time.

The web app

The web app (intelliscribe-app.netlify.app/app/) works without an account: your Write tab draft (including dictated text), settings and any API key you save there stay in your browser's local storage on that device. Sign in and its History tab shows the history your account holds; keys saved on the website are still not synced. Our public pages load their typefaces from Google Fonts, which means Google receives the usual web request (your IP address) when a page opens; the web app itself and the extension ship their own fonts and make no such request.

Settings

Preferences (colour scheme, dictation quality and language, writing rules, allowed sites, thresholds) are stored locally with chrome.storage / localStorage.

What the extension does not do

Deleting your data

Children

The extension is not directed at children under 13. Schools deploying it for students can keep the default (no account, no API key), in which case no data leaves the device. A school that uses classes (above) should make sure its own consent requirements for student accounts and teacher-visible AI use are met before students join.

Changes

We will update this page and the "Last updated" date when the policy changes.

Contact

onwarddigitalca@gmail.com