MCP server · REST API

Know when a security override may no longer be needed.

Reports which overrides look SafeToRemove when an upstream parent already ships the fixed transitive — so you can review before you delete.

Flags SafeToRemove when the parent already ships the fixed transitive — report in CI, you decide.

Read the docs →
POST /analyze_overridesSafeToRemove
[
  {
    "packageName": "tough-cookie",
    "overriddenVersion": "4.1.3",
    "status": "SafeToRemove",
    "suggestedParentUpgrade": null,
    "advisoryId": "GHSA-72xf-g2v4-qvf3",
    "reason": "@sailshq/[email protected] already declares [email protected]. Removing the override changes nothing."
  }
]

After-only — parent already pins 4.1.3. Pastoralist --remove-unused still keeps the pin.

No repo access · package.json only · cancel anytime

Complements Dependabot / Renovate / Snyk →
How it works
01

Scan

Reads every overrides, resolutions, and pnpm.overrides entry in one pass — no config.

02

Probe

Checks npm to see whether the parent dependency has already moved past the patched version on its own.

03

Explain

Cross-references the OSV database for the advisory that prompted each override in the first place.

Works with what you run

Dependabot, Renovate, Snyk, and OSV find the problem.

They tell you a transitive dependency is vulnerable and propose an upgrade. When no parent release exists yet, you pin the safe version yourself — and from that moment nothing is watching the pin. Backpatch is the other end of that incident.

How it fits alongside them →

After the parent already ships the pin

After-only fixture

"dependencies": {
  "@sailshq/request": "2.88.3"
},
"overrides": {
  "tough-cookie": "4.1.3"
}

GHSA-72xf-g2v4-qvf3. @sailshq/[email protected] already declares [email protected].

Backpatch reports SafeToRemove — removal changes nothing. Review in CI; you decide.

Pastoralist --remove-unused still keeps the pin. That is the gap.

Contrast — exact pin still needed

Exact pin — contrast

"dependencies": {
  "@cypress/request": "2.88.12"
},
"overrides": {
  "tough-cookie": "4.1.3"
}

GHSA-72xf-g2v4-qvf3. @cypress/[email protected] ships tough-cookie@^4.1.3. The override is still an exact pin of 4.1.3.

Backpatch reports StillNeeded — removing the pin would move the installed version. Review whether it is still earning its place.

Pay for the limits, not the tool.

Choose the capacity your team needs. Move between plans or cancel any time from the dashboard.

Most popular
Pro

For individual maintainers.

CI report · SafeToRemove status · you decide.

$15/mo
  • 200 overrides / request
  • 120 requests / min
  • Cancel any time

14-day trial · $0 due today

Team

For shared codebases.

$50/mo
  • 1,000 overrides / request
  • 600 requests / min
  • Shared team key
Enterprise

For everything else.

Custom
  • Unlimited overrides
  • Custom rate limits
  • Dedicated support & SLA
Contact sales

No repo access · package.json only · cancel anytime

What we do with your data

What is transmitted

The package.json you send, and a lockfile only if you choose to include one. No repository access, no credentials, no source code — the analysis only needs dependency names and version ranges.

What is retained

Not the file. We hold it for the length of the request and drop it. What persists is a per-day count of requests per key and which endpoint was called — that is what your usage dashboard reads.

We never store recoverable API keys, so we cannot read yours back. Full detail in the privacy policy.