Local-first Chrome MV3 extension that blurs semantically related text using a Rust/WASM model running in a worker.
- Zero cloud processing (all inference in-browser).
- No UI thread ML execution.
- Precision-first filtering with user controls.
src/background.ts: Dynamic content-script registration based on saved settings.src/extractor.ts: DOM extraction + batching + visual blur (requestAnimationFrame).src/brain.worker.ts: Semantic + lexical decision engine in worker thread.src/lib.rs+src/state.rs: Rust/WASM embedder runtime (Burn/WebGPU).src/options.ts+options.html: User controls (target, mode, exclusions, protected selectors).src/settings.ts: Shared settings schema and normalization.
precision: Lowest false positives.balanced: Mid-point tradeoff.aggressive: Higher recall, more risk of false positives.
npm ci
npm run typecheck
cargo check --target wasm32-unknown-unknown --release
bash build.shLoad dist/ from chrome://extensions -> Load unpacked.
- Content script is dynamically registered only when target is non-empty.
- Site exclusions are applied centrally in background script.
- Worker gracefully falls back to lexical-only mode if semantic engine fails.
- Release process checklist lives in
docs/PRODUCTION_RUNBOOK.md.