Your agent writes codefor the version it remembers.

APIs keep moving after a model stops reading. lurq reads the exports your installed version actually ships and hands them to your agent before it writes a line.

Read the docs

What kind of builder are you? Public GitHub only, no sign-in.

Install it once. It shows up in all of these.

  • Claude Code
  • Cursor
  • Windsurf
  • Copilot
  • Codex
  • VS Code
  • Gemini CLI
  • Antigravity
  • Kiro

Ask for an upgrade. Find out what breaks first.

When a request touches packages, lurq resolves the versions from the registry, analyzing compatibility, and reports the clashes. We do this before anything is written to your project.

Claude Code

Upgrade me to TypeScript 7.

I'll bump typescript to 7 and leave the lint setup as it is.

lurqcompatnext typescript @typescript-eslint/eslint-plugin3 pairs · 1 conflict
  • next16.3.0
  • typescript7.0.2
  • @typescript-eslint/eslint-plugin8.66.0

@typescript-eslint/eslint-plugin needs peer typescript@>=4.8.4 <6.1.0, but the stack uses typescript@7.0.2

Left alone, npm refuses the install.

Holding typescript at >=4.8.4 <6.1.0 until the plugin supports 7.0.2.

  1. 01

    It answers from memory

    Upgrading the compiler should be an obvious move for models. The problem is nothing in the editor knows if the other tools have caught up.

  2. 02

    lurq reads what is true today

    One call resolves the versions each package currently supports, with retrieved info refreshed on published upgrades.

  3. 03

    You find out now, not at install

    @typescript-eslint/eslint-plugin still declares support for >=4.8.4 <6.1.0, so npm refuses to put it next to 7.0.2. You get the version compatible with your stack instead of wasting thirty minutes figuring out why.

The most-installed packagesyour model still gets wrong.

A new major is where the old API breaks. We record the day each model stopped reading and count what the registry shipped after it. The code comes back confident, and written for a version that has moved on.

Knowledge cutoff

Claude Opus 5 stopped learning in may 2026.

Anthropic’s published figure

7%

of the packages it knew have broken since may 2026

2,892

shipped a new major upgrade after may 2026

40,223

packages the index already tracked by then

version drift0 packages synced 22 sept 2026
Packages that changed major version since Claude Opus 5’s knowledge cutoff of may 2026, by weekly installs
RankModel believesActually on
01ansi-styles6.2.37.0.0+12 moshipped jul 2026, wrong for 2 months685M
02supports-color10.2.211.0.0+12 moshipped jul 2026, wrong for 2 months501M
03chalk5.6.26.0.0+12 moshipped jul 2026, wrong for 2 months385M
04commander14.0.315.0.0+14 moshipped may 2026, wrong for 4 months371M
05@types/node25.6.026.6.1+13 moshipped jun 2026, wrong for 3 months317M
06js-yaml4.1.15.4.1+13 moshipped jun 2026, wrong for 3 months298M
07@babel/code-frame7.29.08.0.0+13 moshipped jun 2026, wrong for 3 months252M
08which6.0.17.0.0+15 moshipped may 2026, wrong for 5 months243M

Read from lurq's own index on 22 Sept 2026. The may 2026 cutoff is Anthropic's published figure for Claude Opus 5. Totals count only packages the index already tracked by that date, and every number here is measured against it.

Four questions a model cannot answer from memory.

usage · resolve_surface · diff_surface

What is the API, exactly?

Exported symbols and signatures, read out of the version's own shipped .d.ts. We hand the delta to your model: what moved, what went, what is new.

lurq · diff_surface

diff_surface

{
  "package": "zod",
  "fromVersion": "3.23.8",
  "toVersion": "4.1.12"
}

Symbols removed, added and changed between the two, read from shipped JavaScript.

verify · evaluate

Is it real, and is it healthy?

Downloads, release cadence, open advisories, deprecation flags. We catch the package that does not exist: a name the model produced fluently, spelled the way a real one would be spelled.

lurq · verify

verify

{
  "package": "reqeusts"
}

Comes back with exists: false, and the real name it is one edit away from.

compat

Will these install together?

Every pair in the set, graded against declared peer ranges and co-installs already in the compatibility matrix.

lurq · compat

compat

{
  "packages": ["next", "react", "react-dom"],
  "versions": { "react": "19.2.0" }
}

Every pair graded against declared peer ranges and co-installs already seen.

compat · usage

Does it run on your Node?

We check against the runtime you deploy on. Declared engines can range, so stacks can resolve perfectly and still die in production because one node doesn't support the Node you ship.

lurq · usage

usage

{
  "package": "sharp",
  "version": "0.34.4"
}

Returns the version's declared engines, so its Node floor is read rather than assumed.

Every answer traces back to a host you can check yourself.

Existence and version ranges come straight off the registry. Maintenance is a composite: downloads, release cadence, open issues, the OpenSSF Scorecard. Risk is OSV advisories plus the deprecation flags. The API surface is the odd one out, parsed from each package's shipped types.

  • npm registryregistry.npmjs.org
  • npm downloadsapi.npmjs.org
  • npm searchregistry.npmjs.org/-/v1/search
  • GitHub APIapi.github.com
  • GitHub rawraw.githubusercontent.com
  • deps.devapi.deps.dev
  • OpenSSF Scorecardapi.deps.dev/v3/projects
  • OSV advisoriesapi.deps.dev/v3/advisories
  • Bundlephobiabundlephobia.com
  • jsDelivrcdn.jsdelivr.net
packages indexed
50,000packages indexed
sources
10sources
versions tracked
4,411,601versions tracked
last read
22 Septlast read

Four ways in, and the same index behind them.

One-time setup

Install once, and it finds what you already have.

lurq · setup

lurq setup

signed in · key received from the browser

key validated · saved to ~/.lurq/config.json

detected Claude Code, Cursor, VS Code

wrote 3 keyed MCP entries + 2 skill files

no database credentials written

restart your agent to finish

Setup opens a browser, and signing in is the whole interaction: the key is handed back to the terminal on its own, with nothing to copy. Then it works out which assistants are installed and writes both a keyed MCP entry and a skill file for each. Your key is stored for the CLI too, so there is no second command and nothing to export.

MCP server

The tools your editor gets.

lurq · mcp

lurq setup --agent claude-code

connected · https://api.lurq.run/mcp

tools: recommend evaluate compare verify compat

usage resolve_surface diff_surface

plan diagram capabilities report_outcome

every response carries a dataAsOf timestamp

MCP is the standard way an editor hands a model a new tool. Register lurq once and everything in that editor can reach it. Setup also drops a skill file, so the model reaches for it without being asked.

Command line

For nerds, run in your terminal.

lurq · cli

lurq verify jsonwebtoken

lurq compare date-fns dayjs moment

lurq compat next react react-dom

lurq usage zod --known 3.22.4

--json on any of them, for a script to read

Every capability is a subcommand, reading the same hosted index as your editor. No database, no API key to pass: setup stored it once.

Self-hosted endpoint

Run the server behind your personal key.

lurq · serve-http

lurq serve-http --port 8080

listening on :8080

POST /mcp api key required

GET /healthz

per-ip and per-key rate limits on by default

The same MCP server over HTTP, with API-key auth and rate limits. For a platform that needs the endpoint inside its own perimeter.

Pricing

Start free. Pay when it saves you time.

The command line and the installable skill cost nothing and always will. What the paid plans buy is the hosted index: the compatibility graph, the version surfaces, and the crawl that keeps both current.

Free

$0/mo

1,000 hosted calls a month

Past the limit: 20 calls a day until the month turns

Enough to find out whether the index is telling the truth.

  • CLI and installable skill
  • Every hosted tool: verify, evaluate, compat, compare, audit
  • Repo autopilot, policy with warn mode
  • 7-day decision log
  • Community support

Pro

$15/mo

10,000 hosted calls a month

Past the limit: 20 calls a day until the month turns

For one developer who runs it on every install.

Everything in Free, plus

  • Bursts up to 120 requests a minute
  • Bigger daily budget for dashboard Ask
  • 90-day decision log
  • Email support

Team

Most popular

$25/seat/mo

15,000 calls a month per seat, pooled · 3-seat minimum

Past the pool: $8 per 1,000 calls, up to 2x the pool

For a team whose agents answer to one policy.

Everything in Pro, plus

  • CI keys that push a reviewed policy
  • Alerts to Slack, Discord, Teams or a webhook
  • 1-year decision log
  • Bursts up to 300 requests a minute
  • Priority support

Business

from$1,000/mo

Uncapped hosted calls

For a company that needs the graph under its own controls.

Everything in Team, plus

  • Bursts up to 600 requests a minute
  • Invoiced billing
  • Custom SLA
  • Dedicated support channel

A call is one tool request against the hosted index. The CLI run locally against your own database is unmetered. When a plan's monthly calls run out, it keeps 20 calls a day instead of stopping, until the month turns (UTC). Monthly Team is the exception: calls past the pool are billed at $8 per 1,000, up to 2x the pool, and the daily grace applies after that. Yearly Team has no overage. Business is uncapped. The free plan never asks for a card.

Questions, answered.

Something not covered here? Talk to us.

General

What is lurq?

lurq is a dynamic index of JS/TS packages that your coding agent checks before install. We score packages from public signals and verify in sandboxes where necessary. Your agent asks lurq, then writes the code.

How is it different from just asking my model?

A model remembers an API as it was on the day training stopped. lurq reads the version in your project: its exports, its peer ranges and its advisories, each with the date it was read. The model still writes the code. It writes it against the right version.

Which tools does it work with?

Claude Code, Cursor, Windsurf, VS Code / Copilot, Codex, Gemini CLI, Antigravity, Kiro, and anything else that can use a CLI or MCP connection. One install step writes the config file each of those already reads.

What doesn't work yet?

Three things, honestly. The API surface index covers 39944 package versions so far, so for most packages the exact-signature answer is not there yet. Sandbox verification runs on a queue rather than on demand, which means a brand new pair may not have been executed when you ask. And the whole index is JS/TS only, with no plans for other ecosystems until this one is solid.

The checks

What do you mean by execution-verified?

lurq reads metadata: downloads, release dates, advisories. But, lurq also returns info from sandboxed trials. Did the install succeed? Does it import? Do these two versions coexist? We outrace the changelog and the training data.

Why does a whole stack need checking, not just each package?

Because six individually healthy packages can still refuse to install together. Peer ranges conflict, engines disagree, transitive versions collide. lurq mines compatibility from co-installs, so a stack can hold together rather than break later from a simple upgrade.

Data and access

How current is it?

Every answer carries a dataAsOf timestamp, so you can see exactly how old the reading is.

Is it free?

Yes, free to get started. Create an account, generate an API key, and you get the CLI, the agent connection, and the installable skill with a monthly allowance of hosted calls.

Tell us what broke.

A bug, a package we have scored wrong, a stack you want a second opinion on. There is no ticket queue. It lands in an inbox one of us reads.

Reply
Usually within a day