Twinread: Bilingual Page Translator: Privacy Policy
Last updated: 2026-10-14
Who we are
Twinread is a browser extension published by Exochard, the publisher named on its store listings. Exochard decides what data Twinread handles and is responsible for it. Contact: [email protected]
This policy covers the extension, the Twinread API it talks to (hosted on Cloudflare at exotools-api.exochard.workers.dev; older versions call gigscope-api.exochard.workers.dev, which forwards to it) and the website https://twinread.pages.dev. It describes every kind of data Twinread collects, how it is used, where it is stored, how long it is kept and who it is shared with. Twinread collects no data that is not listed here.
What the extension does
Twinread translates the web page you are reading, the captions of a video on it, a PDF you open in its reader, or text you select or type, into another language, and shows the result on the page. The translating is done by the translator built into your browser, Google Chrome or Microsoft Edge (the Translator and LanguageDetector browser APIs), on your computer, unless you choose a translation provider of your own for a language pair (see "Text you send to a provider you choose"). At install it has no access to any website. It gets access to the tab you click the toolbar icon on, or press its shortcut on, for as long as that page is open. If you switch on "Always translate this site", the browser asks you for access to that one site, and you can withdraw it by switching the option off. The same applies to "Player button on YouTube": the browser asks for access to www.youtube.com when you switch it on, the button then appears in the player of every YouTube video, and switching it off withdraws the access. Until you press the button, turn subtitles on or use the toolbar icon or shortcut, Twinread only shows the button and reads nothing else on YouTube. In Firefox, subtitles in a video player embedded in another site, such as a Vimeo player, work the same way: the browser asks for access to that player's host when you press the button for it, and you can withdraw it in the browser's extension settings.
Summary of the data Twinread handles
- Authentication information: your Pro licence key, sent to the Twinread API to check it.
Twinread does not collect usage statistics, your browsing history, health, financial or payment information, location, or the text of the pages you translate. That text stays on your computer unless you choose a translation provider for a language pair; then the text being translated goes to that provider, as described below. It does not sell data, does not use it for advertising, and does not use it to decide creditworthiness or for any purpose unrelated to translating pages for you.
Data stored only in your browser
The extension asks for room beyond the usual storage limit, so a long list of kept phrases can grow. All of it stays on your computer.
These stay in your browser's extension storage and are never sent to us:
- Your settings: languages, display mode and style, the sites on your always-translate and never-translate lists, and your glossary.
- Words and phrases you keep, from the selection card, a subtitle line, a PDF or the Prepare tab: the text, its translation, the sentence it came from, the language pair, the page title and address, and the time, with your flashcard review progress. They are only read by Twinread on your computer and leave it only if you export them, save a backup file or send them to Anki on your own computer (see below).
- Where each kept phrase was found: the page, video or PDF address and title, the sentence or subtitle line with the text around the phrase, the second in the video, the page of the PDF, or the file name and line of a file you chose in Prepare, with the date, how it was kept and the extension version. At most three places per phrase.
- Your known words: the words you mark as known or import from a list, per language.
- Text of a page you send to the Prepare tab from the toolbar: held in the browser's session storage until the tab reads it, for at most 30 seconds, and gone when the browser closes.
- Your Pro licence key and pass end date, if you activate Pro, and the start and end dates of the free trial.
- Small counters and notes that stay on your computer: how many times you used each Pro feature, the PDF pages opened in the reader, the random install id, a note of any browser seat waiting to be released, the dates you dismissed a hint, the rating request or the trial notice, which hints were already shown, whether the What's new note is waiting, and a clock check that keeps the trial dates honest.
- A translation cache that lives in the page's memory only and is gone when you close or reload the tab.
- Subtitle translations for the YouTube videos you watched with subtitles on: the video id, the language pair, the caption lines and their translations, for the last 200 videos, so a rewatch is instant. They are kept in the extension's own storage, not in the website's.
- If you use your own translation provider: the key you saved (and, for an OpenAI-compatible endpoint, its address and model name), and which language pairs use which provider. The key is read only by the extension's background worker; web pages cannot read it.
Uninstalling the extension deletes all of it.
Data that leaves your browser, and why
Licence check (authentication information)
- What is sent: your licence key, the product name, and a random id made when the extension was installed.
- When: when you activate Pro, and at most once a day after that. The free trial starts and ends on your device and sends nothing.
- Why: to confirm the key is valid with Payhip, the seller of record for Pro passes, and to count each browser once, so entering the key again in the same browser never takes a second of its 3 seats.
- Where it is kept: the Twinread API keeps the list of install ids that use a key, filed under a one-way hash of the product name and key; the key itself is not stored. The list expires 400 days after the key was last checked.
Text you translate (not sent to us)
- What happens: Twinread reads the text of the page in your browser, hands it to the browser's on-device translator, and puts the result back on the page. It does not send page text, selections, typed text, captions, addresses of the pages you visit or your translations to any server.
- Language models: the browser itself downloads a language model the first time you use a language pair. Chrome downloads it from Google, Edge from Microsoft, and the download contains no text from your pages. See Google's and Microsoft's documentation of the built-in AI APIs for how each browser handles it.
- Firefox: Firefox has no built-in translator, so Twinread translates with an engine bundled in the extension. The first time you use a language pair it downloads that pair's model from Mozilla's model servers (firefox.settings.services.mozilla.com and firefox-settings-attachments.cdn.mozilla.net), checks it and keeps it on your computer. The request names the language pair and contains no text from your pages. Uninstalling the extension deletes them.
Text you send to a provider you choose (not sent to us)
- What is sent: if you save a key for DeepL or for an OpenAI-compatible endpoint and choose it for a language pair, the text being translated for that pair (page text, a selected word or phrase, a caption line, text from a PDF) is sent from your browser to that provider's server, with your own key. The provider receives the text, the source and target language and your key. Twinread sends nothing else to it and nothing to us.
- When: only for the language pairs you route to a provider, and only after you save the key and the browser asks for access to that provider's server. Other pairs stay on your device. If the provider fails and your browser can translate the pair itself, Twinread uses the on-device translator instead.
- Who receives it: DeepL (https://www.deepl.com/privacy), or the server whose address you typed, under that operator's own terms. Remove the key in the options page to stop; this also withdraws the browser's access to that server.
PDF reader (not sent to us)
- What happens: when you click "Read this PDF", the extension downloads that PDF from its own address, as your browser would, or you drop in a saved file.
- Where it goes: the request goes to the site that hosts the PDF only. The PDF is read and translated on your computer and is not sent to us.
Send to Anki (stays on your computer)
- What is sent: for a phrase you send, its text, translation, sentence, the page title and the page address, to AnkiConnect, the Anki add-on that listens on http://127.0.0.1:8765 on your own computer. Nothing goes to us or to any other server.
- When: only when you press Send to Anki. The browser first asks for access to that local address, and you can withdraw it in the browser's extension settings.
Uninstall page
When you remove the extension, the browser opens https://twinread.pages.dev/bye. The address carries nothing: no version, no id. The page links to the store page for a review and to our email address, and sends nothing.
Website roadmap page
The roadmap page at https://twinread.pages.dev/roadmap shows planned and shipped changes. Loading it asks the API for the list of items and sends only the product name. The website sets no cookies. It counts page views per page and country with Cloudflare Web Analytics, which sets no cookies and keeps nothing that identifies you.
When you buy a pass
You buy Pro on Payhip, which handles the payment, your name, your email address and the licence key under its own privacy policy. Payhip then sends the Twinread API a notice about the order. The API keeps the product code of the pass, the price, the currency, whether a coupon was used and the order number for 35 days, plus a daily count of sales for 400 days. Your name, email address, network address and licence key are not stored by Twinread.
Who we share data with
We share data only with the services that run Twinread, and only for the purposes above:
- DeepL, or the OpenAI-compatible server you enter, only if you choose one for a language pair: it receives the text being translated for that pair, as above.
- Google (Chrome) or Microsoft (Edge), which provide the built-in translator and download its language models to your browser: https://policies.google.com/privacy and https://privacy.microsoft.com/privacystatement
- The site that hosts a PDF you choose to read in the Twinread reader.
- Payhip, to check licence keys and sell passes: https://payhip.com/privacy
- Cloudflare, which hosts the Twinread API and the website: https://www.cloudflare.com/privacypolicy/
We do not sell or rent data, do not share it with advertisers or data brokers, and do not transfer it for any other purpose. We would disclose data only if the law requires it.
How data is protected
All traffic between the extension, the Twinread API and the services above uses HTTPS. The Twinread API keeps licence keys and network addresses only as one-way hashes.
Your choices and rights
- See or delete your local data: uninstall the extension, or clear its data in your browser's extension settings.
- Exports and backup files you made stay where you saved them; delete them yourself if you no longer want them.
- Ask about a message you emailed us, or free a licence seat: write to [email protected]. We answer within 30 days.
- If you live in the EU or the UK, you also have the rights the GDPR gives you, including the right to complain to your data protection authority.
Children
Twinread is a general-purpose tool and is not directed at children under 16. We do not knowingly collect data from them.
Changes to this policy
When this policy changes, we update this page and the date at the top. A change that adds a new kind of data ships only with an extension update whose store listing describes it.
Contact
Exochard, [email protected]