The extension makes zero network requests. Nothing it reads ever leaves your browser. There is no data collection in the sense of transmission: we cannot see your battles, because they are never sent to us or to anyone else.
What the extension stores, and where
All storage is local to your browser profile. Two mechanisms are used.
1. IndexedDB — database pokestrat-tracker
Three object stores:
battles— one record per finished battle. Each record contains only what the Showdown battle protocol already showed your own browser:- room id of the battle (used to build the replay link) and battle format;
- start and end timestamps;
- the two player names as displayed in the battle, and which side was yours;
- your team and the opponent's team (species revealed in team preview);
- number of turns, winner, and the result (win / loss / tie / forfeit);
- your ladder rating before and after the battle, and the opponent's rating where the format provides one.
meta— small internal bookkeeping values for the database itself.debug_logs— off by default. Only when you switch on «Debug logging» on the History page does the extension keep raw WebSocket frames of your battles so you can export them and attach them to a bug report. The buffer is capped (20 battles, 6 MB total, 1 MB per battle). Turning the switch off stops recording. These logs are stored locally like everything else and are only ever shared if you export the file and send it somewhere yourself.
2. chrome.storage.local — settings and flags
Six keys, all small, none of them personal data:
ui_locale— the interface language you picked;ui_theme— light / dark theme choice;ui_overlay_collapsed— whether the on-page scout panel is collapsed;debugLogging— the debug logging switch (default: off);storage_quota_exceeded— a flag raised if the browser refuses a write because the profile is out of disk space, so the History page can warn you;pokestrat_diag— diagnostic counters of the WebSocket hook (whether the tap attached, frame counts), shown on the History page when the extension does not appear to be recording.
What the extension does not do
- It does not send data anywhere. There are no requests to any server, including ours. The only
fetch()calls in the code read files bundled inside the extension package itself, overchrome-extension://URLs — the usage statistics snapshot, the Pokédex table, translations, stylesheets and fonts. - It does not use analytics, tracking pixels, cookies, advertising IDs or any third-party SDK.
- It does not sell, rent, share or transfer data to third parties. There is no data to transfer.
- It does not send anything into the Pokémon Showdown connection. The WebSocket is wrapped read-only: the extension observes messages that already arrived in your browser and never writes to the socket, never automates moves and never plays for you.
- It does not read your Showdown password or session cookie, and it does not touch any site other than
play.pokemonshowdown.com. - It does not require an account, a login, or any personal information.
Permissions, and why each one exists
storage— to keep the settings listed above in your browser profile.host_permissions: https://play.pokemonshowdown.com/*— the extension only functions on the Showdown play site. It needs to run there to observe the battle protocol your client already receives, and to draw the team-preview scout panel on the battle page. No other host is requested, so the extension is inert on every other website you visit.content_scriptswith"world": "MAIN"— the tap works by wrappingwindow.WebSocketin the page's own JavaScript context. That is only possible from the main world; an isolated-world script has a separatewindowand would never see the Showdown client's socket. The main-world script does exactly one thing: it passes copies of incoming frames to the extension. It does not send frames, does not modify them, and does not read page variables, form fields or cookies. Frames are handed over withpostMessageaddressed towindow.location.origin— not to*— so the battle text is not broadcast to other scripts on the page.
Data retention and deletion
Your data stays until you remove it. You are always in control:
- Delete one battle — the delete button on that row of the History page.
- Delete all battles — the «Clear history» button on the History page (asks for confirmation first).
- Delete debug logs — a separate button on the History page. Clearing battle history deliberately does not wipe debug logs, and vice versa.
- Delete everything — remove the extension from
chrome://extensions. Chrome deletes the extension's IndexedDB database and itsstorage.localentries with it. Nothing survives elsewhere, because nothing was ever stored elsewhere.
You can also export your battle history to a JSON file at any time and import it back — the export is written by your browser to your own disk and is not uploaded anywhere.
Children's privacy
The extension collects no personal information from anyone, including children.
Changes to this policy
If the extension ever starts transmitting data, this policy will be updated before that version ships, and the change will be visible in the extension's Chrome Web Store listing and on this page.
Contact
Questions about this policy: [email protected]
Website: www.pokestrat.top