Is this version known to be bad?
Vulnerability and malware advisories for npm, PyPI, Go and crates.
pkgfire uv
A dependency firewall that checks every package before it is installed. Known vulnerabilities, malware, hijacked releases and code that suddenly does something new are stopped before they reach your machine or your pipeline.
Sign-up is by invitation for now. Join the waitlist with your email and you will hear from us when there is room. Personal accounts get 5,000 free credits every month. Pricing
❯ pkgfire uv add requests Resolving without building anything... $ uv add requests --no-sync --no-build NEW requests@2.32.5 TRANSITIVE certifi charset-normalizer idna urllib3 Scanning 5 changed packages... ✓ advisories ✓ malware patterns ✓ install code ✓ takeover signals
❯ pkgfire npm install some-package $ npm install --package-lock-only --ignore-scripts NEW some-package@1.4.2 TRANSITIVE helper-lib@0.3.1 some-package@1.4.2 HIGH reads credential files ~/.npmrc, ~/.ssh HIGH sends data to a remote host GAINED install code its previous release did not have
❯ pkgfire bun update Resolving dependency changes... UPGRADED fresh-lib 3.0.9 → 3.1.0 fresh-lib@3.1.0 BLOCK release_cooldown Published 2 hours ago, inside the 7-day cooldown. Most malicious releases are pulled within hours. A version this new has not had time to be caught.
❯ pkgfire pnpm install $ pnpm install --lockfile-only --ignore-scripts UPGRADED 23 packages 19 already judged, 4 scanned now ✓ artifacts match the registry's integrity hashes ✓ no known vulnerabilities ✓ nothing gained since the previous release
❯ pkgfire go get example.com/lib@v1.4.0 Checking against the Go checksum database... UPGRADED example.com/lib v1.3.2 → v1.4.0 example.com/lib@v1.4.0 MEDIUM known vulnerability in its HTTP parser ✓ not reachable from your code can: network, files. not: exec, unsafe
Put pkgfire before the command you already type. It works out what would change, checks every package in the result, and runs the real install only when the verdict allows it.
The new dependency graph is worked out with install scripts off and nothing built. Your manifest and lockfile are put back byte for byte.
Every package in the result is checked, not only the changed ones: a cloned lockfile can already pin malware. Each is verified against its registry and opened in an isolated scanner with no credentials in reach.
Your policy turns the evidence into ALLOW, WARN or BLOCK. Every verdict says why, and every one is kept.
Only then does your own npm, pnpm, Bun, uv or Go run, with install scripts still off by default. A block means nothing was installed and nothing ran.
On PyPI the dangerous moment is the build: resolving a source distribution runs its code. pkgfire uv resolves with nothing built and installs wheels only, so a package is judged before any of its code gets a chance to run.
uv.lock and pylock.toml with the full graph, so direct and dev-only packages are known.setup.py and a wheel’s .pth hooks.--pkgfire-allow-scripts.# the commands you know, checked first ❯ pkgfire uv add django ❯ pkgfire uv lock ❯ pkgfire uv sync # or check any lockfile, anywhere ❯ pkgfire scan .
Nearly every real supply-chain attack has the same shape: a hijacked maintainer account publishes a poisoned version, and the registry pulls it within hours. A release cooldown refuses versions younger than seven days, which blocks every one of those attacks without needing to detect anything. PkgFire applies it the same way across every ecosystem it supports, and a release that has been checked and found clean is let through after two days.
Each one answered from the files that would actually land on your disk, not from a package’s description of itself.
Vulnerability and malware advisories for npm, PyPI, Go and crates.
Known malicious patterns: exfiltration, obfuscation, downloaders, typosquats.
Each release is compared with the one before it. New install code, new credential reads or new network access is what a hijack looks like.
Credentials and tokens left inside the published package.
Rules for wallet drainers, worms that publish themselves, workflow writers, credential theft.
For Go, whether a vulnerable function is actually called, and what each module can do.
Provenance, attestations and maintainer changes that do not fit the project’s history.
New npm, PyPI, Go and Cargo releases of the packages you use are reviewed as they are published, and you are told if one turns out to be bad.
Wraps the install commands you already use on macOS and Linux, Intel or ARM.
Any pipeline that can run a shell. A clear exit code, so the job fails only when you want it to.
A check on every pull request that changes a lockfile, on GitHub, Forgejo or Gitea.
Projects, scan history, policies, a package lookup and alerts by email, shared with your team.
One small CLI in front of your existing package manager.
macOS and Linux, on Intel or ARM.
curl -fsSL https://pkgfire.org/install.sh | sh
pkgfire auth set-key
pkgfire bun install pkgfire npm install pkgfire pnpm install pkgfire uv sync pkgfire go mod tidy
Downloads are checked against the published SHA256 checksums.
Sign-up is by invitation for now. Join the waitlist with your email.
Join the waitlist