TextDuet has no extension subscription fee. Your model Provider may charge for API usage, and its billing, rate limits, retention, and terms are outside TextDuet's control.
TextDuet has no project-operated translation server. Eligible page text is sent directly to the Provider you select when you start a translation. API keys are not sent to webpages or Translator Script. Read the Privacy Policy for details.
Session mode keeps an API key only for the current Chrome session and clears it after a browser restart. The local Vault encrypts local-mode keys and persistent translation-cache records at rest with a password you enter. The password is never stored; a restart locks the Vault until you unlock it again.
Persistent cache is part of the local Vault. It is unavailable while the Vault is locked, after a restart until unlocked, or if you clear/delete it. A current page can still reuse translations held only in memory for that page session.
TextDuet requests the specific HTTPS Origin of the API endpoint you configure so it can call that Provider. It does not receive permanent access to all websites. See Chrome permissions.
No. Chrome and websites may restrict extension injection. TextDuet does not bypass access controls and intentionally excludes forms, buttons, code, hidden content, and other interactive areas. See compatibility guidance.
Unpack it first, then load the directory containing manifest.json with Developer mode enabled at chrome://extensions. Chrome cannot load the ZIP itself. GitHub-loaded builds update manually. See installation instructions.
Use GitHub Discussions for help and ideas, and issue forms for reproducible bugs or public-site compatibility reports. Never post secrets or sensitive pages. Security reports belong in private channels.