Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

Breakdown

A 100% local, privacy-first Chrome extension that turns dense Terms of Service and Privacy Policies into a plain-English summary. One click, no copy-paste, no accounts, no API keys, no cloud.

Open a policy, click the Breakdown icon, and you get an Overview, a Risk Score, the biggest risks, what data is collected, your rights, the important clauses, and how much reading time you saved. The page text never leaves your device. Analysis is a rule-based legal-clause engine that runs entirely on-device. No GPU, no model download, no network. It is instant.


How it works

Popup (activeTab click)
 │ 1. injects the extractor into the current tab (activeTab only)
 ▼
Extractor (detects ToS/Privacy + pulls cleaned main content) ──► Popup
 │ 2. cache hit? → render instantly (chrome.storage.local)
 ▼
Clause analyzer
 3. match each sentence against a library of legal-clause patterns
 4. score risk, extract data and rights, quote the triggering sentence
 → rendered as cards

Detection is sentence-scoped and rule-based for precision: a clause is only reported when a pattern actually matches, negations like "we do not sell" are excluded, and data types are only counted when they appear next to a collection verb. Every clause card quotes the exact sentence that triggered it as evidence.

  • src/content — legal-document detection and main-content extraction. The extractor is injected on click via chrome.scripting.executeScript, so nothing runs until you ask, and only activeTab access is used (no broad host perms).
  • src/nlp — the analysis engine: a curated clause taxonomy with patterns, negation excludes, and plain-English templates (clauses.ts), data-type and rights lexicons (lexicon.ts), sentence and entity helpers (text.ts), and the orchestrator that builds the summary (analyze.ts).
  • src/components / src/styles — the bento-box card UI, icons, and theme.
  • src/utils — reading-time math, the summary cache, settings, and export.

Everything is TypeScript, Manifest V3, and ES modules, bundled with Vite. There is no machine-learning runtime and no model weights to download.

Privacy

  • Page contents are never transmitted. Analysis is on-device.
  • No accounts, no analytics, no tracking.
  • No network requests. The analyzer ships inside the extension, so it works fully offline from the first click. (PDF policies are fetched only so their bytes can be parsed locally.)

Build & install

Node isn't required system-wide. A portable copy lives in ./.tooling and was used to build this. To rebuild with it (Windows PowerShell):

$env:Path = "$PWD\.tooling\node-v22.23.1-win-x64;$env:Path"
npm install # first time only
npm run build

Or with your own Node 18+ / npm:

npm install
npm run build

npm run build generates the icons, type-checks, runs the tests, and bundles everything into dist/.

Load it in Chrome

  1. Go to chrome://extensions.
  2. Turn on Developer mode (top-right).
  3. Click Load unpacked and select the dist/ folder.
  4. Pin Breakdown, open any Terms of Service or Privacy Policy, and click it.

Analysis is instant, offline, and works on any machine. Nothing to download.

Scripts

Command What it does
npm run build Icons + type-check + tests + production bundle to dist/
npm run build:fast Bundle only (skip type-check and tests)
npm run dev Rebuild dist/ on change (reload the extension to see updates)
npm run typecheck tsc --noEmit
npm run test Run the unit tests
npm run icons Regenerate the PNG icons

There is also a self-test page (selftest.html, built into dist/) that runs the analyzer on a hostile and a fair sample so you can see exactly what it detects.


Notes & limits

  • How the analysis works. Breakdown matches the document against a library of known legal clauses (arbitration, class-action waivers, data selling, broad content licenses, auto-renewal, liability disclaimers, and more), scores how one-sided it is, and extracts the data types collected and the rights you have. Each clause comes with a plain-English explanation and the exact sentence from the document as evidence.
  • Deterministic, not generative. There is no language model writing prose, so the explanations are accurate templates rather than freshly written text. The upside is that it is instant, offline, private, and never invents clauses that are not in the document. The accuracy lives in the patterns in src/nlp/clauses.ts; if a real policy is mis-scored, that file is where to tune.
  • PDFs: PDF policies are supported. The bytes are fetched and parsed on-device with pdf.js. Scanned or image-only PDFs have no extractable text and can't be read.
  • Force / "Analyze anyway": if detection is a false negative, the "Not a legal document" screen has an Analyze anyway button to run it regardless.
  • Summaries are cached per page (URL + content hash), so revisiting an unchanged policy is instant.
  • This is a plain-English summary to help you read faster, not legal advice.

Keyboard shortcut

Ctrl+Shift+S (macOS Cmd+Shift+S) opens Breakdown for the current page.

About

A NLP-based Chrome Extension that summarises Privacy Policies and Terms of Services

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /