Privacy & Transparency
Swatcat privacy policy
Overview & Core Guarantee
Swatcat is a free, open-source browser extension designed to help you keep your social media and screen time in check. It is engineered from the ground up under a strict local-first, privacy-by-design architecture: your personal information and browsing data never leave your device.
Swatcat contains zero network requests, zero remote scripts, zero telemetry, and zero advertisements. All logic executes locally in your browser.
What Swatcat stores on your device
Swatcat saves only the following operational data inside your browser's local extension storage (chrome.storage.local):
- Your settings: Your chosen cat coat and custom name, the list of sites you chose to limit, your daily time limit, active schedule, reset hour, and preferences for the opening pause and sounds.
- Today's active time: The current calendar date and how many milliseconds you have actively spent focused on your chosen sites.
- Short history (last 7 days): Daily totals for approximately the past week, used strictly to render the trend chart inside the extension popup.
- Rewards & status: Your streak of good days under budget, whether today is a happy day (triggering purrs & hearts), and whether you have redeemed today's 5-minute extension.
What Swatcat does NOT record: Swatcat does not record URLs you browse, search queries, keystrokes, form inputs, or page content. To determine if a tab should be counted, it compares the tab's hostname in-memory against your custom list at that instant without persisting it.
Blocking & Redirection Behavior
When your daily limit is reached, Swatcat swats the active tab closed and redirects subsequent attempts to open your limited sites to a local extension page (blocked.html).
The address you were trying to access is passed to the local page after the # hash fragment (e.g. blocked.html#https://...) solely so the page can display the site's name and offer an exit button. That fragment is evaluated entirely in-browser, is never logged, and is never transmitted over any network.
Data Sharing & Third Parties
Nothing is shared.
Swatcat makes no network calls whatsoever. There are no analytics trackers, no crash reporting services, no external fonts or CDN dependencies, no user accounts, and no backend servers.
Your data is never collected, sold, rented, monetized, or transferred to anyone, including the extension creator.
Chrome Permissions Explained
Chrome Web Store requires explicit declarations for extension capabilities. Here is why each permission is required:
- storage
- Saves your chosen cat preferences, daily time limit, site list, streak, and recent 7-day stats locally on your computer.
- alarms
- Saves active time once per minute and performs the automatic daily reset at your chosen hour when the background worker wakes up.
- tabs
- Reads the hostname of the active tab in the focused window to determine if time should count, and closes the tab when your time limit expires. Tab URLs are never stored.
- declarativeNetRequest
- Directs Chrome's native network engine to block and redirect restricted sites once your daily limit is hit, without requiring the extension to inspect or intercept your web traffic.
- Host Permissions (*://*/*)
- Allows the content script to display the animated cat in an isolated, closed Shadow DOM on pages you visit, and enables declarative blocking rules across sites you add to your custom limit list. Never used to read page text or data.
Your Control & Data Deletion
- You can inspect, adjust, or reset your site list, limits, and settings at any time in the Settings page.
- Uninstalling Swatcat automatically and permanently purges all stored preferences and time history from your device.
- Swatcat is free and open-source under the MIT License — anyone can audit the source code to verify these privacy commitments.
Contact
Questions or feedback about this privacy policy? Feel free to open an issue or reach out directly.
Swatcat Privacy Policy · Published at m-wajeeh.dev/extensions/swatcat/privacy-policy back to the notebook →