This file provides guidance to AI coding agents when working with code in this repository.
uBlacklist is a browser extension that blocks specific sites from appearing in search engine results. It supports Chrome, Firefox, Edge, and Safari, with cloud sync via Google Drive, Dropbox, WebDAV, and browser sync.
# Install dependencies (pnpm >= 10 required)
pnpm install
# Build extension (outputs to dist/<browser>[-debug])
pnpm build [--browser=chrome|firefox|edge|safari] [--debug]
# Run all checks (biome, prettier, typescript)
pnpm check
# Run tests
pnpm test
# Fix linting/formatting issues
pnpm fixAfter editing, run pnpm check to verify (this runs biome, prettier, and tsgo together).
- Ruleset syntax:
docs/ruleset-spec.md - SERPINFO format:
docs/serpinfo-spec.md
- Edit
src/_locales/en/messages.json(English is the source of truth; other locales are managed via Crowdin — do not edit them directly). - Run
pnpm generate:message-namesto regenerate message name constants.
uBlacklist is split across multiple repositories:
- iorate/ublacklist — this repository, the extension itself.
- ublacklist/builtin — built-in SERPINFO files (the extension downloads these periodically).
- ublacklist/ublacklist.github.io — website and documentation.
- ublacklist/store-assets — store listing descriptions and screenshots.
Changes to a specific subsystem belong in its repository.