Privacy Policy
Last updated: October 19, 2026
ContextSnap is a Chrome extension that explains content you are looking at, in place, on the page you are already on. This policy describes exactly what leaves your computer, where it goes, what is kept and for how long. It is written to be specific rather than reassuring.
ContextSnap is operated by Pham To Linh, an individual based in Vietnam, who is the controller of the personal data described here. Contact: [email protected].
The short version
- Nothing is sent anywhere until you take an action: clicking Explain, capturing a region, or pressing a shortcut.
- When you do, the content you selected, and only that content, is sent through our server to one AI provider, OpenAI (GPT-6 Luna) or Google (Gemini), to write the answer.
- We never receive the address of the page you are on, its title, your browsing history or your name.
- Your conversations are kept only on your computer, in the extension's History, so you can find them again. They are never sent to us to be stored. You can turn History off or delete it at any time.
- There are no accounts and no passwords. To count your daily limit we use a random device identifier, not your identity.
- If you buy a paid plan, Dodo Payments handles your payment details. We never see your card.
- What is sent, and to whom
- Screen capture
- What is stored on your computer
- What our server stores
- IP address and country
- Payments
- Service providers
- Why we may process your data
- International transfers
- Limited Use disclosure
- Your choices and rights
- Age requirement
- Changes to this policy
- Contact
1. What is sent, and to whom
When, and only when, you ask for an explanation, the following is sent to our server, which adds our API key and forwards it to one AI provider: OpenAI's API (api.openai.com, model GPT-6 Luna), which writes most answers, or Google's Gemini API (generativelanguage.googleapis.com), which is used when OpenAI is unavailable, for web search, and in countries OpenAI does not serve. Each request goes to only one of them, unless the first fails before answering, in which case the same request is sent to the other. Our server does not store it.
| What | When |
|---|---|
| The text you selected, plus up to about 500 characters of surrounding text from the page, used as context | When you click Explain on a selection or press the explain shortcut |
| The image region you drew | When you use a capture shortcut or menu item |
| Both image regions | When you use two-region mode (one region as context, one as the question) |
| Your follow-up questions, plus the earlier turns of that same conversation | When you keep asking in the answer panel |
| A fixed instruction telling the model how to answer, and your chosen answer language | Every request |
We use the paid API services of OpenAI and Google. Under OpenAI's API terms, data sent to its API is not used to train or improve its models, and we ask OpenAI not to store our requests (store: false); OpenAI keeps API data for up to 30 days only to detect and prevent abuse, unless the law requires longer. Under Google's terms for paid services, Google does not use your prompts or the answers to improve its products and keeps them for a limited period only to detect and prevent abuse of its service.
Web search (Pro plans only). If you turn on web search or press a web search button, Gemini may run Google searches to check its answer and add sources. Your question text then reaches Google Search. Under Google's terms, data used for search grounding is kept by Google for 30 days. Web search is off unless you turn it on.
Never sent: the address (URL) of the page you are on, the page title, your browsing history, other tabs, cookies, form data you did not select, your name or your email.
2. Screen capture
This is the most sensitive thing the extension does, so here is exactly how it works. When you start a capture (with the right-click menu or a keyboard shortcut):
- The extension asks Chrome for a picture of the visible area of the tab you are on, using the
activeTabpermission that Chrome grants only after you invoke the extension on that tab. - That picture is shown over the page for a moment so you can drag a box on it. It exists only in your browser's memory.
- Only the region you drew is cropped, downscaled and sent. The rest of the picture is discarded and never leaves your computer.
- Nothing is written to disk or to extension storage.
A technical detail, stated plainly. The frozen picture and the answer panel are drawn inside the page you are on. In the current version, a script running on that same page could technically read what they show while they are open. The picture only shows what that tab was already displaying. We plan to close this off in a future version.
What the extension cannot do: capture your screen outside the browser, capture other tabs, capture a tab you have not invoked it on, or capture anything in the background. It uses chrome.tabs.captureVisibleTab only.
3. What is stored on your computer
| Stored | Where | Why |
|---|---|---|
| Your settings: answer language, display language, appearance, web search on or off, and the name you choose to show on your share images (optional, never sent to us) | Chrome extension storage, synced by Chrome across your own Chrome profiles | So the extension behaves the same on your machines |
| A random, anonymous device identifier (shown in Settings) | Extension storage on this device | So our server can count your daily limit without knowing who you are |
| Your plan and how many explanations you have used in the current day or month (a copy of the count our server sends back with each answer) | Extension storage on this device | So the extension can show your usage meter, even offline |
| If you have a paid plan: your plan, the last 4 characters of your licence key, and the names of the devices it is active on (the full key is not kept here) | Extension storage on this device | So Settings can show your licence and devices |
| Your History: the text you asked about, your follow-up questions, the answers, the time, and the title and address of the page you were on. Captured images are not kept, only a note that the question was a screenshot. Nothing is saved from incognito windows. | Extension storage on this device only (not synced, never sent to us) | So you can find past explanations again. Turn it off in Settings or on the History page, delete one conversation or all of them there. Removing the extension deletes it. |
| Your progress: how many explanations you asked for each day and month, your streak of days, the achievements you unlocked, and a number computed from each page's address (a hash, not the address itself) so we can show how many different pages you read | Extension storage on this device only (not synced, never sent to us) | To show your progress, monthly rank and achievements. Removing the extension deletes it. When you share an achievement, the picture is drawn on your computer and nothing is sent until you post it yourself. |
Not stored on our server: your conversations or the text you selected. Your History stays on your computer as described above. Not stored anywhere: the images you captured.
PDF reader: when you open a PDF in ContextSnap's reader, the extension downloads the file directly from its address (the same request your browser makes when it opens the PDF, including your sign-in for that site), or reads the file you choose from your computer. The PDF is shown only in your browser and is never sent to us. As everywhere else, only the text or region you ask about is sent to the AI provider. The reader remembers the last page you read in each file, on this device only. If a page is a scanned image, the reader recognizes its text (OCR) so you can select it. Recognition runs entirely inside the extension on your computer, using language files bundled with the extension; the page image is never uploaded to us or to anyone else.
When you remove the extension, Chrome opens a short page on our website saying that your History was deleted. Its address carries no identifier or other information about you.
4. What our server stores
| Stored | For how long |
|---|---|
| Your anonymous device identifier with today's counts: explanations, AI requests and web searches | Deleted automatically after 36 hours |
| Your anonymous device identifier with the date it was first used (this decides your first-week allowance) | Deleted automatically after about 13 months |
| Your anonymous device identifier with this calendar month's number of explanations. Once an hour these numbers are combined into one anonymous summary per month (how many devices reached each number). The extension receives only that summary's result for you: your own position (for example "top 9% of users") and the share of users at each monthly rank. No one else's count, and nothing about who you are, is ever shown to other users | Deleted automatically after about 75 days |
| If you have a paid plan: your licence key, plan and status, the date it was first activated, and for each device it is active on: a name such as “Chrome · macOS”, the date it was added, the activation ID from Dodo Payments and your anonymous device identifier | While the plan is active, then up to 13 months for refunds and support |
| If you have a paid plan: this month's counts of explanations and AI requests for your licence, stored under a code made from the key (not the key itself) | Deleted automatically after 40 days |
| Feedback or a bug report, only when you press Send: your message, its type, your email if you chose to give one, your device identifier, and, if "Include technical details" is on, the extension version, Chrome language, operating system, Chrome version and your most recent error message. Never the page you are reading | Deleted automatically after about 13 months |
| If you answer the optional "How did you find ContextSnap?" question on the welcome page: a daily tally per answer (for example "YouTube: 3"), not linked to you or your device | Deleted automatically after 36 hours |
Our server never stores the text you selected, the images you captured, your questions or the answers, and does not write them to any log.
Our server keeps no log files. While we are investigating a problem we can watch short status lines live, such as this one when a request to Google fails:
{"evt":"upstream_error","status":429,"googleStatus":"RESOURCE_EXHAUSTED","googleMessage":"Resource has been exhausted","model":"...","plan":"free","colo":"ORD"}
These lines contain error codes, Google's short error message, your plan type and, when a request is refused for regional reasons, a two-letter country code. They never contain your content, IP address or device identifier.
5. IP address and country
Your requests travel over the internet, so your IP address is visible to our hosting provider, Cloudflare, and to Google, as it is to any website you open. We use it in two narrow ways and never store it:
- Abuse prevention. Cloudflare's rate limiter counts requests per IP address for about one minute, to stop one person from flooding the service.
- Regional availability. Cloudflare tells our server which country a request comes from, so we can refuse requests from places where Google's Gemini API is not available.
6. Payments
Paid plans are sold by Dodo Payments, which acts as our merchant of record. When you buy, Dodo Payments collects your payment details, name, email address and billing address, processes the payment and handles tax. We never see or store your card details.
Dodo Payments shares with us what we need to provide and support your plan: your name and email address, your country, what you bought, the order or subscription status, and your licence key. Dodo Payments handles your data under its own privacy policy, available on dodopayments.com.
7. Service providers
| Who | What they do | What they receive |
|---|---|---|
| OpenAI (API, GPT-6 Luna) | Writes most explanations | The content you asked about, for that request |
| Google (Gemini API) | Writes explanations when OpenAI is unavailable, for web search, and in countries OpenAI does not serve | The content you asked about, for that request |
| Google Search | Checks answers and adds sources, only when web search is on (Pro) | Your question text, for that request |
| Cloudflare | Hosts our server and this website | Network traffic, as any host does; the storage described in section 4 |
| Dodo Payments | Sells paid plans, processes payments, handles tax and refunds, and confirms licence keys | The payment information described in section 6. When you activate a licence: your licence key and a device name such as “Chrome · macOS” (never your device identifier). When you remove a device, and a few times a day to check the plan is still active: your licence key |
| Resend | Forwards feedback you send to our inbox | Only the feedback fields in section 4, only when you press Send |
We do not use analytics services, advertising networks, trackers or session recorders, and we do not sell or share your data for advertising. The extension contains no remote code: everything it runs ships inside the package.
8. Why we may process your data
If you are in the European Economic Area, the UK or Switzerland, these are our legal bases under the GDPR:
- Performing our contract with you: sending your request to our AI provider (OpenAI or Google) and returning the answer, counting your plan's limits, and managing a paid plan.
- Legitimate interests: preventing abuse with rate limits and the anonymous device identifier, keeping the service secure, and refusing requests from unsupported regions.
- Consent: feedback you choose to send, including your email if you give it, technical details if you leave them on, and the optional welcome question. You can withdraw consent at any time by emailing us.
- Legal obligation: payment and tax records, which Dodo Payments keeps as merchant of record.
9. International transfers
ContextSnap is operated from Vietnam, and our providers process data in the United States and other countries. When your data moves outside your country, we rely on our providers' data processing terms, including the European Commission's Standard Contractual Clauses where they apply.
10. Limited Use disclosure
ContextSnap's use of information received from Google APIs will adhere to the Chrome Web Store User Data Policy, including the Limited Use requirements.
We use the data described above only to provide the feature you invoked; we do not transfer it to others except as needed to provide that feature, to comply with applicable law, or as part of a merger or acquisition; we do not use or transfer it for advertising of any kind; and we do not allow humans to read it, except with your explicit consent, for security purposes, to comply with applicable law, or where the data has been aggregated and anonymised.
11. Your choices and rights
- Stop everything: uninstall the extension. Chrome removes local settings, your History and the device identifier.
- Turn off or delete History: switch off "Save history" in Settings, or delete one conversation or all of them on the History page.
- Keep web search off: it is off by default; you can check in Settings.
- Delete your server-side records: email us your device identifier (shown in Settings) and we will delete the counters and records linked to it. For a paid plan, include your licence key or order number.
- Depending on where you live, you may have the right to access, correct, delete or receive a copy of your data, to object to or restrict processing, and to withdraw consent. Email [email protected]; we answer within 30 days.
- You also have the right to complain to your local data protection authority.
12. Age requirement
ContextSnap is only for people aged 18 and older, as required by the terms of the Gemini API we use. It is not directed to anyone under 18, and we do not knowingly collect data from them. If you believe a person under 18 has sent us data, email us and we will delete it.
13. Changes to this policy
If we change what leaves your computer or what we keep, we will update this page and the date at the top before the new version of the extension ships. If you have a paid plan, we will also email you about material changes.
14. Contact
[email protected]. A person reads this and replies.
Pham To Linh, Vietnam
This page describes ContextSnap's technical behaviour and our commitments. It is not legal advice.