Privacy Policy — LexWeave Lookup
Last updated: 2026-11-10
LexWeave Lookup is a browser extension that helps you look up and understand English words and phrases while you read. This policy explains exactly what the extension does with your data. In short: the version you have installed today has no server of its own, sends the developer nothing, and keeps your data on your own device. LexWeave Lookup is also a plugin for Obsidian; how the plugin differs is under "The Obsidian plugin" below.
What the extension does with your data
Text you look up, and questions you ask. When you look something up, the text you chose is sent directly from your browser to Google's Gemini API using your own API key. For a word or a phrase, and for a question about part of a passage, the text around it is sent too — by default the sentence before and the sentence after, at most about 600 characters — because the meaning that fits depends on it. When you ask about part of a passage (Grammar, Usage, Culture, or a question in your own words), that part, the kind of question, and any question you type are sent the same way. If you have also added a Google Cloud Translation key, a passage is sent to that API instead only when Gemini is unavailable. This is necessary to produce the meaning, IPA, translation, or answer you asked for. The request goes straight from your browser to Google. The developer of this extension does not receive it, does not see it, and operates no server that it passes through.
Video captions: YouTube, Khan Academy and PBS (off unless you turn it on). With "Look up words in video captions" on, the extension reads the whole caption track of the video you are watching and shows it in its own bar. On YouTube it asks YouTube — from the YouTube page you are on, as the player itself does — for the video's caption track, and for its automatic captions to time the words. On Khan Academy it asks Khan Academy — from the Khan Academy page you are on — for the lesson data that page has just asked for itself (the same address, without your Khan Academy cookies), which holds the video's captions; and it gives the YouTube player in that page the same commands the player's own buttons give it (pause, play, go to a time, mute, hide its own captions). A small script of the extension's inside that YouTube player passes the player's full-screen button, a double-click on the picture, its F key and the bar's B, V and N keys to the page, so that the player and the bar go full screen together; it reads nothing else and sends nothing anywhere. On PBS (pbs.org, and a PBS station's site that plays PBS's player), a small script of the extension's inside PBS's video player tells the bar in the page where the video is and carries out the same commands; that stays inside your browser and sends nothing anywhere. The extension asks PBS for the video's caption file, at the address PBS's player lists, without your PBS cookies. Resting the pointer on a word in the bar looks the word up as above, with the sentences around it; the caption track itself is sent to Google only if you also turn on subtext notes (next).
Subtext notes on videos (off unless you turn it on). With "Caption bar: explain what the words take for granted" on (on the bar itself: Aa, then Subtext), the extension sends the captions of the video in the caption bar to the Gemini API, with your key, a quarter of an hour at a time, and asks what a viewer from elsewhere may miss in them: a quotation, a joke, a person, an institution, a custom. Each request carries the video's title; that quarter of an hour's sentences, each with when it is spoken, where a new speaker starts, and the sounds the captions note (such as [laughter]); and the name of your language, so that the notes come in it. It does not send the video itself, its address, or anything else. It asks about the quarter of an hour the video is in, and, three minutes before that one ends, the next. This request always uses Gemini 3.8 Flash, whichever model you chose for lookups. The answers are kept in the lookup cache on your device, so watching the same video again sends nothing. Turning subtext notes off stops the requests.
PDFs. When you open a PDF in LexWeave's viewer from a web address, the viewer downloads it from that address, as your browser would to show it; a PDF from your computer is read on your computer. Its text stays on your device except what you look up, as above.
Word highlight (off unless you turn it on). On a passage card, switching on the word highlight sends the passage and its translation to the Gemini API once more, with your key, to ask which words correspond. This request always uses the extension's default Gemini model (currently Gemini 3.1 Flash-Lite), whichever model you chose for lookups. It is offered for Chinese so far.
The setup page. When you install the extension, a setup page opens. It reads your computer's time-zone setting, on your device, only to tell you whether Gemini is available where you are; that setting is not stored or sent anywhere. The setup page also keeps a small record on your device of which of its steps you reached, finished or left, and the kind of any error (for example, that a key was not accepted) — with a random number that ties the lines together, the extension's version, the language you chose, and whether you use Chrome or Edge on a Mac, Windows or Linux. It never records what you look up, any web page, your notes, or your keys or any part of them. Nothing sends this record anywhere. You can view, export or clear it in the options, under "Setup record"; clearing it also replaces the random number.
Your API keys and settings. Your API keys are stored only in your browser, in the extension's own database, where the scripts it runs on web pages cannot read them; your preferences are kept in the browser's local extension storage. Keys are never sent anywhere except to the corresponding Google service as the credential for the request you made. When you paste a Gemini key, the extension checks it by sending one short request (the word "test") to the Gemini API with that key. The developer never receives your keys.
Saved items and your review list. Words, phrases, sentences, answers and subtext notes you choose to save — with any note you write; for an answer, the question you asked in your own words; and for a subtext note, the time in the video and the video's address, so that you can go back to that moment — are kept in your browser's local storage. If you choose to save to Obsidian, saved items are also handed to the Obsidian app on your own computer, in the way you pick for each save location: through Obsidian's Local REST API plugin at a local address (127.0.0.1), or, with no plugin, as an obsidian:// link that your browser passes to Obsidian on your computer after asking you once. Either way this data never leaves your machine. Each saved item ends its first line with a short random id (such as ^lw-7f3a2c9), so your note and your lookup history can refer to the same item; it is not made from the words. "Connect Obsidian…" in the options writes one test line to @@memory/connection-test.md in your vault.
Your lookup history. The extension keeps a private history of the words and phrases you look up, save, or are shown by Find Phrases: the word, the meaning it was given, and when. Unless you turn off "Remember where I looked words up", it also notes where you met the word: the page's title, the sentence around the word (the same sentence that was sent to Google for the lookup), and a one-way hash of the page's address -- never the address itself. This groundwork for review and a personal vocabulary profile stays on your device and is never uploaded or shared. It also notes the passages you translate (a selection long enough to be shown as a passage): the passage itself, unless "Remember where I looked words up" is off; how many sentences it has; and what you did on the card -- which sentence pairs you tapped, whether you listened, whether you switched on the word highlight, whether you opened Find Phrases or the Explain pane, which part you looked up, and the kind of question you asked about a part (Grammar, Usage, Culture, or your own) — not the words of a question you typed. Not where your pointer merely passed. Where it applies, it also notes the place in the source: a PDF's page number, a video's time. With video caption lookup on, it notes the same for a video whose captions are shown in LexWeave's caption bar, as soon as the bar shows them: the video's title, the whole caption text (unless "Remember where I looked words up" is off), and which of the bar's sentence buttons or keys you used -- replay, previous, next -- and where. With subtext notes on, it also notes which notes you opened and what you said of each (Useful, I knew it, Not right). What you chose to save — a word, a sentence pair, an answer with your question, a subtext note (without the video's address), your notes — is kept in the history as you saved it, whether or not "Remember where I looked words up" is on. For each save it also notes which of your save locations it went to, by which way (Obsidian with or without the plugin, or the extension's list), and whether it was written, sent or queued. The options page can export it as a file, and "Forget where I read things" erases the titles, sentences, passages and page hashes while keeping the words and what you saved. (Earlier versions kept only a tally of words; that tally is left as it was and no longer updated.)
The Obsidian plugin
The plugin looks things up the same way as the extension, under the same rules, with these differences.
What it sends. What you look up and ask goes from Obsidian on your device straight to Google, with your own keys, as described above: to the Gemini API; to the Cloud Translation API, if you add its key, when Gemini is unavailable; and for the word highlight, if you turn it on. If you choose Google's voices for reading aloud and add a Google Cloud Text-to-Speech key, the text to be read is sent to that API, and the plugin asks it for its list of voices; your device's own voices read on your device and send nothing. The plugin's "Test" button for the Gemini key sends one short request with that key.
Your API keys and settings are in your vault. Obsidian keeps each plugin's settings in a file inside the vault; for this plugin it is .obsidian/plugins/lexweave-lookup/data.json. Your API keys are stored there as plain text, with your other settings and the cost log (which service was called, when, how many tokens or characters, and the estimated cost; not what you looked up). If you sync or share your vault (Obsidian Sync, iCloud, Dropbox, a git repository...), your keys go wherever the vault goes.
Lookup history and caches are kept in Obsidian's own storage on each device, not in your vault, and are not synced. The history keeps the words you look up and save, as the extension's does, and, unless you turn off "Remember where I looked words up", the name of the note or PDF and the sentence around each word. From the plugin's settings you can copy the history to the clipboard, forget where you read things, and clear the caches and the cost log.
Your notes. Saving to your review note, and "Insert", write into notes in your vault. A PDF you open in Obsidian is read on your device; only what you look up leaves it, as above.
The plugin reads and writes no files outside your vault. It has no setup record, no analytics, no telemetry and no ads, and it sends nothing to the developer: there is no server to send it to. Removing the plugin in Obsidian deletes its folder, with the settings file and your keys. Its history and caches stay in Obsidian's storage on that device: clear the caches and forget where you read things from the plugin's settings before removing it.
What the extension does NOT do
- It does not send your data to any server operated by the developer — there is no such server.
- It does not transmit your data for analytics, tracking, advertising, or profiling. The only record of how the extension itself is used is the setup record described above, which stays on your device and which nothing sends.
- It does not sell or share your data with anyone.
- It does not send page content anywhere except what you look up or ask about and the text around it, and, with subtext notes on, a video's captions, as described above. To find that text it reads the paragraph you selected in (on your device), and with video caption lookup on, the video's captions.
Third parties
- Google (Gemini API / Cloud Translation API): receives the text you look up and the questions you ask, and, with subtext notes on, the titles and captions of the videos you watch, because you send them there with your own key. Google's handling of that data is governed by Google's own privacy terms for the API you use. On the Gemini API's free tier, Google's terms let it use what you send to improve its products; on a paid tier they do not.
- Google (Cloud Text-to-Speech API; the Obsidian plugin only, and only if you choose Google's voices and add its key): receives the text to be read aloud.
- YouTube (only with video caption lookup on): receives the extension's request for the caption track of the video you are watching, from the YouTube page, as the player's own request does. On Khan Academy, the YouTube player in the page receives the extension's commands (pause, play, go to a time, mute, hide its captions) inside your browser, as it receives those of its own buttons.
- Khan Academy (only with video caption lookup on): receives the extension's request for the lesson data of the video you are watching, from the Khan Academy page, at the address the page itself has just used, without your Khan Academy cookies.
- PBS (only with video caption lookup on): receives the extension's request for the caption file of the video you are watching, from the page you are on, at the address PBS's player lists, without your PBS cookies. PBS's player in that page receives the extension's commands (pause, play, go to a time, mute, hide its captions) inside your browser.
- The website a PDF comes from (only when you open a PDF from an address in LexWeave's viewer): receives the request to download it.
- Your own Obsidian (optional): receives items you choose to save, on your own computer only, through its Local REST API plugin or an
obsidian://link.
The extension uses no other third-party services.
Data retention and removal
All data the extension keeps is stored locally in your browser. Caches and the review list have size limits. The lookup history is not deleted over time, so it can serve as a record of your reading; the sentences in it are capped in total size, and the oldest lose theirs first. Uninstalling the extension removes all of it. You can clear the lookup cache, the cost log, the review list and the setup record, and erase where things were read from the lookup history, at any time from the options and popup screens.
Children
The extension is a general-purpose reading aid intended for adults aged 18 or older: it uses the Gemini API, whose terms require users to be 18 or older, and its setup says so before you begin.
Changes
If this policy changes, the "Last updated" date above will change and the new version will be published at the same location. If we ever add an optional account or cloud-sync feature, it will be off by default, and this policy will be updated to describe exactly what it does before that feature becomes available — not after.
Contact
Questions about this policy: privacy@lexweave.org