A cross-browser WebExtension for Chrome, Firefox, Opera, Edge, and other Chromium-based browsers. A companion for everyday browsing of OLX.pl and Otomoto.pl: keep track of what you have seen and what you think about it — mark listings, rate sellers, add private notes, and sync across devices via GitHub Gist.
Zero dependencies on Google, Apple, or Microsoft ecosystem. Only uses GitHub Gist for cloud sync, IndexedDB for local persistence, and standard WebExtension APIs.
Unofficial extension, not affiliated with or endorsed by OLX.pl or Otomoto.pl.
Installation
Download the extension package (.zip)
Chrome / Brave / Edge
- Download and extract the
.zipto a folder - Go to
chrome://extensions/ - Enable Developer mode (top right)
- Click Load unpacked → select folder
- Done
Firefox
- Download and extract the
.zipto a folder - Go to
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on
- Select any file in the folder
- Done (temporary; reload on browser restart)
For permanent installation, submit to Firefox Add-ons (AMO).
Opera
- Download and extract the
.zipto a folder - Go to
opera://extensions/ - Enable Developer mode
- Click Load unpacked extension → select folder
- Done
Features
- Ban/unban listings (grey-out or collapse style)
- Rate sellers with star system (3★ red, 2★ yellow, 1★ blue)
- Comment notes on listings (50 char max)
- View tracking with eye icon
- Cross-browser support (Chrome, Firefox, Opera, Edge, Brave)
- Cross-device sync via GitHub Gist (5-minute automatic sync)
- Crosspost awareness — Otomoto ads hosted on OLX.pl handled correctly
- Privacy-first — data stays local; GitHub Gist sync only when you enable it
Usage
Listing Cards (Search Results)
Each card shows inline controls with eye icon (viewed listings), star rating (click to cycle), comment box, and BAN toggle. Banned listings fade to 35% opacity with grayscale filter, or collapse to a title-only bar (configurable).
Detail Pages (Single Listing)
Bottom-right corner shows similar controls. Banned items show a red banner with ban date/time, comment, and UNBAN button.
Bookmarklets
Create a new bookmark in your browser and paste the code below as the URL. Each bookmarklet loads the script hosted on this site from its full URL and calls the function it defines.
comment-all
Prompts for a comment text, then writes it to every listing on the page through the add-on’s own data layer.
javascript:(function(){var s=document.createElement('script');s.src='https://piotereks.top/olx-otomoto-ban-addon/comment-all.js';s.onload=function(){commentAll();};var p=document.body||document.head||document.documentElement;p.appendChild(s);})();
Source: comment-all.js
ban-all
Finds all buttons with text “BAN” and clicks them after confirmation.
javascript:(function(){var s=document.createElement('script');s.src='https://piotereks.top/olx-otomoto-ban-addon/ban-all.js';s.onload=function(){banAll();};var p=document.body||document.head||document.documentElement;p.appendChild(s);})();
Source: ban-all.js
Sync
Everything is stored in browser IndexedDB. Optional GitHub Gist sync merges data across devices using field-level timestamps (newest wins per field).
Privacy
The add-on is privacy-first: all data stays in your browser’s IndexedDB on your device. Nothing is sent anywhere unless you explicitly enable GitHub Gist sync with your own token. The add-on’s manifest declares data_collection_permissions.required: "none".
Full details: Privacy Policy and the add-on privacy policy.
Changelog
v10.0.0 (2026-08-01)
- Fix: crossposted Otomoto ads on OLX.pl now use the correct DB key — ban/rating/comment works on crossposts
- Fix: hidden cards on the “Obserwowane” (favorites) page no longer get controls re-added
- Collapse mode: banned ads render grey first, then collapse after the configured delay — no layout flash
- 2-second cooldown on collapse toggle; stale card references recovered automatically
- Inline controls only — no floating overlays
- Test suite consolidated: 12 E2E tests
Setup
- Visit any OLX or Otomoto listing page
- Open DevTools (F12) → Console — you should see
[BG] Service worker initialized - Look for control chips on listing cards
Enable Gist Sync
- Create a GitHub token at https://github.com/settings/tokens with
gistscope only - Set it in the extension options page or via console:
chrome.runtime.sendMessage({ action: 'setToken', payload: { token: 'ghp_your_token_here' } }, r => console.log(r))
Troubleshooting
- Chips not showing? Check you’re on
olx.plorotomoto.pl, refresh the page, check console for[Content] Initialized - Sync not working? Verify token is set and valid (classic tokens expire after 1 year)
- Data loss? Your Gist is preserved on GitHub; reinstall and re-set token
Development
extension/
├── manifest.json
├── background.js
├── shared.js
├── olx-site.js
├── otomoto-site.js
├── options.html
├── options.js
└── images/
├── icon-16.png
├── icon-48.png
└── icon-128.png
Source files: ../../../development/olx-oto-ban-addon/src/
Project Structure
olx-oto-ban-addon/
├── src/ # Extension source (deployable)
│ ├── manifest.json
│ ├── background.js
│ ├── shared.js
│ ├── olx-site.js
│ ├── otomoto-site.js
│ ├── options.html
│ ├── options.js
│ └── images/
├── tests/ # E2E test suite
│ └── e2e/
├── docs/ # Documentation (PRIVACY.md, LICENSE)
└── *.md # Documentation
License
Mozilla Public License 2.0 — see the LICENSE.
Credits
- Original userscript: piotereks (Tampermonkey)
- WebExtension port: Zero-Google build for Firefox/cross-browser compatibility