This project is licensed under PolyForm Noncommercial 1.0.0 β a source-available, noncommercial license.
- β Free for personal, hobby, study, research, nonprofit, education, and government use.
- β You may fork, modify, and redistribute the source β provided your fork remains noncommercial too.
- β You may not sell this software, or any product or service that incorporates it, in any form. No paid extensions, no paid SaaS, no paid downloads, no paid support tied to it, no bundling it into a commercial product.
- β You may not relicense it under a permissive license that would allow commercial use. The noncommercial restriction carries forward to every fork.
- π« There is no commercial license available. Do not contact the original author asking to buy one β none will be granted.
See License below and the full LICENSE file for the exact terms.
A browser extension that hides AI-generated slop from your feed with a single sensitivity slider. No accounts, no servers, no telemetry.
The first adapter ships against one large professional-networking site where AI slop has become especially loud. The engine β preset catalog, slop scorer, observer, popup, settings, session stats β is intentionally site-agnostic, so adapters for other places where AI slop has taken over (X, Reddit, Threads, Facebook, YouTube comments, anywhere a feed exists) can be dropped in without touching the rest.
πͺ¦ This project is unmaintained. The original author has moved on and is not accepting bug reports, feature requests, security reports, PRs, or other contact about this project. The repo is left up as source for noncommercial use only under the PolyForm Noncommercial 1.0.0 license β see License below. The recommended path is to fork and run it yourself.
β οΈ Unofficial / unaffiliated. OpenSlop is an independent project. It is not affiliated with, endorsed by, or sponsored by any site it runs on, or any parent or sister company. Any trademarks referenced in code or docs are the property of their respective owners and are used only to factually describe where adapters operate.
The popup is one screen β three small cards and a session donut:
- Hide AI Posts β one-click toggle that hides posts whose text mentions "AI" and authors whose title includes "AI".
- Slop Sensitivity β five-stop slider (Off β π₯) that progressively
suppresses AI-slop patterns: scam signals, lead-magnet funnels,
engagement bait, hustle culture, AI hype, founder theater, motivational
platitudes, and so on. Each stop is cumulative β see
shared/presets.jsfor the full catalog. - Hidden-item mode β segmented control choosing how matched posts are shown: Audit (keep visible with a reason strip), Minimize (collapse to a thin reason strip), or Hide (remove entirely).
Below those, the session donut + live capsule runs the whole session you're browsing β categorized counts of what was hidden vs. shown, refreshed live as the content script flags new posts.
That's it. Settings sync via chrome.storage.sync so a second browser
on the same Google/Microsoft account picks them up automatically.
There's no Chrome Web Store / AMO listing. You load it as an unpacked extension straight from this repo.
1. Get the folder. Either:
- Click the green Code button at the top of this page β Download ZIP β unzip it. Remember where you put the unzipped folder; you'll need its path in step 3.
- Or
git clone https://github.com/callmety/openslop.git
2. Open your browser's extensions page.
| Browser | URL |
|---|---|
| Chrome / Edge / Brave / Chromium | chrome://extensions |
| Firefox | about:debugging#/runtime/this-firefox |
3. Load it.
| Browser | Steps |
|---|---|
| Chrome / Edge / Brave / Chromium | Toggle Developer mode (top-right) β click Load unpacked β pick the folder from step 1. |
| Firefox | Click Load Temporary Add-onβ¦ β pick manifest.firefox.json inside the folder from step 1. |
4. Reload your LinkedIn tab. Click the OpenSlop icon in the toolbar to see the popup. Slop Sensitivity defaults to Scorched Earth and the AI filter is on β you should immediately see post cards getting audited / minimized / hidden.
β οΈ Firefox caveat: "Load Temporary Add-on" only persists until you close Firefox. Standard Firefox release won't permanently install an unsigned add-on. To make it stick across restarts you'd need Firefox Developer Edition / Nightly withxpinstall.signatures.requiredset tofalseinabout:config. That's a fork-it-yourself decision.
OpenSlop runs entirely in your browser. It stores settings in chrome.storage
and reads the page DOM. It makes no network requests of any kind β no
fetch, no analytics, no telemetry, no third-party servers.
See PRIVACY.md for the long version and docs/PERMISSIONS.md for the per-permission rationale.
popup/ ββ settings via chrome.storage βββΆ content/ ββ observes βββΆ site adapter
β² β (currently one)
βββββββββ session stats via chrome.storage βββ
Three independent processes that only talk through chrome.storage β
no message-passing between the popup and the content script, no network.
The detection layers (presets, slop scorer, observer, popup) are
site-agnostic; per-site DOM knowledge lives in shared/constants.js
and a small set of content modules.
ARCHITECTURE.md has the full file map.
- Manifest V3 (Chrome) and Manifest V2 (Firefox) ship from a
single source tree; both manifests are kept in lockstep by
npm run validate:extension. - Two permissions total:
storageplus the host scope of the currently shipping adapter. Notabs, noscripting, nowebRequest. Seedocs/PERMISSIONS.md. - Zero runtime dependencies. All deps in
package.jsonaredevDependencies(Jest, ESLint, Playwright, jsdom). The shipped extension is plain.js+.css+.htmlβ what you see in the source tree is what runs in the browser. - 205 Jest unit tests across 16 files + a Playwright extension smoke spec run on every PR via CI. The smoke spec actually loads the extension into headless Chromium and asserts on real DOM behavior on fixture pages.
- No store listing, no published releases.
npm run buildproducesdist/openslop-chrome.zipanddist/openslop-firefox.ziplocally; install via developer mode (above).
npm install
npm test # jest unit tests
npm run lint # eslint, --max-warnings=0
npm run audit:branding # legacy-name + denylist guard
npm run build # dist/openslop-chrome.zip + dist/openslop-firefox.zip
npm run verify:release # the full pre-PR check (everything above + e2e smoke)CONTRIBUTING.md has the dev loop, the file map
pointer, and how to add a new preset term β useful if you fork.
The extension icon is the public-domain
"No AI art" symbol
from Wikimedia Commons. See icons/CREDITS.md
for details.
License: PolyForm Noncommercial 1.0.0. A source-available, noncommercial license.
- Personal use, hobby projects, study, research, experimentation
- Use by nonprofits, schools, universities, public-research orgs, public-safety / health / environmental orgs, and government institutions
- Forking, modifying, and redistributing the source β as long as your fork stays noncommercial under the same license. The PolyForm Noncommercial license carries forward to all derivative works (see the Changes and New Works License and Noncommercial Purposes sections of the license).
- Selling the software, or any product or service that incorporates
it, in any form. This includes:
- Paid downloads, paid extensions on any web store
- Paid SaaS or hosted services that include this code
- Paid support, paid consulting, or paid maintenance tied to the software
- Bundling it into a commercial product, even as a small component
- Charging fees of any kind for access to a build of this software
- Any other commercial use, including internal use at a for-profit company that is not a "personal use" by an individual employee on their own time
- Relicensing it under any license that would permit commercial use. You can fork; you can't strip the noncommercial restriction off the fork.
There is no commercial license for this codebase. The original author is not accepting commercial-licensing inquiries, will not grant exceptions, and will not respond to requests. If you want an engine like this for a commercial product, write your own.
