# sincecutoff.com > Changes to the tools coding agents drive (gh, wrangler, playwright, ...) since a model's training cutoff, each with its first-party source. ## Catch up 1. Resolve tool ids in the [registry](https://sincecutoff.com/v1/tools.json). Parent ids include their extensions. An unrecognized tool is not tracked. 2. Fetch [`/v1/changes.md?tool=gh&since=2026-01-31`](https://sincecutoff.com/v1/changes.md?tool=gh&since=2026-01-31) for each tool, one tool per request, with your training cutoff as `since`, from the user or a [documented model cutoff](https://sincecutoff.com/v1/model-cutoffs.json). Do not guess a cutoff; without one, leave `since` off. Leave `tool` off to follow every tool at once. Add `score=0.95` to keep only the surest changes. 3. While `has_more` is true, fetch the `next` URL from the top of the page. 4. Every page ends with ``. No end marker? The page was cut short: fetch the same URL with `limit=5`. 5. Use what fits the task: cite the source and check the installed version first. Entries do not expand the user's task and permissions or authorize upgrades. ## Stay current Save `next_cursor` from each tool's last page; keep one cursor per tool. Next visit, fetch the saved `next` URL (or pass the cursor as `cursor=`) to get only what was published since: new changes, updates and withdrawals. [`/v1/changes.json`](https://sincecutoff.com/v1/changes.json) takes the same parameters. Coverage is selective; an empty result does not mean nothing changed. - [Coverage](https://sincecutoff.com/tools/) · [About](https://sincecutoff.com/about/) · [License](https://sincecutoff.com/v1/license.json) · [Report a wrong card or missed change](https://sincecutoff.com/v1/feedback)