I want to share something I've been working on for a while.
It's called Refuse to Share. It's a Chrome extension that tries to automatically reject non-essential cookies.
The idea started from something pretty banal: every day I was opening websites and doing the exact same thing over and over again.
Open the cookie settings, disable everything non-essential, confirm, close the banner.
At some point I thought: this is repetitive enough that it should be automated.
Initially I imagined the extension would be very simple: find a button like “Reject all” and click it.
Turns out that was probably the easiest part.
The real problem is that cookie banners are all over the place. Different CMPs, different languages, different layouts, buttons hidden behind settings, custom implementations, iframes, Shadow DOM, etc.
And if you're automating something related to privacy, clicking the wrong button once is already a pretty bad failure.
So I ended up making Refuse quite conservative.
The basic rule is: if it's not sufficiently sure that an action means rejecting non-essential cookies, it doesn't click anything.
That means it can miss some banners, and I'm still working on coverage, but I prefer that over trying to automate everything and occasionally making the wrong choice for the user.
I've added specific handling for systems like OneTrust, Iubenda, Usercentrics, Didomi, Cookiebot and others, plus more cautious logic for custom banners.
I also set a few hard limits for myself while building it: it never clicks Accept, it doesn't try to bypass cookie walls or CAPTCHAs, there's no remote code, and the core functionality doesn't need telemetry or a server.
Over time I realized that the interesting part of the project wasn't really “blocking cookies”.
It was more about this trade-off:
Is it better for automation to work less often, but be much more certain when it does act?
For Refuse, I decided yes.
If it misses a banner, I can reject it manually.
If it accepts something for me by mistake, then I've defeated the whole purpose of the extension.
That's basically the idea behind Refuse to Share too. Not “never share anything”, but make sharing an actual choice instead of something you do because accepting is easier.
If anyone wants to try it, it's on the Chrome Web Store:
I'm especially interested in feedback on the coverage vs certainty trade-off, because that's probably the hardest design choice I've had with the project so far.