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
Four 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. The debug-logging toggle is only available in developer mode and is not visible in the normal extension interface.battle_logs— a compact, compressed copy of the battle protocol for every battle in your history, so the History page can show a readable turn-by-turn log («Turn 18 — The opposing Zamazenta used Reflect!»). Your own team's private data (|request|: moves, EVs, items) and all chat lines are dropped before anything is stored. Capped at 20 MB in total, oldest battles' logs are removed first; deleting a battle deletes its log. Stored locally only, never sent anywhere.
2. chrome.storage.local — settings and flags
Eleven keys, all small, none of them personal data:
ui_locale— the interface language you picked;ui_theme— light / dark theme choice;ui_popup_tab— which tab of the popup was open last;debugLogging— the debug logging switch (default: off);dev— developer mode flag; only when it is set by hand from the extension console does the debug-logging panel appear on the History page (default: absent);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;storage_write_failed— a flag raised when the last battle could not be saved for any reason (timestamp, error text, room id), so the popup and the History page can show a warning; cleared by the next successful save;session_reset_at— the timestamp of the last «Reset» on the popup's Overview tab; nothing is deleted, battles before it are just left out of the session counters;session_reset_all_at— the same kind of marker for the «All time» period; the two markers are independent, so resetting one does not touch the other;history_team_view— which side's team the History page shows in collapsed rows (yours or the opponent's);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 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. It draws nothing on the 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