Capture a page
Fill in the vendor, page type and source URL, paste the page, and capture. Your first capture of a page is stored, not diffed — there is nothing to compare it to yet.
Report
Watchlist
Pages you have captured in this browser. Two captures are kept per page — the pair a diff needs. Re-capture a page to compare it against the one before.
Watch them automatically instead
This page needs you to remember to come back. The command-line version of the same tool does not: it fetches the pages you configure on your machine, on whatever schedule you already run — cron, launchd, a CI job — and prints the same report. Same diff logic, same three statuses.
pip install -e ventures/vendor-change-watch
vendor-watch add --vendor "Acme SaaS" \
--url https://acme.example/legal/subprocessors --type subprocessors
vendor-watch check
A failed or blocked fetch is reported as inconclusive, never as “no change”. Everything lives under ~/.vendor-watch — delete the directory to delete all of it — and VENDOR_WATCH_NO_TELEMETRY=1 turns off even the local counters. Run vendor-watch --help for the full command set.
What this answers
- Which clause actually moved? Changes are grouped under the heading they happened in, and shown word by word rather than as two walls of prose.
- Did they add a subprocessor? A heading that appears in the newer capture and not the older one is reported as added, with its text.
- Can I put this in a ticket? The Markdown report carries the vendor, the page type, the source URL and both capture timestamps, so the evidence travels with the finding.
- What it does not answer: whether a change matters, whether it breaches your contract, or whether the vendor is compliant with anything. It reports text, and you decide.
Common questions
Why can't this fetch the vendor's page for me?
Browsers refuse cross-origin reads of another site's pages, so nothing served from here can fetch acme.example's terms on your behalf without a server in the middle — and that server would see every URL you watch. Rather than run it, this page asks you to paste. The CLI above does fetch, on your own machine, where no third party is involved.
Does the text I paste leave my browser?
No. Parsing, storage and diffing all happen in this page. Captures are kept in this browser's local storage on your own device and are never uploaded; “Delete all captures” removes them.
Does a detected change mean the vendor broke a commitment?
No. This reports what changed in the text you captured, with the source URL and both timestamps. It is not legal advice, does not review contracts, and does not assert that a vendor is or is not compliant with anything. You decide what a change means.
Why does the first capture not show a diff?
There is nothing to compare it against. A first capture is reported as captured, never as “unchanged” — a check with no basis for comparison must not look like stability. Paste the page again later and the second capture produces the report.
What counts as a section?
Text is grouped under the nearest preceding heading. Pasted HTML uses its real h1–h6 headings; pasted plain text treats a short standalone line above a paragraph as a heading. Anything before the first heading is grouped under (page).
Is this the same as the command-line tool?
It shares the diff logic and the exact status vocabulary — observed, inconclusive and unknown mean the same thing in both. The CLI adds the part a browser cannot do: it fetches the pages you configure on a schedule from your own machine, so you are not the one remembering to check.
Not sure how often to check a given vendor? See how often should you re-check a vendor's terms and privacy pages.
Already using a general-purpose page watcher? See this tool vs. changedetection.io. Still checking vendor pages by memory? See this tool vs. checking vendor pages by hand.
Already holding two dated JSON snapshots of the same vendor page? The vendor change evidence tool compares a before and after snapshot into a portable review record — nothing uploaded.