Lockfile Diff & Dependency Tree

Compare two lockfiles to see which packages were added, removed or upgraded. You can also see why a package is installed and where several versions of one package come from. Nothing leaves your browser.

On-device・No uploadMobile friendlyWorks offline

Your files and input are processed only inside your browser on this device and are never uploaded to our servers.

Lockfile (before, or the only one)
Not detected
Pasted text up to 2 million characters

How to use

  1. Choose a package-lock.json, yarn.lock or pnpm-lock.yaml file, or paste its text. The format is detected automatically.

  2. In “Dependency tree”, expand from the direct dependencies or search by name. “Why installed” shows the path from a direct dependency to the package.

  3. In “Duplicates”, check packages installed in more than one version and the packages that pull each version in.

  4. In “Diff”, choose the updated lockfile too and press “Analyze”. Upgrades, downgrades, added and removed packages, sources and integrity changes are listed.

  5. Use “Save CSV” to take every diff row into a spreadsheet.

What it does

Tree that separates direct and indirect

Tells apart dependencies, devDependencies, optionalDependencies and peerDependencies, and expands from the project’s direct dependencies. A peer is shown only where it is installed.

Why it is installed, as a path

Walks back from a package through its dependents and shows the shortest path to a direct dependency.

Detects the format

Reads npm lockfileVersion 1, 2 and 3, yarn v1 and Berry (v2 and later), and pnpm 5, 6 and 9. Unsupported files show the reason.

Diff by semver

Compares versions of the same package with semver and separates upgrades from downgrades. Major upgrades are highlighted as warnings.

Warns on integrity mismatch

Warns when the version is the same but the integrity (hash) differs. Also shows when a source moves to another host.

Fully local

Parsing runs in a Web Worker inside your browser. Neither the lockfile nor its file name is sent or logged.

Use cases

  • See how package-lock.json changed after npm install
  • Check why an indirect dependency is in the project
  • List the versions actually raised in a Dependabot or Renovate update pull request
  • Find a library that is installed in several versions
  • Check changed sources or hashes in a yarn or pnpm lockfile

Supported formats

Read

package-lock.json (lockfileVersion 1, 2 and 3)yarn.lock (yarn v1 format and the YAML format of yarn v2 and later)pnpm-lock.yaml (lockfileVersion 5, 6 and 9)

Output

On-screen listsDiff as CSV (UTF-8 with BOM)

Capability matrix

FeatureSupportNotes
Dependency tree (direct and indirect)Partialnpm v1 and yarn v1 do not record direct dependencies, so they cannot be told apart
Why a package is installed (dependents path)SupportedShows one shortest path, not every path
Several versions of the same packageSupported—
Diff of two lockfiles (added, removed, upgraded, downgraded)Supported—
Changes in source (resolved) and integrityPartialSources are not compared when the two lockfiles use different formats
Vulnerability lookupNot supportedIt needs an outside connection, so it is not done
License reviewNot supported—
Analysis from package.json aloneNot supportedReads the lockfile
Installing packages or generating a lockfileNot supported—
Offline useSupportedWorks without a connection once loaded

Limits & notes

  • Files up to 50 MB each. Pasted text up to 2 million characters.
  • A lockfile with more than 100,000 packages is not read.
  • On screen: up to 200 search results, 300 duplicated packages and 5,000 diff rows. The CSV contains every diff row.
  • Only the lockfile contents are read. The node_modules folder and the versions actually running are not checked.
  • npm workspace links are not included in the list.

Privacy & safety

Lockfiles are analyzed only inside your browser. Nothing is uploaded or stored, and file names and contents are never put in analytics logs. Closing the page discards everything.

FAQ

How do I diff two package-lock.json files?
In the Diff tab, choose the older and newer package-lock.json and press “Analyze”. Added, removed and upgraded or downgraded packages are listed, and major upgrades are highlighted as warnings.
Can it show why a package is installed?
Yes. Search for the package in the dependency tree and press “Why installed” to see the shortest path from a direct dependency to it.
Does it read yarn.lock and pnpm-lock.yaml?
Yes. The format is detected automatically. yarn v1 and npm v1 do not record direct dependencies, so direct and indirect cannot be told apart for them.
Does it check vulnerabilities or licenses?
No. A vulnerability lookup needs an outside connection, so it is not done, and licenses are not checked. Use a dedicated tool for those.
What does an integrity change mean?
It warns when the version is the same but the integrity (hash) differs. This can be a re-publish, a mirror difference or tampering, so check it together with the source.
Is my lockfile sent anywhere?
No. Everything runs in your browser. Nothing is sent to LIBRA Works or any third party.

Diff Tool — Text & Code Compare

Paste or drop two versions and see added and removed lines, plus the exact words that changed inside each line. Copy or save the result as a unified patch. Nothing leaves your browser.

No upload

JSON Studio — Formatter & Validator

Paste JSON to format, minify or validate it instantly. Errors are shown with the exact line, column and cause, and comments or trailing commas can be auto-repaired. Your data never leaves your device.

No upload

YAML / TOML Studio — Validate, Format & Convert

Paste YAML, TOML or JSON to validate, format or convert it. Errors show the exact line and column, and type traps such as “no becomes false” and anything lost in conversion are flagged up front. Your data never leaves your device.

No upload

Docker Compose Studio

Convert docker run commands to compose.yaml, or compose.yaml back to docker run. A compose file is checked for syntax, the Compose Specification and common mistakes, and security points worth confirming are listed. Nothing is started or pulled, and your input never leaves your device.

No upload

Dockerfile Studio

Paste a Dockerfile to check its syntax, stages and common mistakes. Secret-looking values and points to confirm, such as curl | sh, are listed with line numbers. You can also format it or generate starter files for Node.js, Python, Go, a static site or Java. Nothing is built, and your input never leaves your device.

No upload

.env Studio

Paste or drop a .env file to see its keys and values in a table, with duplicates, empty values and syntax problems flagged by line. Values are hidden by default. You can compare a .env with a .env.example, or export an example file, JSON or a Kubernetes Secret. It checks common dotenv syntax, not tool-specific rules such as docker compose variable expansion.

No upload

Last updated: