We do not own, operate, or maintain any telemetry servers, analytics collectors, or cloud databases. CodeSavvy never sends your data to us.
All DOM manipulation, CSS inspection, QR code generation, media extraction, and storage wiping occur entirely inside your browser sandbox.
When you use AI features, requests travel directly from your browser's service worker to Google's official Gemini endpoint with zero intermediaries.
CodeSavvy operates under the principle of extreme data minimization. The only data processed is that which is strictly required for the tools you explicitly run:
A. Local Preferences & Gemini API Key (chrome.storage.local):
Your chosen color theme, dark/light mode preference, custom AI presets, transformation history, and personal Google Gemini API Key are stored locally inside Chromium's isolated storage sandbox. This data is never synchronized to developer servers or accessible to websites you visit.
B. Selected Text for Context Menu AI Actions:
When you select text on a page, right-click, and choose an AI preset (e.g. Improve Text, Roasted Mode, or custom prompt), CodeSavvy reads only the selected text. The string is transmitted directly from your extension's background service worker to Google's Gemini API endpoints (https://generativelanguage.googleapis.com/). It is never routed through any third-party proxy.
C. Webpage Content for AI Page Studio:
When you invoke AI Page Studio from the popup, the extension extracts the visible article/main text of the active tab (stripping navigation, ads, footers, and scripts). The text is sent directly to Google Gemini using your API key to generate executive summaries, key takeaways, tech stack breakdowns, or answers to your questions.
D. Transformation History & User Retention Controls:
If history logging is enabled, CodeSavvy logs transformation snippets locally so you can review before/after diffs. You have complete control:
In compliance with Google's Single Purpose Policy and the Principle of Least Privilege, CodeSavvy declares only the permissions necessary to deliver its features:
| Permission | Technical Purpose & Justification |
|---|---|
| activeTab | Grants temporary, user-initiated access to the active webpage when you invoke an extension action or keyboard shortcut. Required to unlock elements, inspect CSS, zap banners, toggle design mode, and inject fonts without broad persistent host permissions. |
| scripting | Permits executing utility scripts into the active tab upon user command (e.g. removing disabled/readonly attributes, stripping maxlength, and attaching the CSS Inspector HUD). |
| storage | Used to persist user interface preferences, custom AI prompt presets, API keys, and transformation logs strictly within chrome.storage.local on the user's device. |
| browsingData | Required solely for the "Clear Cache & Hard Reload" feature (Ctrl+Shift+R), invoking chrome.browsingData.remove({ since: 0 }, { cache: true }) on explicit user demand. |
| contextMenus | Registers right-click menu items for AI text enhancements (e.g., Improve Text, Advanced Edit, Roast) and offline case transformations (UPPERCASE, camelCase, snake_case). |
| notifications | Displays brief, non-intrusive desktop status alerts (e.g., confirming browser cache clear or notifying if an API key is missing). |
| downloads | Allows saving captured webpage screenshots, generated offline QR code PNGs, and JSON backup exports directly to your computer's downloads folder. |
tabs permission or <all_urls> background host permissions. CodeSavvy has zero access to your browsing history, background tabs, or overall web usage.
CodeSavvy adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements:
CodeSavvy is built to modern Manifest V3 standards:
If you have questions, feedback, or concerns regarding this Privacy Policy or CodeSavvy's privacy architecture, please contact the developer: