PAGES
← all tools
◆ Software Supply Chain Security

npq

v3.27.0 open-source

npq audits npm packages before installation by checking vulnerabilities, package age, download count, README, license, and install scripts.

Summary

npq is an open-source command-line tool, free to use, that audits npm packages for vulnerabilities, suspicious scripts, typosquattingtyposquattingUsing a name close to a trusted domain or software package to catch spelling mistakes. Attackers use it to lure people or installers to a malicious lookalike., and other risk signals before they're installed, typically invoked as npx npq install <package> in place of a plain npm install. It's aimed at application developers and the platform or security engineers who set install-time policy for a team, and it fits naturally into CI, where its --json flag produces a versioned, machine-readable audit report for pipelines or SIEMSIEMSecurity information and event management, collecting logs from many systems and correlating events to find suspicious activity. Analysts use it to investigate alerts and incidents. ingestion without proceeding to install. It supports authenticated private and custom registries, reading standard npm registry configuration for auth and TLS, and it corroborates expired-domain warnings against RDAPRDAPA JSON-based protocol for querying domain and IP registration data, standardized by the IETF as a modern replacement for WHOIS, giving cyber tools structured, machine-readable ownership and contact lookups. rather than relying on DNS alone. It sits in the appsec space, addressing dependency risk at install time rather than after the fact, and with 30 contributors, 82 commits and a release 29 days ago, it's under active development.

npq audits npm packages before installation by checking vulnerabilities, package age, download count, README, license, and install scripts.

How npq helps

Is this package safe to install before it lands in my project?

runs vulnerability, suspicious-script, and typosquatting checks against the package and its metadata, and reports the verdict before anything is installed

Is that expired-looking maintainer domain actually abandoned?

flags the domain only when DNS returns no record and the authoritative RDAP registry independently confirms no active registration, cutting false alarms from DNS lookups alone

Which packages need a human to look closer, and what should they check next?

for packages that fail on version maturity, names the highest older version published outside the recency window as a concrete candidate to audit instead

Can my pipeline block on this without a person watching the prompts?

emits a versioned JSON report that skips interactive prompts and stops before install, so CI or a SIEM can consume the result programmatically

Will this run safely inside an automated or headless step without hanging on a prompt?

detects non-interactive and coding-agent environments and switches to JSON-safe parsing and output automatically, or can be explicitly authorized to proceed with install

Does this still work against my private or internal package registry?

reads the standard npm registry configuration for auth, proxies, TLS, and client certs, and routes metadata, signing, and provenance lookups through that same authenticated registry, reporting capabilities as not evaluated when the registry doesn't support them

all 18 features, with the evidence for each →

Languages

Not documented

Features

18 capabilities

Built from npq's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

  • npq covers 1 of the 5 supply chain security capabilities we track.

What npq offers you

  • CI/CD pipeline integration4
  • Command-line interface4
  • JSON data export2
  • Plugin system1
All capabilities 18 capabilities
Machine-readable JSON audit output shipped Emits a versioned JSON audit report via a CLI flag, bypassing interactive prompts and capturing incomplete check results, so CI pipelines and scripted toolchains can consume audit signals programmatically without triggering an install. 6 releases · 4 other sources · first seen Dec 2019

Also counts toward: CI/CD pipeline integration, Command-line interface, JSON data export

release

  • New versioned JSON audit report output format is now defined and supported for structured consumption v3.24.0 · Aug 2026 · source · release history
  • npq --json enables a new non-interactive JSON audit command to parse audit results v3.24.0 · Aug 2026 · source · release history
  • Adds --json CLI flag that emits a versioned JSON audit report and never proceeds to install, enabling CI and scripted pipelines to consume npq results programmatically. v3.24.0 · Aug 2026 · source · release history
  • Captures and surfaces incomplete audit check results within the JSON report so callers can distinguish fully-evaluated from partially-evaluated signals. v3.24.0 · Aug 2026 · source · release history
  • Routes --json invocations to an audit-only output path, bypassing interactive prompts and auto-continue behaviour. v3.24.0 · Aug 2026 · source · release history
  • Adds lockfile-lint enforcement of lockfile security v1.15.0 · Dec 2019 · source · release history

example

  • Audit a package in CI and capture the machine-readable result without triggering an install — useful for policy checks or SIEM ingestion. npq install express --json v3.24.0 · Aug 2026 · source
  • Run npq in a CI pipeline or headless environment where colorful spinners are unsupported or noisy. npq install --plain v3.9.0 · Jul 2025 · source
  • Machine-readable JSON audit output npq install express --json
  • Force plain text output npq install express --plain
Repository structure validation shipped Validates the npm package repository structure and registry data integrity against a local marshall configuration before installation. 6 releases · 3 other sources · first seen Jun 2018

release

  • Adds archived repository state as an available signal source for npm package analysis. v3.16.0 · Dec 2025 · source · release history
  • Adds the --no-continue flag to prevent automatic continuation after checking package outcomes v3.15.0 · Nov 2025 · source · release history
  • Revamped package author check logic to better detect potential package compromise v3.2.0 · Sep 2023 · source · release history
  • Introduces new provenance marshall v2.5.0 · Sep 2023 · source · release history
  • New marshall mode that compares package signatures with repository keys v2.4.0 · Sep 2023 · source · release history
  • Adds --marshal flag to validate repository structure against a marshall configuration. v1.13.0 · Jun 2018 · source · release history

example

  • Check dependencies and fail if any use a package in an End-of-Life (EOL) or obsolete state. npq check --version-maturity eol v3.6.0 · Jun 2025 · source
  • Verify package integrity by comparing signatures against repo keys. npq marshall <package> v2.4.0 · Sep 2023 · source
  • Validate the npm package registry data integrity before installation using a local marshall config. npq install --marshal v1.13.0 · Jun 2018 · source
Coding-agent environment auto-detection shipped Automatically detects when npq is running inside an AI coding-agent environment and defaults to JSON output and JSON-safe package parsing, rejecting inputs that are unsafe to process in that context. 7 releases · first seen Aug 2026

Also counts toward: JSON data export

release 7 total

  • Expands coding-agent detection signals to more accurately identify when npq is running inside an AI coding agent environment. v3.26.0 · Aug 2026 · source · release history
  • Detects when npq is running inside a coding agent environment v3.25.0 · Aug 2026 · source · release history
  • Default audit output changed to JSON format for coding agents v3.25.0 · Aug 2026 · source · release history
  • Defaults audit output to JSON format when a coding-agent environment is detected, enabling structured, machine-readable results without manual flags. v3.25.0 · Aug 2026 · source · release history
  • Detects coding-agent environments automatically and defaults both audit output and package parsing to JSON mode when running inside one. v3.25.0 · Aug 2026 · source · release history
  • Defaults package parsers to JSON-safe mode in coding-agent environments, rejecting inputs like credential-bearing URLs that are unsafe to process as JSON. v3.25.0 · Aug 2026 · source · release history
Expired-domain maintainer risk detection shipped Warns when a package maintainer's domain appears expired by corroborating DNS NXDOMAIN results with RDAP registry lookups, suppressing warnings when evidence is inconclusive. 6 releases · 1 other source · first seen Dec 2017

release

  • Adds RDAP corroboration for expired-domain warnings: a warning is only emitted when DNS returns NXDOMAIN *and* the authoritative RDAP service confirms no active registration, reducing false positives from DNS-only failures. v3.22.0 · Jul 2026 · source · release history
  • Adds RDAP protocol support to corroborate expired-domain warnings v3.22.0 · Jul 2026 · source · release history
  • Reports inconclusive RDAP evidence (unsupported TLDs, timeouts, rate limits, multipart suffixes, malformed names) as not evaluated rather than blocking installs. v3.22.0 · Jul 2026 · source · release history
  • Routes RDAP lookups through the official IANA DNS bootstrap registry with HTTPS enforcement, 3-second timeouts, no redirects, and process-lifetime caching. v3.22.0 · Jul 2026 · source · release history
  • marshalls feature adds author identification to detect when a package maintainer has transferred ownership of the published npm package. v1.10.0 · Apr 2018 · source · release history
  • Adds packageVersionMaps configuration support to map packages and their specific versions v1.4.0 · Dec 2017 · source · release history

example

  • Run a strict CI check allowing only packages in Long Term Support (LTS) states. npq check --version-maturity lts v3.6.0 · Jun 2025 · source
Custom and private registry support shipped Allows per-invocation configuration of custom or private registries — including authenticated, proxied, and TLS-configured ones — via CLI flags and standard npm config files, routing all metadata and attestation lookups through a shared authenticated client. 5 releases · 1 other source · first seen Jul 2026

Also counts toward: Command-line interface

release

  • Reports signing, provenance, and download-count capabilities as NOT EVALUATED (rather than failures) when the selected registry does not expose those services. v3.21.0 · Jul 2026 · source · release history
  • Adds --registry, --userconfig, and --globalconfig CLI flags to explicitly set the registry and npm config paths per invocation. v3.21.0 · Jul 2026 · source · release history
  • Supports NPM_REGISTRY_URL, NPM_REGISTRY_USER, and NPM_REGISTRY_PASSWORD environment variables for configuring authenticated custom registries v3.21.0 · Jul 2026 · source · release history
  • Adds --registry and --registry-user / --registry-password arguments to specify and authenticate against a custom npm registry v3.21.0 · Jul 2026 · source · release history
  • Supports authenticated custom registries: reads standard npm registry configuration (auth, proxies, TLS, client certs) from .npmrc and routes all package metadata, manifest, signing-key, and attestation lookups through a shared authenticated registry client. v3.21.0 · Jul 2026 · source · release history

example

  • Audit and install a private scoped package from an Artifactory registry, passing registry auth inline — useful in CI where you can't rely on a pre-configured .npmrc. npq install @company/tool --registry=https://artifactory.example.com/artifactory/api/npm/npm-virtual/ v3.21.0 · Jul 2026 · source
Snyk vulnerability integration shipped Integrates with the Snyk API to query for and identify vulnerable packages via a dedicated CLI flag. 4 releases · 2 other sources · first seen Jan 2018

release

  • Adds SNYK_API_URL and SNYK_TOKEN environment variables to configure custom Snyk endpoint and authentication v3.14.0 · Oct 2025 · source · release history
  • Add osv database as vulnerabilities fallback for enhanced detection coverage. v3.9.0 · Jul 2025 · source · release history
  • Switches package vulnerability checks to use the Snyk snyk test API endpoint v1.16.0 · Sep 2020 · source · release history
  • Adds snyk.marshall CLI flag to query for vulnerable packages using the Snyk API v1.6.0 · Jan 2018 · source · release history

example

  • Point npq at a private Snyk instance using your workspace token. SNYK_API_URL=https://snyk.company.io/api/v1 SNYK_TOKEN=sk_abc123 npq check package-lock.json v3.14.0 · Oct 2025 · source
  • Install with Snyk marshall disabled MARSHALL_DISABLE_SNYK=1 npq install express
Manual audit and installation blocking shipped Allows inspecting packages for vulnerabilities without automatically proceeding to install, enforcing a manual verification step before continuation. 1 release · 3 other sources · first seen Nov 2025

release

  • Adds the --no-continue flag to prevent automatic continuation after checking package outcomes v3.15.0 · Nov 2025 · source · release history

example

  • Inspect a package for vulnerabilities without automatically proceeding to install it, ensuring you verify the results manually first. npq --no-continue install <package-name> v3.15.0 · Nov 2025 · source
  • Audit express without installing npx npq install express --dry-run
  • Disable auto-continue countdown on warnings npq install express --disable-auto-continue
Persistent execution proxying shipped Automates the registration of shell aliases to route `npx` commands through the cyber tool, ensuring security checks are applied to all future package executions without manual intervention. 2 releases · 2 other sources · first seen Oct 2020

release

  • Adds the --top flag to enable downloading and distributing top downloaded packages for checks v3.3.0 · Nov 2023 · source · release history
  • npq install now generates and registers a shell alias so npx commands are automatically routed through npq. v2.0.0 · Oct 2020 · source · release history

example

  • Check dependencies using the distribution of top downloaded packages. npq --top v3.3.0 · Nov 2023 · source
  • Set up a persistent shell alias that routes all future npx calls through npq to check package security before execution. npq install v2.0.0 · Oct 2020 · source
End-of-Life and obsolete package detection shipped Identifies packages that have reached End-of-Life (EOL), obsolete status, or lack Long Term Support (LTS) to prevent the use of unsupported software. 1 release · 2 other sources · first seen Jun 2025

Also counts toward: CI/CD pipeline integration

release

  • Adds NPQ_ALLOW_NON_INTERACTIVE_INSTALL=true environment variable as an alternative to the CLI flag for authorizing non-interactive install routing in pipelines and scripts. v3.27.0 · Aug 2026 · source · release history

example

  • Check dependencies and fail if any use a package in an End-of-Life (EOL) or obsolete state. npq check --version-maturity eol v3.6.0 · Jun 2025 · source
  • Run a strict CI check allowing only packages in Long Term Support (LTS) states. npq check --version-maturity lts v3.6.0 · Jun 2025 · source
Non-interactive installation authorization shipped Allows explicitly authorizing package installs in non-interactive or headless CI environments via CLI flags or environment variables. 1 release · 2 other sources · first seen Aug 2026

Also counts toward: CI/CD pipeline integration, Command-line interface

release

  • Adds --allow-non-interactive-install CLI flag to explicitly authorize npq installs in non-interactive (CI/automated) environments, routing them safely instead of blocking. v3.27.0 · Aug 2026 · source · release history

example

  • Use the CLI flag directly in a CI script step to allow non-interactive routing without setting environment variables. npq install express --allow-non-interactive-install v3.27.0 · Aug 2026 · source
  • Authorize a package install in a headless CI pipeline where no TTY is present, so npq proceeds rather than blocking. NPQ_ALLOW_NON_INTERACTIVE_INSTALL=true npq install express v3.27.0 · Aug 2026 · source
Alternative-version suggestion for immature packages shipped When a package fails the version-maturity check, surfaces the highest older semver published outside the recency window as an actionable audit candidate, rendered across all output formats. 3 releases · first seen Jul 2026

release

  • Adds an alternative-version suggestion to version-maturity failures, surfacing the highest older semver published outside npq's 30-day recency window so practitioners have an actionable candidate to audit next. v3.23.0 · Jul 2026 · source · release history
  • Renders the suggestion in rich, plain, and JSON output without affecting issue counts, and suppresses it automatically for packages flagged as malicious. v3.23.0 · Jul 2026 · source · release history
  • Adds logic to suggest older package releases that fall outside standard recency windows. v3.23.0 · Jul 2026 · source · release history
Typosquatting detection shipped Detects malicious lookalike packages by checking candidates against a maintained dataset of known typosquatting entries. 3 releases · first seen Dec 2017

release

  • Updates the typosquatting package dataset to replace stale entries, improving detection of malicious lookalike packages. v3.20.0 · Jul 2026 · source · release history
  • readme.marshall now recognizes npm's security placeholder package. v1.5.0 · Jan 2018 · source · release history
  • npq now presents a summary report and prompts to continue or abort execution v1.3.0 · Dec 2017 · source · release history
Configurable package content marshallers shipped Extends the cyber tool with pluggable marshallers to parse README files and handle downloaded package contents during audits. 3 releases · first seen Dec 2017

Also counts toward: Plugin system

release

Strict dependency scanning depth and scope shipped Supports scanning direct dependencies of a project with specific version pattern matching capabilities. 3 releases · first seen Jun 2025

Shared capability: Dependency scanning

Also counts toward: Command-line interface

release

  • Scan direct packages of project with new scanning depth capability. v3.9.0 · Jul 2025 · source · release history
  • Show category id in the output for better issue context. v3.9.0 · Jul 2025 · source · release history
  • Implements version maturity filtering via the new --version-maturity CLI flag v3.6.0 · Jun 2025 · source · release history
Dormant maintainer detection shipped Includes signals from dormant maintainers in supply chain security checks. 1 release · 1 other source · first seen Apr 2026

release

  • Adds --dormant-maintainers flag to include maintainer dormancy signals in supply chain security checks. v3.19.0 · Apr 2026 · source · release history

example

  • Scan a package for risks including dormant maintainers during CI. npq --dormant-maintainers v3.19.0 · Apr 2026 · source
CI/CD blocking exit codes shipped Returns non-zero exit codes when security or quality issues are detected to allow CI/CD pipelines to block execution. 1 release · first seen Apr 2026

Also counts toward: CI/CD pipeline integration

release

  • Adds non-zero exit codes when npq scan detects security or quality issues, enabling CI/CD blocking v3.17.0 · Apr 2026 · source · release history
Archived repository analysis shipped Analyzes package signals specifically from archived GitHub repositories to provide context when live data is unavailable or stale. 1 other source · first seen Dec 2025

example

  • Analyze a package specifically using signals from its archived GitHub repository instead of live commits. npq <package-name> --signal-type archived v3.16.0 · Dec 2025 · source
Malicious package script alerting shipped Enables alerting when a package contains potentially malicious scripts by utilizing the scripts.marshall configuration key. 1 release · first seen Jan 2018

release

  • Introduces the scripts.marshall configuration key to enable alerting on malicious package scripts v1.8.0 · Jan 2018 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for npq, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail npq puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

40 entries

  1. August 20264
  2. July 20264
  3. April 20262
  4. December 20251
  5. November 20251
  6. October 20251
  7. August 20252
  8. July 20252
  9. June 20253
  10. November 20231
  11. September 20234
  12. January 20231
  13. October 20201
  14. September 20201
  15. December 20191
  16. June 20182
  17. April 20181
  18. January 20185
  19. December 20173
    Show

    40 entries

    Project health

    Issue, contributor and maintainer activity in lirantal/npq, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 4 ±0 vs prior 12 months
    2. Maintainers 1 +0 joined · −0 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 83% of issues opened, last 12 months
    5. Median time to close 55 days first maintainer reply 4.1 days
    6. Open backlog 5 of 124 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 5
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 1,795
    Issue themes, last 12 months
    • bugs 21%
    • features 32%
    • questions 16%
    • docs 5%
    • other 26%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →