Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

38 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐨 KoalaCookies

Automatically reject cookie consent banners. Privacy-first, open source.

Version Firefox Chrome MIT License Open Source

KoalaCookies detects cookie consent banners on any website and clicks the "Reject All" button for you β€” instantly, silently, and privately. No data ever leaves your browser.


Features

Category Capabilities
🚫 Automatic Rejection Detects banners and clicks "Reject All" / "Decline" / "Nur notwendige" β€” with retry and adaptive timing
πŸ” Smart Detection Recognizes 12+ providers (OneTrust, Cookiebot, Usercentrics, etc.) with keyword fallback, Shadow DOM, and iframe support
🌐 10 Languages Button keywords in English, German, French, Spanish, Italian, Dutch, Polish, Swedish, Norwegian
πŸ›‘οΈ Two Modes Gentle β€” leaves banner visible if no reject button found; Aggressive β€” hides the banner entirely
⏱️ Multi-level Disable Disable permanently, for 30 minutes, 1 hour, or 24 hours β€” with re-enable button showing remaining time
πŸ”” Toolbar Badge Colored icon badge: green βœ“ = rejected, orange ! = skipped, blue βœ• = hidden, gray β€” = disabled
πŸ’¬ Page Indicator Small colored dot in the bottom-right corner after each action β€” disappears after 3 seconds
🎯 Element Picker Hover-highlight DOM elements and capture them as custom selectors for banner detection
🧩 Custom Selectors User-captured selectors take priority in the detection pipeline before built-in providers
πŸ“Š Statistics Tracks detected, rejected, skipped, and hidden banners per domain and globally
πŸ“ Action Log Last 10 actions with timestamp, domain, method, and button text β€” copyable as formatted text
🐞 Dev Tools Per-page debug info + scrollable list of all known providers with CSS selectors + Report Issue button
πŸŒ™ Dark Mode Respects your system preference automatically
🌍 i18n English and German translations for full UI including Dev tab
πŸ”’ Privacy-First 100% local β€” no external connections, no tracking, no analytics, no remote rule fetching
πŸ“¦ Zero Dependencies Pure vanilla JavaScript, no npm packages, no CDNs, no frameworks

Installation

⚠️ KoalaCookies is currently in development. Load it temporarily or download from releases.

Firefox

  1. Download the latest koala_cookies_firefox_v*.zip from the releases page
  2. Open about:debugging β†’ This Firefox β†’ Load Temporary Add-on
  3. Select the zip file

Chrome / Chromium

  1. Download the latest koala_cookies_chrome_v*.zip from the releases page
  2. Extract the zip to a folder
  3. Open chrome://extensions β†’ Enable Developer mode β†’ Load unpacked
  4. Select the extracted folder

How It Works

User visits a website
        β”‚
        β–Ό
Content script injects in all frames ──► scans DOM
        β”‚                          β”‚
        β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚              β–Ό                       β–Ό
        β”‚       Provider match?        Keyword match?
        β”‚       (rules.json)           (rules.json)
        β”‚              β”‚                       β”‚
        β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                          β–Ό
        β”‚                  Banner detected
        β”‚                          β”‚
        β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚              β–Ό                       β–Ό
        β”‚       Reject button found?   Settings menu found?
        β”‚       (clicker.js)           (clicker.js)
        β”‚              β”‚                       β”‚
        β”‚              β”œβ”€β”€β”€ Retry (500ms)       β”‚
        β”‚              β”‚                       β”‚
        β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                          β–Ό
        β”‚                   Action performed
        β”‚              (rejected / hidden / skipped)
        β”‚                          β”‚
        β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚              β–Ό                       β–Ό
        β”‚      Toolbar badge updated    Page indicator shown
        β”‚              β”‚                       β”‚
        β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                          β–Ό
        β”‚              Message sent to background
        β”‚                          β”‚
        β”‚                          β–Ό
        β”‚              Stats + log written to
        β”‚              chrome.storage.local
        β”‚                          β”‚
        β–Ό                          β–Ό
  User sees result in popup (Stats / Log / Dev tabs)

Privacy

KoalaCookies processes everything locally in your browser. It makes zero network requests of its own, collects no telemetry, sets no cookies, and sends no data anywhere.

All data (statistics, action log, settings, whitelist) is stored exclusively in chrome.storage.local β€” the browser's sandboxed local storage that never syncs to any server.

πŸ“„ Read the full privacy policy

Development

Prerequisites

  • A modern browser (Firefox 109+ or Chromium-based)
  • Node.js 18+ (for build scripts)
  • Git

Project Structure

KoalaCookies/
β”œβ”€β”€ docs/                  # Documentation (architecture, privacy, roadmap)
β”‚   β”œβ”€β”€ ai_init.md         # Implementation plan & vision
β”‚   β”œβ”€β”€ architecture.md    # Technical architecture
β”‚   └── privacy.md         # Privacy policy
β”œβ”€β”€ extension/             # Extension source code
β”‚   β”œβ”€β”€ manifest.json      # Extension manifest (MV3)
β”‚   β”œβ”€β”€ rules/             # Rule database (providers + keywords)
β”‚   β”œβ”€β”€ src/               # JavaScript modules
β”‚   β”‚   β”œβ”€β”€ background.js  # Service worker (message router, stats, tab state, badge, picker injection)
β”‚   β”‚   β”œβ”€β”€ content.js     # Content script (DOM scan, click orchestration, retry, page indicator, SPA/iframe support)
β”‚   β”‚   β”œβ”€β”€ storage.js     # chrome.storage.local abstraction + stats lock + expired disable cleanup
β”‚   β”‚   β”œβ”€β”€ rulesEngine.js # Rules loader (fetches rules/rules.json from rules/ dir, provides provider/keyword data)
β”‚   β”‚   β”œβ”€β”€ selectors.js   # Banner detection (custom β†’ providers β†’ keywords β†’ Shadow DOM + urlPattern filtering)
β”‚   β”‚   β”œβ”€β”€ clicker.js     # Button finding + click strategies (text scoring, settings panel, adaptive wait, hide)
β”‚   β”‚   └── picker.js      # Element picker (hover highlighter + DOM element capture)
β”‚   β”œβ”€β”€ popup/             # Popup UI (Stats, Log, Dev tabs)
β”‚   β”‚   β”œβ”€β”€ popup.html
β”‚   β”‚   β”œβ”€β”€ popup.js
β”‚   β”‚   └── popup.css
β”‚   β”œβ”€β”€ styles/            # Global CSS variables + dark mode
β”‚   β”œβ”€β”€ _locales/          # Translations (en, de)
β”‚   └── icons/             # Extension icons
β”œβ”€β”€ scripts/               # Build & utility scripts
β”‚   β”œβ”€β”€ build.sh           # Build Firefox + Chrome ZIPs
β”‚   β”œβ”€β”€ generate-icons.sh  # Generate icons via Python
β”‚   └── generate_icons.py  # Python script: creates PNG icons from code
β”œβ”€β”€ .github/workflows/     # CI/CD pipelines
β”‚   └── release.yml        # Auto-builds and publishes on tag push
└── README.md

Building

# Build both Firefox and Chrome packages
bash scripts/build.sh

# Output is in releases/

The build script:

  1. Reads the version from extension/manifest.json (or $1 argument)
  2. Creates a Firefox-compatible ZIP with browser_specific_settings.gecko (configurable via $FIREFOX_EXTENSION_ID)
  3. Creates a Chrome-compatible ZIP (strips Firefox-specific keys)
  4. Injects the version number into popup.html

Loading from Source

  • Firefox: about:debugging β†’ This Firefox β†’ Load Temporary Add-on β†’ Select extension/manifest.json
  • Chrome: chrome://extensions β†’ Developer Mode β†’ Load unpacked β†’ Select extension/ folder

Scripts Reference

Script Purpose
scripts/build.sh Builds Firefox + Chrome ZIP packages
scripts/generate-icons.sh Regenerates extension icons from Python
scripts/generate_icons.py Generates PNG icons programmatically (no external tools)

Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/amazing-feature)
  3. Make your changes (keep it vanilla JS, no external deps)
  4. Test locally in Firefox and Chrome
  5. Open a Pull Request

See docs/ai_init.md for the full implementation roadmap and coding conventions.

Links

License

MIT License β€” see LICENSE for details.

Copyright (c) 2026 KoalaCookies Contributors

About

Auto decline all cookies.

Resources

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages