A browser extension that combines automatic cookie banner removal with powerful cookie management. Stop the pop-ups. Keep the logins. Clear the rest.
- Auto-remove cookie banners - Automatically hides GDPR/cookie consent banners and clicks "Accept Necessary"
- Cookie editor - View, edit, create, and delete cookies from a popup interface
- Auto-delete cookies on tab close - Automatically removes cookies when you close a tab (configurable)
- Approved cookie suppliers - Whitelist domains that should keep cookies (supports wildcards like
*.github.com) - Prefix wildcard support - Pattern matching supports
192.168.1.*for local ranges and similar host prefixes - Whitelist support - Disable auto-removal for specific domains
- Export/Import - Export cookies as JSON, import cookie data
- Manifest V3 - Modern extension architecture
- Popup favicon - Custom favicon shown on popup and approved suppliers pages
- Open
chrome://extensions/(oredge://extensions/) - Enable "Developer mode" (top right)
- Click "Load unpacked"
- Select the
NoBadCookiesfolder (the repository root containingmanifest.json)
- Open
about:debugging - Click "This Firefox"
- Click "Load Temporary Add-on"
- Select
manifest.json
- The extension automatically hides cookie banners and accepts necessary cookies
- Click the ⛔ button in the popup to whitelist a site (disable auto-removal)
- Click the extension icon to open the cookie manager
- Search: Filter cookies by name or value
- Edit/Create: Edit existing cookies with prefilled form, then save or cancel
- Export: Download all cookies as JSON
- Import: Load cookies from a JSON file
- Refresh: Reload the cookie list
- Action status: Inline success/error feedback is shown for save/delete actions
- Removal telemetry: Removed tab shows total removals, failed removals, and retry recoveries
- Click "Manage Approved Suppliers" in the popup
- Add domains where cookies should not be deleted when the tab closes
- Supports wildcards:
*.github.commatchesdocs.github.comandapi.github.com - Default approved suppliers:
*.github.com*.gmail.com*.chatgpt.com*.mksmad.org*.riverlan.com*.luisriverag.com*.amazon.es*.printables.com192.168.1.**.aliexpress.com*.archive.today*.archive.ph*.archive.is
- When a page loads, the extension injects CSS to hide known cookie banners
- JavaScript finds and clicks "Accept Necessary" buttons from popular consent platforms
- Site-specific rules handle complex scenarios (Google, Facebook, etc.)
- When you close a tab, the extension checks if the domain is an "approved supplier"
- If not approved, all cookies for that domain are deleted
- If approved, cookies persist (useful for sites you want to stay logged in)
- Removal telemetry tracks both success and failed deletion attempts for diagnostics
See SPEC.md for comprehensive technical documentation.
- Background Service Worker: Manages tab events, cookie operations, and banner removal
- Content Scripts: CSS and JS injected into pages to handle cookie banners
- Popup UI: Plain JavaScript interface for cookie management
- Popup assets: Includes
interface/popup/favicon.pngfor browser-tab branding - Storage: Uses
chrome.storage.localfor settings and whitelists
# Clone the repository
git clone https://github.com/luisriverag/NoBadCookies.git
cd NoBadCookies
# Make changes
# Reload extension in browser to testnpm install
npm testThe current test suite focuses primarily on behavior and message flows. Jest coverage reporting is configured, but some extension scripts are dynamically loaded/mocked in tests, so the coverage table can appear lower than expected even when core behavior is tested.
This extension combines the best of both worlds:
- I-Still-Dont-Care-About-Cookies - Cookie banner removal
- Cookie-Editor - Cookie management UI
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE file for details
Report bugs or request features on the GitHub Issues page.