ChaiJu Privacy Policy
v1.0.0
ChaiJu Privacy Policy
Effective date: 2026-10-18 | Last updated: 2026-10-25 | Applies to all versions of the "ChaiJu — English Sentence Breakdown & Long-Sentence Parser" browser extension (the "Extension"). One package, one policy: the same text is submitted to both Chrome Web Store and Microsoft Edge Add-ons.
The short version
We do not sell any user data, and there is no analytics or telemetry code in the Extension. We only handle the minimum content needed to perform the requested feature, and every item is described below. Word lookup, the vocabulary notebook, review, favourites, text-to-speech and practice scoring/statistics all run locally on your device by default — they work without a network connection. Only two kinds of data ever leave your device, and both are triggered by you: syntax parsing, component explanations and in-depth word explanations, and the practice page's "AI blank picking" and "AI sentence generation". In those cases the sentence (or the Chinese material you typed) is sent to a model through a gateway operated by the developer. You never need to enter an API key. The currently published version contains no advertising; if ads are later introduced on extension-owned pages such as the practice page, one additional request to an ad provider will be disclosed, with the boundaries described under "Advertising and monetisation".
Who we are
The Extension is developed and operated by PowerSoftware (an individual developer, "we", "us"). Licensing, orders and the quota ledger are provided by the PowerSoftware platform.
Data controller: the operator of the Extension (PowerSoftware). Contact email: [email protected] (a postal address is available on request via that email).
This policy is interpreted under the laws of the mainland People's Republic of China. It does not exclude mandatory rights granted to you by the law of your own jurisdiction (for example the EU GDPR or the UK GDPR); where the two differ, the provision more favourable to you prevails.
Legal bases: parsing, explanations and AI generation run on requests you initiate (necessary to provide the service); licence validation and quota accounting are based on your licence agreement with the platform; security protection and policy-change notices are based on legitimate interests; where the law requires otherwise, other processing is based on your consent.
Where your data goes
The Extension has only two data flows.
1. Locally on your device (the default — almost every feature stops here)
- Parse cache (the original sentence and its analysis) is stored in IndexedDB to avoid repeated requests. You can check usage, clear it or export it on the settings page.
- Double-click word lookup uses offline dictionary shards bundled with the package; lookups are performed entirely on your device and produce no network request (the fallback path also reads packaged resources from the background). The word you double-clicked and the result are not recorded, uploaded or cached.
- Vocabulary notebook: only when you click "+ Vocabulary" in the floating bar is that entry (lemma, phonetic transcription, definition, exam tag) written to local IndexedDB, with no network request. You can review the list or remove entries on the settings page. Double-clicking without saving still leaves zero traces. Sentence favourites, review grades, study statistics and practice/uploaded sentences are handled the same way — all local.
- Subscription credentials (licence code, machine code, activation token) are stored in local
chrome.storage. That storage is markedTRUSTED_CONTEXTS, so content scripts running in web pages cannot read it; only the Extension's own background service worker and settings page can. UI pages read only the projection produced by the background, and credentials never enter the UI code bundle.
- Text-to-speech uses the browser's built-in
speechSynthesis; audio never passes through our servers. However, voices are supplied by the browser and operating system: if the selected voice is an online voice (labelled Online or cloud-synthesised), the browser sends the text to be spoken to that voice's online service for synthesis. For fully offline operation, select a local voice in the settings.
None of this data leaves your device unless you use the export feature yourself.
2. The developer-operated gateway (during parsing and AI generation)
Syntax parsing, component explanations, in-depth word explanations and the practice page's AI features all run through the Extension's built-in managed model pipeline. They never use an endpoint that you configured:
- What is sent: the English sentence to be parsed plus its tokenisation → the gateway
ps-ai-gateway.powersoftware.app(a Worker operated by the developer, which forwards to the upstream model DeepSeek through AI Gateway). When you use "re-parse with correction", the feedback text you typed is sent as well; in-depth word explanations also send the lemma of the double-clicked word. The practice page's "AI blank picking" sends the sentence text (candidate words are computed locally and are never uploaded); "AI sentence generation" sends the Chinese material you typed in the prompt box. - No content logging: the gateway forwards requests verbatim. Logs contain only numbers and identifiers (the first 8 characters of the licence code, token usage). Prompts and model output are never logged and are not used for training, profiling or analytics. If a response cache is hit, the cache is retained by the platform for its configured short-term period.
- Preloading component explanations (off by default): if you tick "Preload component explanations" on the settings page, then after each paragraph is parsed the Extension sends one explanation request per freshly parsed sentence and caches the result (no need to click each sentence, but the usage is still billed; a sentence already in the cache is not requested again). This switch is off by default, can be turned off at any time, and takes effect the next time you click "Start learning".
- The model key (DeepSeek key) lives only on the gateway side — it never enters the package, the Extension code or your machine. You do not need to supply one and cannot access any API key.
- Licence validation and device identity: to confirm trial/subscription quota, we send the licence code, the machine code (a random per-install UUID, not a hardware fingerprint, used only to bind an installation) and the activation token to the powersoftware.app licensing API, together with two probe headers carrying the client name and version (
x-ps-client/x-ps-client-version) used only to identify the request source. These are sent only on activation, trial claim and status checks. Trial claims and managed parsing requests also carry a device identifier (x-device-idheader): a random-ID cookie (ps_did) that the Extension writes under its own gateway domain in your browser — randomly generated, not a hardware fingerprint, unrelated to your identity — used solely to recognise "the same browser" and prevent repeated trial claims after reinstalling. Clearing browser cookies, using a private window or switching browsers resets it; it does not track your browsing behaviour and never sends any website cookies. - Quota history: when the subscription card shows "recent usage", it queries your own quota ledger from the platform (timestamps, types and usage figures only — no model content whatsoever).
- Payment details never pass through the Extension: purchases, renewals and invoices are completed on the PowerSoftware website. The Extension code never touches card numbers, payment accounts or billing addresses.
Handling by the gateway and its upstream model (DeepSeek) is governed by their respective terms of service. If you want sentences to never leave your device, stop using syntax parsing and AI generation; local features (word lookup, vocabulary notebook, review, favourites, text-to-speech, practice scoring and statistics) do not use the network at all (if ads are later introduced on extension-owned pages, the ad component will open one additional request to an ad provider, as described under "Advertising and monetisation").
3. Failure feedback (only when you explicitly click, never sent automatically)
When you click "Feedback" on a card whose parse failed, the text of that sentence, the domain + path of the page it came from (without query parameters), the failure code, the number of model requests for that sentence and the model name you use are sent to the same developer-operated gateway (which forwards one entry to an internal operations alert channel), solely to diagnose parsing failures. Automatic alerting is off by default (errors are not reported automatically); only the automatic path is disabled — a manual "Feedback" click is still sent. Feedback contains no account, machine code, page body or other page content.
Normal parsing never sends: page URLs, cookies of other sites in your browser, form contents, browsing history, your identity information, or any other content on the page that was not parsed. (The only exception is section 3 above — the text of the one sentence and the page domain + path when you explicitly click "Feedback".)
Permission purposes (browser extension)
| Permission | Purpose |
|---|---|
activeTab |
Temporarily access the current tab to read the paragraph to be parsed — only when you click the extension icon, use the context menu or press the shortcut |
scripting |
Inject analysis cards into the current page, and dynamically register the content script on http/https pages (double-click word lookup needs it resident) |
storage |
Store the parse cache, preferences and subscription credentials locally |
cookies |
Read and write one device-identifier cookie (ps_did, a random ID) under our own gateway domain, used to prevent repeated trial claims after reinstalling; no other site's cookies are read or modified |
contextMenus |
Provide the "Parse selected text" and "Parse this area" context menu items |
commands |
Register the Alt+X shortcut to parse the paragraph under the mouse pointer |
| Required host permissions | Only three developer-owned domains: www.powersoftware.app / www.powersoftware.cn (licensing API) and ps-ai-gateway.powersoftware.app (managed model gateway). No third-party website is included |
| Optional host permissions | Declares https://*/* and http://*/*, used only for page word lookup: after the user grants "on all sites", the double-click lookup script is injected into web pages (both http and https). Nothing is granted at install time, no all-sites warning is shown, and it has nothing to do with model requests |
Bundled dictionary resources (web_accessible_resources) |
Expose the offline dictionary shards (dict/*.json.gz) as readable to ordinary web pages so the lookup script can load the local dictionary on any page. This exposes only static files bundled with the Extension, contains no user data, and does not mean we read page content |
The resident lookup script does read page text, but does exactly one thing with it: it highlights words already in your vocabulary notebook with a dashed underline (a visual annotation that changes neither page structure nor text). It also responds to interactions such as double-click, Esc and scrolling. Text it reads is never transmitted or stored. Turning off the "Page word lookup" switch unregisters the script. Lookups themselves are performed locally with the built-in offline dictionary.
Advertising and monetisation
The currently published version contains no advertising at all: no third-party ad scripts or ad SDKs are loaded, and the practice page, review page and other extension pages have no ad slots.
We reserve the possibility of showing ads on extension-owned pages (for example the practice page) in the future to sustain the product. If that happens, we will follow these constraints:
- Ads appear only in areas clearly separated from learning content, never covering controls, disguised as buttons or options, or inducing accidental clicks.
- We do not provide your practice content, vocabulary, favourites, parsed sentences, page addresses or page content to advertisers.
- Ads appear only when you open an extension-owned page; they are never injected into websites you visit, and the content script does not read page content for ad targeting.
- Ad rendering code ships inside the installation package; we do not use ad SDKs that need to load JavaScript remotely (Chrome Web Store and Microsoft Edge Add-ons both prohibit remote code).
- Once ads are introduced, extension pages will make one additional request to an ad provider, and we will disclose the provider name and the data types involved. If ads involve any user data (including targeting based on in-extension usage), this policy and the data-usage declarations on both stores (Chrome Web Store / Microsoft Edge Add-ons) will be updated before launch, and your consent obtained first where the law requires it.
- The release notes will state the launch date and the ad source.
Whether or not ads are introduced, we will never sell user data to data brokers or ad platforms, and will never use your parsed sentences, practice content, vocabulary or browsing history for ad targeting.
Who processes your data
| Party | Role | Data involved |
|---|---|---|
| PowerSoftware platform (powersoftware.app / .cn) | Licence validation, orders, quota ledger, payments | Licence code, machine code, activation token, device identifier; orders and payment details are submitted on the platform website, the Extension never touches card numbers |
| Cloudflare (hosting platform for the gateway) | Edge forwarding and rate limiting | Request bodies are forwarded in memory; logs contain only numbers and identifiers, no prompts or model output; cache entries are retained for the configured short-term period |
| DeepSeek (upstream model service) | Generates analysis and explanations | The sentence text or Chinese material you send, handled under its own terms of service |
Apart from the parties above, we do not provide your data to any third party. Each party processes data under its own privacy policy; we transmit only the minimum content required to perform the feature and do not reuse it for other purposes.
Security measures
- Subscription credentials, all keys and custom request headers never enter logs or rendered output. If credentials accidentally appear in a model response, they are replaced with
[redacted]before the content is returned to the page. - Model output is rendered as plain text, never parsed as HTML, so scripts in malicious responses cannot execute.
- The Extension loads and executes no remote code; all logic ships inside the package.
- Permissions are requested on a least-privilege basis: only those genuinely needed for parsing, word lookup and licensing, with no
tabs,webRequestor other extras.
Children's privacy
The Extension is intended for English learners aged 13 and over (school and university entrance exams, CET-4/6, postgraduate entrance exams and adult self-study). It is not directed at children under 13, and we do not knowingly collect their information. Store categories and promotional copy do not target children. If you are in mainland China and under 14, please use the Extension with a guardian, who should read and accept this policy before granting authorisation.
Policy changes
If this policy changes, we will update the "Last updated" date at the top of this page and the same policy shown inside the Extension. For material changes — new data uses (for example advertising), sharing recipients or retention periods — we will first notify you inside the Extension and describe them in the release notes, and obtain your consent again where the law requires it, rather than treating continued use as acceptance. The publicly available version on this page prevails.
Contact
Data-subject requests (access / rectification / erasure / withdrawal of consent) and product support: [email protected] (the same address is always shown at the bottom of the Extension's settings page). You can also use the "Feedback" button on failure cards inside the Extension, including the extension version and reproduction steps. For security issues, please contact the developer directly and do not disclose them publicly.
Compliance with the Chrome Web Store and Microsoft Edge Add-ons user data policies
The data practices described above comply with the Chrome Web Store User Data Policy (Limited Use): data is used only to provide the Extension's single purpose (English sentence parsing and study assistance); it is not sold or transferred to third parties (other than the processors listed above as required to provide the feature); it is not used for advertising purposes or targeting; and it is not used to determine creditworthiness, for lending, or for any purpose unrelated to the single purpose.
Microsoft Edge Add-ons requirements are identical on these points, and the data-usage declarations filed in both store consoles match this policy item by item: we declare only "Website content" (sentences sent for parsing and AI-generation material) and "Authentication information" (licence code, machine code, activation token, device identifier); every other category is declared as "not collected".