node-modules-inspector is a free, open source frameworks & platforms project written in TypeScript and released under MIT. It has 2,954 GitHub stars, 92 forks and 26 open issues, and was last pushed 12 days ago. On this registry it ranks #59 of 81 tracked projects in Frameworks & Platforms, with 5 head-to-head comparisons available.

What is node-modules-inspector?

Node Modules Inspector is an MIT-licensed TypeScript developer tool that renders an interactive browser UI for inspecting a project's local node_modules, built for JavaScript and TypeScript developers who need to see what their installed dependency tree actually contains.

What it is

Node Modules Inspector visualises a project's node_modules and lets a developer inspect dependencies and more through an interactive interface. It is distributed as an npm package in the Node.js ecosystem, lives at node-modules.dev, and is run inside a project rather than installed globally: the README's Quick Start covers pnpm, npm, and bun projects through pnpx node-modules-inspector, npx node-modules-inspector, and bunx node-modules-inspector. An online version at node-modules.dev, powered by WebContainer, allows the same inspection without a local install, and the repository carries the devframe, devtools, inspector, node-modules, and npm topics.

The concrete problem it addresses is the difficulty of reading a modern dependency tree by hand. Rather than working through manifest files and lockfiles manually, developers get a visual inventory of what is installed, and the project's command-line reports answer specific questions directly: which packages are installed in multiple versions, which packages consume the most install size, and where dependency-upgrade opportunities plus publint results sit across the packages a project depends on. This makes the state of node_modules legible at the points where dependency decisions are usually made — before an upgrade, during an audit, or while investigating why a tree has grown.

Key capabilities

  • Interactive local inspection through pnpx node-modules-inspector, npx node-modules-inspector, or bunx node-modules-inspector, with pnpm, npm, and bun projects supported today.
  • A node-modules-inspector.config.ts file using defineConfig, supporting defaultFilters.excludes, defaultSettings.moduleTypeSimple, and an experimental publint.dev integration that is disabled by default.
  • Static SPA generation through the build command, which writes a .node-modules-inspector folder that can be hosted on any static file server.
  • Three CLI reports: report duplicates for packages installed in multiple versions, report sizes for packages sorted by install size, and report maintainers for dep-upgrade opportunities plus publint results grouped by consumer and author.
  • Pipe-safe machine-readable output with --json, which writes JSON to stdout while progress logs go to stderr, alongside shared --root, --config, --depth, and --limit options.
  • An MCP server started with npx node-modules-inspector mcp over stdio, exposing nmi:report-duplicates, nmi:report-sizes, and nmi:report-maintainers, with input and output JSON Schemas auto-derived from valibot definitions and surfaced through tools/list.
  • A bundled agent skill at skills/node-modules-inspector/SKILL.md, copied into the published tarball at /skills/ during prepack and automatically symlinked by skills-npm after pnpm install.

Who uses it and how

  • Developers auditing a dependency tree before an upgrade, using report maintainers with --sort migration to find dep-upgrade opportunities and publint findings grouped by consumer or author.
  • Maintainers who publish many packages at once, as shown by the README's reference to a static build covering all of Anthony Fu's packages hosted at everything.antfu.dev.
  • Shell pipelines and AI coding agents, since the reports are designed for both and the --json flag keeps stdout clean for tools such as jq.
  • Teams wiring dependency reporting into agent workflows, by registering node-modules-inspector mcp as a stdio server in an MCP-compatible client such as Claude Code.
  • Projects that want a shareable snapshot of installed state, produced with node-modules-inspector build and served from any static file host.

Getting started

Run npx node-modules-inspector (or pnpx/bunx equivalents) inside a pnpm, npm, or bun project, or try the hosted version at node-modules.dev.

How it compares

The README credits npmgraph as a heavy inspiration, so it sits in the same lineage as existing browser-based dependency graph viewers, while adding command-line reports and an MCP interface on top of the visual UI. It also integrates experimentally with publint.dev for package-quality checks and credits @wooorm's module type detection algorithm from wooorm/npm-esm-vs-cjs. No list of paid products it replaces is provided.

When to use it — and when not to

Adopters should be ready to run the tool against a local project and, if they use the static build, to operate a static file server to host the generated .node-modules-inspector folder. Projects on package managers other than pnpm, npm, and bun should wait, since the README states that support for others depends on community contributions, and the publint.dev integration remains experimental and off by default. Configuration is read from node-modules-inspector.config.ts, with further options documented in JSDoc rather than fully enumerated in the README.

project readme (upstream, from github) — read inline

Logo

Node Modules Inspector

npm version npm downloads bundle JSDocs License

Visualize your node_modules, inspect dependencies, and more.

Quick Start

Try it by running following command under your pnpm/npm/bun project.

pnpx node-modules-inspector
npx node-modules-inspector
bunx node-modules-inspector

Currently supports pnpm, npm, and bun projects. We are counting on the community to bring support for other package managers.

Online Version

You can also try an online version at node-modules.dev, powered by WebContainer.

Configuration

You can create a node-modules-inspector.config.ts file in your project root to configure the inspector's default behaviour.

import { defineConfig } from 'node-modules-inspector'

export default defineConfig({
  defaultFilters: {
    excludes: [
      'eslint',
    ],
  },
  defaultSettings: {
    moduleTypeSimple: true,
  },

  // Experimental publint.dev integration, default is false
  publint: true

  // ...see jsdoc for more options and details
})

Static Build

You can also build a static SPA of your current node_modules status:

pnpx node-modules-inspector build
npx node-modules-inspector build
bunx node-modules-inspector build

Then you can host the .node-modules-inspector folder with any static file server.

You can see a build for all Anthony Fu's packages at everything.antfu.dev.

CLI Reports

In addition to the web UI, the inspector exposes three machine-readable reports designed for shell pipelines and AI coding agents:

npx node-modules-inspector report duplicates   # packages installed in multiple versions
npx node-modules-inspector report sizes        # packages sorted by install size
npx node-modules-inspector report maintainers  # dep-upgrade opportunities + publint, grouped by consumer/author

Each command renders a pretty ANSI table by default. Add --json to emit JSON to stdout — progress logs go to stderr, so output is pipe-safe:

npx node-modules-inspector report duplicates --json | jq '.[].name'
npx node-modules-inspector report sizes --json --limit 10
npx node-modules-inspector report maintainers --json --sort migration --no-latest-only

Common options across all reports: --root , --config , --depth , --limit . Run node-modules-inspector report --help for the full per-report flag set.

MCP Server

The same three reports are exposed as MCP tools for AI coding agents. Start the server over stdio:

npx node-modules-inspector mcp

Tools exposed:

  • nmi:report-duplicates
  • nmi:report-sizes
  • nmi:report-maintainers

Input/output JSON Schemas are auto-derived from the underlying valibot definitions and surfaced via tools/list. Wire it into Claude Code (or any MCP-compatible client) by adding node-modules-inspector mcp as a stdio server in your MCP config.

[!NOTE] An agent skill lives at skills/node-modules-inspector/SKILL.md (repo root) and is copied into the published tarball at /skills/ during prepack. If your project uses skills-npm, the skill is automatically symlinked into your agent's skill directory after pnpm install.

Screenshots

Image Image Image

Credits

Sponsors

Sponsors

License

MIT License © Anthony Fu

Frequently asked questions

Is node-modules-inspector free to use?

node-modules-inspector is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does node-modules-inspector do?

Interactive UI for local node modules inspection

What is node-modules-inspector written in?

node-modules-inspector is primarily written in TypeScript. Its source is publicly available at https://github.com/antfu/node-modules-inspector, and it has 2,954 GitHub stars.