🎉 hey, I shipped skillcraft.ai — it shows you which dev skills are in demand

Thought you might find it useful. See what's trending, what's fading, and which skills are getting people hired.

Published
2 min read

NPQ: Open source CLI tool that audits and protects your npm installs from malicious packages

A CLI tool that checks packages for security issues and social engineering attacks before they hit your project

I stumbled across the NPQ CLI tool while browsing GitHub, and it addresses something that’s been bugging me for years. Every time you run npm install, you’re basically trusting random strangers on the internet not to mess with your computer.

NPQ sits between you and npm, checking packages for sketchy behavior before they touch your project. Here’s the general idea:

Terminal window
➜ npm install -g npq
➜ npq install next
Packages with issues found:
┌─
│ > next@latest
│
│ ✖ Supply Chain Security · Detected a recently published version (published 2 days ago) - consider waiting for community review
└─
Summary:
- Total packages: 1
- Total errors: 1
- Total warnings: 0
Continue install ? (y/N) n

Why Audit Your Packages?

Here’s what happens when you install a package. You type npm install package and suddenly you’ve downloaded code from someone you’ve never met. That code runs on your machine with your permissions. It can read files, make network requests, and do whatever it wants.

Most packages are fine. But some aren’t. Maybe they’re typosquatting popular libraries. Maybe they’re trying to steal your environment variables. Maybe they’re just poorly maintained and full of vulnerabilities.

You probably don’t check every package manually. Who has time for that?

NPQ acts like a bouncer for your npm installs. When you try to install something, it checks a bunch of things first:

[1] The package name looks legitimate and isn’t trying to impersonate something popular.

[2] The maintainer has a reasonable history and isn’t brand new with no other packages.

[3] The package doesn’t have obvious red flags like requesting unnecessary permissions or making suspicious network calls.

If something looks wrong, NPQ blocks the install and tells you why. If everything checks out, your install proceeds normally.

Since npq is a pre-step to ensure that the npm package you’re installing is safe, you can safely embed it in your day-to-day npm usage so there’s no need to remember to run npq explicitly.

Terminal window
alias npm='npq-hero'

Found this article helpful? You might enjoy my free newsletter. I share dev tips and insights to help you grow your coding skills and advance your tech career.


Check out these related articles that might be useful for you. They cover similar topics and provide additional insights.

Webdev
14 min read

What's new in Next.js 16

Async params, Turbopack by default, and the cleanup of experimental features

Oct 25, 2025
Read article
Webdev
4 min read

CSS :interest-invoker and :interest-target Pseudo-Classes

Style connected UI elements with CSS pseudo-classes that respond to user interest. Interactive examples showing tooltips, forms, and navigation without JavaScript.

Nov 12, 2025
Read article
Webdev
3 min read

CSS ::target-text for Text Highlighting

A look at how browsers can highlight text fragments using CSS ::target-text, making text sharing and navigation more user-friendly

Dec 17, 2024
Read article
Webdev
8 min read

Stop Using localStorage for Sensitive Data: Here's Why and What to Use Instead

Understanding the security risks of localStorage and what to use instead for tokens, secrets, and sensitive user data

Oct 28, 2024
Read article
Webdev
36 min read

IndexNow: Get your content indexed instantly by AI search engines and traditional search

Stop waiting weeks for crawlers. Learn how to notify Bing, DuckDuckGo, ChatGPT, and Perplexity instantly when you publish new content using the free IndexNow protocol

Oct 27, 2025
Read article
Webdev
4 min read

Explicit is better than implicit

Clarity is key: being explicit makes your code more readable and maintainable.

Sep 4, 2024
Read article
Webdev
3 min read

CSS Supports Nesting Now

CSS nesting is finally supported in all major browsers. Write cleaner, organized stylesheets without Sass or Less

Dec 6, 2024
Read article
Webdev
4 min read

Remove Unnecessary NPM Packages with eslint-plugin-depend

We don't need packages to handle basic JavaScript tasks

Aug 13, 2024
Read article
Webdev
3 min read

::details-content: style expandable content without wrapper divs

The ::details-content pseudo-element lets you style the expandable content of details elements separately from the summary, no divs needed.

Nov 11, 2025
Read article

This article was originally published on https://www.trevorlasn.com/blog/npq-protects-npm-installs-from-malicious-packages. It was written by a human and polished using grammar tools for clarity.