OptMeowt ("Opt Me Out") is a browser extension for sending Do Not Sell signals to websites per the Global Privacy Control draft spec.
OptMewot sends Do Not Sell signals to all domains a user visits when browsing the web. Such signals must be respected for California consumers per the California Consumer Privacy Act (CCPA), Regs Section 999.315(d). However, many companies respect such signals even when they are sent from outside of California.
OptMeowt currently sends Do Not Sell signals using five methods:
- A new HTTP Do Not Sell header we are developing in a proposed specification effort at the W3C.
- The existing DNT header, which is interpreted by some publishers as a Do Not Sell header.
- The IAB CCPA Compliance Framework for Publishers & Technology Companies, implemented in a first party cookie.
- Third party cookies of ad networks participating in the DAA's CCPA Opt Out Tool for the Web.
- Custom headers and cookies used by individual websites maintained and updated in a Do Not Sell list.
Customizing which Sites Receive Do Not Sell Signals
Every domain a user visits will be automatically added to a domain list and will receive a Do Not Sell signal by default. However, users can exclude domains that should not receive a Do Not Sell signal. This functionality is available by accessing the domain list from the extension's popup window.
OptMeowt works on any Chromium-based browser. In addition to Chrome, it should run in Brave, Edge, Opera, and Vivaldi. In the future we hope to support Firefox and Safari as well. There are two main ways you can install OptMeowt on your computer:
- You can simply add OptMeowt to your browser by donwloading the extension from the Chrome Web Store using this link.
- Click Add to Chrome to install OptMeowt.
- Clone this repo or download a zipped copy and unzip it.
- Follow these steps to install npm if you do not have it already installed here.
- Install the Grunt command line tool with this command if you haven't done this already.
npm install -g grunt-cli - Open your terminal or command line and run the following commands:
cd optmeowt-browser-extension
npm i
grunt - In Chrome, navigate to the extensions page at
chrome://extensions/. - If you have not done so yet, enable
Developer modewith the slider on the top right corner of the extension page. - Click the
Load unpackedbutton in the top left of the page. - Navigate to where you unzipped the OptMeowt folder and open up the
srcfolder. Note: You do not need to click on themanifest.jsonfile in Chrome, though other browsers may require this. - Click to finalize the install.
You did it! You have installed OptMeowt. You can use it via the icon next to the search bar.
src/: Contains the main contents of the OptMeowt browser extension.src/assets: Contains the graphical elements of the extension, including the logos and button images.src/libs: Contains all of the libraries used in the browser extension.src/options: Contains the UI elements and scripts for the supplemental options page.src/popup: Contains the UI elements and scripts for the popup inside the extensions bar.src/json: Contains the JSON configuration files for OptMeowt's Do Not Sell cookies and headers.src/json/cookies_3p.json: Contains the 3rd party opt out cookies collected from various ad networks (especially those set by the DAA's CCPA Opt Out Tool for the Web).src/json/cookies_usercustom.json: JSON file where users can place their own custom opt out cookies to be used by OptMeowt.src/json/headers.json: Contains the opt out HTTP header specs used by OptMeowt.src/background.html: OptMeowt's background page. Launches all critical extension scripts and libraries.src/background.js: This is the main script running OptMeowt. It controls all of the major backend, regarding whether the extension is on/off, sending the Do Not Sell signal, etc.src/contentScript.js: This is the main supplemental script that passes data tobackground.jsand runs on every webpage loaded.src/cookie_lists_json.js: Handles placing all of the opt out cookies stored incookies_3p.jsonandcookies_usercustom.json. This currently runs on OptMeowt's install or on an extension refresh.src/dom.js: This is a JS file that implements the functionality of setting a DOM GPC signal to an outgoing requestsrc/domainlist.js: This is the main JS file that allows the extension to communicate with thedomain liststored in the browser's local storage.src/manifest.json: This provides the browser with metadata about the extension, regarding its name, permissions, etc.src/usprivacy.js: Handles placing and updating 1st party opt out cookies (namely the IABusprivacystring) for each site intended to receive Do Not Sell signals.ui-mockup: Contains PDF and XD files demonstrating the preliminary mockup and analysis of OptMeowt.
OptMeowt uses the following third party libraries. We thank the developers.
- animate.css
- Dark Mode Switch
- FileSaver.js
- mustache.js
- popper.js
- psl (Public Suffix List)
- Switch Animation by Aaron Iker
- tippy.js
- uikit
- When contibuting, it is important to note that we manage all package dependencies with npm. Thus, it is recommended to use the
npm icommand to install packages. - In the event that you install a new dependency, you need to update Grantfile.js file with a new task of the form:
task: { expand: true, cwd: "./node_modules/..../", src: "*", dest: "./src/libs-js" }depending on whether you need the js files or the css files of the newly installed library.
If you have questions about OptMeowt's functionality, or believe you may have found a bug, please check out our FAQ \ Known quirks page on the Wiki above to see if we have already addressed the issue. If you cannot find what you are looking for, please feel free to open an issue and we will address it as soon as we can! We appreciate any input from all of our users!
Visit our site to learn more.

