Privacy
Privacy
Hover Translate sends only the text you hover to DeepL’s servers. It does not collect analytics, does not track you, and does not send data anywhere else. No billing concerns: the Free plan stays free, and usage resets monthly.
What gets sent to DeepL
When you hover a supported text block, the extension prepares a normalized text payload and sends it to DeepL for translation.
- The payload is the hovered block’s text, derived from
innerTextand normalized for whitespace. - Requests are sent over HTTPS to
https://api-free.deepl.com/v2/translate. - Translation direction is set explicitly, for example
source_lang=JAandtarget_lang=EN-US. - DeepL’s own privacy policy is available at deepl.com/privacy.
DeepL states its own handling rules for API data. Review DeepL’s official documentation and policy pages for the current wording that applies to your account and plan.
Where your API key is stored
Your DeepL API key is stored locally in Chrome’s extension storage.
- The key is saved in
chrome.storage.local. - It is stored in plaintext, which is a standard Chrome extension pattern but not encrypted storage.
- Anyone who can access the same Chrome profile may be able to access the saved key.
- If that is a concern, use a dedicated Chrome profile for Hover Translate.
What data stays local
Several pieces of state never leave your browser except when translation or usage checks are requested.
- Extension settings such as
enabled,maxChars, andtargetEnglish - The saved API key in
chrome.storage.local - The LRU translation cache, held only in service worker memory and cleared when the worker restarts
- Quota information fetched for the popup session, which is displayed in the UI and not stored permanently
No telemetry
Hover Translate does not send:
- analytics events
- crash reports
- usage statistics
- tracking identifiers
The only external network requests are requests to the DeepL API.
Permissions rationale
The extension asks for a small set of permissions, each for a specific reason.
storage: save settings and the API key locallyactiveTab: identify the active tab when showing shortcut-triggered toast feedbackhost_permissions: <all_urls>: allow hover translation on normal pages across the webhost_permissions: https://api-free.deepl.com/*: allow requests to the DeepL API
<all_urls> is required because the extension needs to run on whichever page you choose to read.
Open source
The source code is public at github.com/s-hiraoku/hover-translate.
Because the project is open source, anyone can inspect how data is stored, how requests are made, and which permissions are declared.