ketchup

Ketchup updates TypeScript code that a dependency upgrade broke.

Libraries change their APIs. The code that calls them falls behind: sometimes it stops compiling, sometimes it compiles and quietly does the wrong thing. Ketchup finds every place an upgrade breaks your code, has NVIDIA Nemotron draft the fix, and only gives you a patch once the compiler accepts it.

dcgm-exporter4.8.4 4.9.0

Your code still targets 4.8.4. Drag the tomato to catch it up.

The quiet kind of break

Data center teams page on-call from alert rules built on GPU metrics. NVIDIA’s DCGM Exporter 4.9.0 renamed its default metrics. Rules written for 4.8.4 still ask for the old names, so they match nothing. Nothing errors and nothing pages, and a dashboard with no alerts looks healthy.

Exporter
AlertMetric it watchesOn-call

How Ketchup fixes it

Ketchup compiles your code against the old and the new API declarations, so every break is a compiler error with a line number. Nemotron then works through them as an agent: it inspects the findings, reads the files it needs, and proposes edits through Ketchup’s tools. Ketchup compiles each proposal. A failure goes back to Nemotron with the errors; a pass is reviewed by a second, read-only Nemotron pass before you see it.

Below is the real run that repaired the alerts above. Drag the tomato along the timeline, or press play.

0:00 / 2:38

    For code that fell behind

    A lot of software stays pinned to old versions because upgrading means hunting down every break by hand. Ketchup works on any TypeScript project folder. It reads your code and its installed type declarations, fetches the new version’s declarations from npm, and never writes to the folder. Three upgrades it has repaired with Nemotron (click a row):

    ProjectUpgradeCompiler errorsNemotron

    Run it

    Ketchup runs on your machine and needs Node.js 22.18 or newer. The examples work without a key. To draft repairs, put NVIDIA_API_KEY= and your key from build.nvidia.com in a .env file. Before anything goes to NVIDIA, Ketchup shows you exactly what it will send.

    npm ci --omit=dev --ignore-scripts --no-audit --no-fund
    npm start