Scroll, click, find out in month two.
I signed up for an app's free trial. It turned into a plan billed monthly that I couldn't cancel for three months, and leaving early cost $300. The rule was in the terms I scrolled past on the way to the button.
A Chrome extension that reads the terms at the sign-up button. Gemma, running on your laptop, flags renewals, lock-ins and exit fees with the exact sentence, then puts your way out in your calendar.
Free, Apache 2.0Chrome 124+ with WebGPUNothing you browse leaves your laptop
Nobody reads terms of service, and nobody is going to start. So the reading has to happen at the one moment it matters.
I signed up for an app's free trial. It turned into a plan billed monthly that I couldn't cancel for three months, and leaving early cost $300. The rule was in the terms I scrolled past on the way to the button.
Catch reads the same terms while your cursor is on "Start free trial" and quotes the sentence: billed monthly, locked in for three months, $300 to leave early. You decide with the facts in front of you.
Catch finds the sign-up or checkout button, reads the text around it and the terms page it links to, and pins up to three lines next to the button. Tap a line to jump to the exact sentence.
Rules pick the sentences that might be trouble. Gemma answers one yes-or-no question about each, and Catch reads its confidence instead of trusting one sampled word. The line on the card is written from numbers in the quoted sentence, so $300 can't turn into $30.
If you sign up anyway, Catch works out the last day to cancel for free and the first day you can leave without the fee, then adds them to your calendar with the steps and the quoted terms.
An extension that reads every sign-up page you visit should never phone home. Gemma 4 E2B runs in Chrome on your own GPU through WebGPU. The weights download once from Hugging Face and stay in the browser cache. After that, the only thing Catch fetches is a site's own terms page when the sign-up page links to it, without your cookies.
Auto-renews
It keeps charging until you cancel, monthly or yearly.
Trial turns paid
The free week becomes a paid plan unless you act in time.
Lock-in
Billed monthly, but you can't leave before a minimum term ends.
Exit fee
Leaving early costs a fee, or the rest of the term.
Cancel rules
Notice periods, deadlines, or cancelling by post or phone only.
No refunds
Money you've already paid stays paid.
Pomelo Focus is made up. Its terms copy the plan I fell for. Catch runs inside the page below, the same code as the extension. Hover the button, read the card, then press "Start free trial".
The demo starts with the rules, which work instantly on any computer. Pick Gemma 4 E2B to download the model once (about 3.4 GB) and watch it double-check them on your GPU.
I fetched the terms of 50 subscription services; 27 could be read as plain text. Catch picked up to 8 suspect sentences from each, 136 in all. An AI assistant suggested a label for each, and I reviewed every one by hand before any reader was scored.
| Reader | Precision | Recall | F1 | Time per document |
|---|---|---|---|---|
| Rules only | 63% | 91% | 75% | <1 ms |
| Gemma 3 1B, tuned threshold | 64% | 91% | 75% | 0.6 s |
| Gemma 4 E2B, asked about every kind | 90% | 65% | 76% | 1.7 s |
| Gemma 4 E2B + rules for lock-ins (ships) | 85% | 72% | 78% | 1.4 s |
Precision: of the catches shown, how many were real. Recall: of the real catches among those sentences, how many were shown. Tuned thresholds were picked on half the services and measured on the other half. The card uses a 0.5 cut-off. Gemma 4 missed every lock-in in the test, so lock-ins come straight from the rules. Labels, predictions and scripts are in the repo.
A tool for avoiding subscription traps shouldn't be one.
Catch for Chrome
Chrome 124+ · WebGPU for Gemma, any computer for rules
Install: download, open chrome://extensions, turn on Developer mode, load the folder.
No. The page text is read inside your browser and the model runs on your GPU. Catch causes two kinds of request: the one-time model download from Hugging Face, and the site's own terms page when the sign-up page links to it (fetched without your cookies). No analytics, no server.
That's Gemma 4 E2B with 4-bit weights, downloaded once and cached. I tried the 0.8 GB Gemma 3 1B first. Out of the box, with my yes/no prompt and no fine-tuning, it gave almost every question a "yes" probability above 0.99, so it couldn't separate a trap from a refund policy. Gemma 4 E2B could. A 1B fine-tuned on these labels might do the job; that's next.
Catch falls back to its rules. You still get the card and the exit plan; the rules flag more false alarms because nothing double-checks them.
It can't add one. Every line quotes a real sentence from the page or its linked terms, and the numbers on the card come from that sentence. The model only decides whether a sentence the rules flagged really is a catch.
Code finds the trial length, the minimum term and the notice period in the terms, even when they're in different sentences, then does calendar arithmetic from today. It keeps a two-day safety margin before each deadline.
No. It points you at the sentences worth reading so you can read two lines instead of twelve thousand words.
Terms that only appear in images, PDFs or pop-ups that open after a click, and traps written in words the rules don't expect. The accuracy section above has the numbers.