npm-check-updates is a command-line tool that finds and applies newer versions of package dependencies to your package.json file while respecting semantic versioning constraints.
The tool solves the problem of keeping dependencies current without manual version checking. It scans your package.json, queries available versions for each dependency, and identifies upgrades that respect your existing versioning policies—for example, converting "react": "^18.3.1" to "react": "^19.2.7" while maintaining the caret constraint. The tool only modifies package.json itself; you run npm install separately to fetch the actual packages. It works across npm, yarn, pnpm, deno, and bun ecosystems and offers both CLI and programmatic module interfaces.
The tool suits developers who want to stay current with dependencies but need control over which upgrades to apply. Interactive mode lets you select specific packages to update, with sensible defaults that pre-select patch and minor upgrades while flagging major versions for review. The README does not compare it to alternatives. It provides filtering options to target specific packages or exclude others using wildcards, globs, or regex patterns. Color-coded output distinguishes patch upgrades in green, minor in cyan, and major in red.
The project maintains active development with regular updates addressing edge cases and expanding compatibility. The codebase is written in TypeScript and distributed as pure ESM while remaining usable from CommonJS. The tool enforces specific Node.js version requirements and keeps pace with changes in the npm ecosystem.