MCPInstall

npm-check-updates

Upgrade package.json dependencies to the latest versions with npm-check-updates (ncu). Use when the user wants to check for outdated dependencies, upgrade package versions, filter or reject specific packages, target a specific version range (latest, greatest, minor, patch, semver, @tag), scan a single or multiple package files (--deep, --workspaces, --packageFile), run interactive selection (--interactive), detect breaking upgrades by running tests after each bump (--doctor), defend against supply-chain attacks with --cooldown, query private or alternate registries, or use the programmatic API from a .ncurc.js config or a Node module.

Installs
438
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/ilteoood/harness --skill npm-check-updates
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads npm-check-updates automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

npm-check-updates (ncu)

npm-check-updates upgrades your package.json dependencies to the latest versions while preserving your existing version-range policy (^17.0.2 → ^18.3.1). It only modifies package.json; the user must run their package manager's install command (e.g. npm install) to update package-lock.json and node_modules.

The CLI is exposed as npm-check-updates and the shorter ncu. The library is pure ESM, importable from Node (and loadable from CommonJS via require()).

When to reach for this skill

  • Listing outdated dependencies in a project.
  • Bumping versions in package.json to the newest available (dry run, interactive, or write to disk).
  • Bulk-upgrading with filters, rejections, peer-dependency awareness, or engine constraints.
  • Scanning monorepos (workspaces, --deep, custom globs).
  • Safer upgrades via cooldown windows or the iterative --doctor mode.
  • Driving ncu programmatically from a Node script or a .ncurc.* config.

Quick start

# Dry run: print upgrades without touching files.
ncu

# Write the upgrades back into package.json, then install.
ncu -u
npm install

# Interactively pick which packages to upgrade.
ncu -i

# Only a subset of packages.
ncu -f "react,react-dom"
ncu "/^@types\//"

# Bump only patch / minor versions.
ncu --target patch
ncu --target minor

# Skip a package.
ncu -x typescript,eslint

Critical flags

FlagPurpose
-u, --upgradeOverwrite package.json (required for non-dry-run behaviour).
-i, --interactivePick packages from a checklist. Implies -u unless a JSON output is set.
-t, --target <value>latest (default), newest, greatest, minor, patch, semver, or @<tag> (e.g. @next, @beta).
-f, --filter <p>Include only matching names. Accepts strings, wildcards, globs, comma or space lists, /regex/, or a predicate (in .ncurc.js).
-x, --reject <p>Exclude matching names. Same matcher syntax as --filter. Prefix ! works on positional args (ncu \!nodemon).
-g, --globalInspect globally installed packages instead of the local project.
-p, --packageManager <s>npm, yarn, pnpm, deno, bun, or staticRegistry.
-d, --doctorIteratively install and test each upgrade to isolate breaking changes. Requires -u.
-c, --cooldown <period>Skip versions published within the window. 7 / 7d days, 12h hours, 30m minutes. Mitigates supply-chain risk.
--peerRespect peer-dependency constraints when picking a version.
--enginesNodeOnly consider versions compatible with the project's engines.node.
--deepRecurse into every package.json under the cwd.
-w, --workspacesOperate on every workspace (npm, yarn, pnpm). Pair with --no-root to exclude the root.
--workspace <s>Operate on the named workspace(s). Pair with --no-root to exclude the root.
--packageFile <p>Override the default package.json location. Accepts globs (packages/*/package.json).
-j, --jsonAllOutput the new full package.json.
--jsonDepsLike --jsonAll but only the dependency fields.
--jsonUpgradedOutput the upgraded dependencies as JSON.
--format <value>Comma list: dep, group, ownerChanged, repo, time, lines, installedVersion, cooldown.
-l, --loglevel <n>silent, error, minimal, warn (default), info, verbose, silly.
-e, --errorLevel <n>1 (default) or 2. 2 is CI-friendly: exit 0 when nothing needs updating.
--cacheCache registry lookups. Default file: ~/.ncu-cache.json. Default TTL: 10 minutes.
--cacheFile <path>Cache file path.
--cacheExpiration <min>Cache TTL in minutes.
--registry <uri>Custom registry.
--registryType <type>npm (default) or json (a static JSON catalog).
--install <value>always, never, or prompt (default). Run install after -u?
--pre <n>Include prerelease versions. Auto-enabled for --target newest or greatest and when the current version is prerelease.
--minimalSkip upgrades whose range already satisfies the latest per semver.
--removeRangeStrip the range operator and pin to the exact version.
--timeout <ms>Global timeout. Per-request default: 30 seconds.
--retry <n>Retries on failed registry requests (default: 3).
--doctorInstall <cmd>Override install command used by --doctor.
--doctorTest <cmd>Override test command used by --doctor.
--mergeConfigWith --deep or a glob, merge each found config with the root config.
--rootInclude the root project alongside the specified workspaces.
--stdinRead package.json from stdin.
--packageData <value>Pass package.json content as a string.

Config file (.ncurc.*)

ncu reads config from these locations (later overrides earlier): CLI flags → local .ncurc.* → project .ncurc.* → $HOME/.ncurc.*.

Supported file types: .ncurc, .ncurc.json, .ncurc.yaml, .ncurc.yml, .ncurc.js, .ncurc.mjs, .ncurc.cjs.

From v21 the project is pure ESM, so .ncurc.js should use ESM export default; CJS configs must use .cjs.

A .ncurc.js is also the only place to use predicate functions, e.g.:

export default {
  filter: name => !name.startsWith('internal-'),
  reject: ['@types/*'],
  target: 'minor',
  cooldown: 7,
  doctor: false,
}

Programmatic API

import ncu from 'npm-check-updates'

const upgraded = await ncu({
  packageFile: './packages/app/package.json',
  filter: ['react', 'react-dom'],
  target: 'latest',
  upgrade: true, // write back to disk
})

console.log(upgraded) // { 'react': '^18.3.1', 'react-dom': '^18.3.1' }

Run it directly with Node:

node ./scripts/check-deps.ts

Recommended workflows

Safest upgrade path

  1. Ensure the working tree is committed.
  2. Run ncu --cooldown 7 to skip recently published versions.
  3. Run ncu -u to write updates.
  4. Run npm install (or the equivalent for the active package manager).
  5. Run the test suite and commit if green.

Detect breaking upgrades automatically

ncu --doctor -u

Reverts broken upgrades one at a time and prints the offender.

Monorepos

# All workspaces, including the root.
ncu -uw

# All packages.json files under the cwd.
ncu --deep -u

# A specific glob, merging root config.
ncu --packageFile 'packages/*/package.json' --mergeConfig -u

Custom registry / private mirror

ncu --registry https://npm.example.com --packageManager npm

# Or a static JSON catalog hosted anywhere.
ncu --registry https://example.com/versions.json --registryType json

Pitfalls and gotchas

  • ncu only writes package.json. Lockfile and node_modules updates require a separate install step.
  • --doctor modifies the lockfile and node_modules. Use a clean tree.
  • The default CLI name ncu collides with ncu-weather-cli and Nvidia CUDA's ncu on some systems. Fall back to npm-check-updates if output is unexpected.
  • On Windows, prefer --packageFile package.json if ncu appears to hang. It is sometimes waiting for stdin.
  • The cooldown value is read from min-release-age (npm), npmMinimalAgeGate (yarn), or pnpm-workspace.yaml's minimumReleaseAge (pnpm) when --cooldown is not given.
  • Pure ESM since v21.0.0. .ncurc.js must be ESM (export default); CJS configs need .cjs extension.
  • --format cooldown requires registry time data. Some mirrors do not expose it. Use a public registry if nothing is reported.

Verification cheatsheet

# Show all CLI options.
ncu --help

# Extended help for a single flag.
ncu --help --filter
ncu --help --target
ncu --help --cooldown
ncu --help --doctor

FAQ

What does the npm-check-updates skill do?

Upgrade package.json dependencies to the latest versions with npm-check-updates (ncu). Use when the user wants to check for outdated dependencies, upgrade package versions, filter or reject specific packages, target a specific version range (latest, greatest, minor, patch, semver, @tag), scan a single or multiple package files (--deep, --workspaces, --packageFile), run interactive selection (--interactive), detect breaking upgrades by running tests after each bump (--doctor), defend against supply-chain attacks with --cooldown, query private or alternate registries, or use the programmatic API from a .ncurc.js config or a Node module.

How do I install npm-check-updates?

Run npx skills add https://github.com/ilteoood/harness --skill npm-check-updates in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/npm-check-updates/ (personal) or .claude/skills/npm-check-updates/ (project).

Which AI agents can use npm-check-updates?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is npm-check-updates safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains npm-check-updates?

It is published by ilteoood in ilteoood/harness. It has 438 recorded installs.

More from ilteoood/harness

View all →

github-issues

ilteoood/harness

Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, manage repository labels, set issue fields (dates, priority, custom fields), set issue types, manage issue workflows, link issues, add dependencies, or track blocked-by/blocking relationships. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", "set the priority", "set the start date", "create a label", "rename a label", "list repo labels", "link issues", "add dependency", "blocked by", "blocking", or any GitHub issue management task.

git-commit

ilteoood/harness

Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping

conventional-commit

ilteoood/harness

Prompt and workflow for generating conventional commit messages using a structured XML format. Guides users to create standardized, descriptive commit messages in line with the Conventional Commits specification, including instructions, examples, and validation.

create-technical-spike

ilteoood/harness

Create time-boxed technical spike documents for researching and resolving critical development decisions before implementation.

539 installs

codeql

ilteoood/harness

Comprehensive guide for setting up and configuring CodeQL code scanning via GitHub Actions workflows and the CodeQL CLI. This skill should be used when users need help with code scanning configuration, CodeQL workflow files, CodeQL CLI commands, SARIF output, security analysis setup, or troubleshooting CodeQL analysis.

DevOps & Cloud538 installs

create-specification

ilteoood/harness

Create a new specification file for the solution, optimized for Generative AI consumption.

Media & Creative538 installs

Popular backend & apis skills

View category →

find-skills

vercel-labs/skills

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

OfficialBackend & APIs4.1M installs

entra-app-registration

microsoft/azure-skills

Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.

OfficialBackend & APIs566.7K installs

This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).

Backend & APIs514.8K installs

embedded-captions

heygen-com/hyperframes

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.

Backend & APIs453.3K installs

entra-agent-id

microsoft/azure-skills

Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).

OfficialBackend & APIs336.6K installs

neon

neondatabase/agent-skills

Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.

Backend & APIs237.1K installs