hood
hood is a supply-chain firewall. It sits between your fetching tools
and the network and inspects what comes back before the tool that asked
for it gets to run it. Public package, private package, a tarball behind
curl: all the same to hood. Unfamiliar bytes, checked on
your machine first.
Your workflow does not change. You still type npm ci and
pip install. Nothing leaves the building.
The facts, briefly:
- What it checks. Every artifact a fetching command pulls in. Known-good and known-bad hashes and PURLs are decided instantly. Anything unknown is decomposed by cleave and classified by Atomdrift Scan.
- Where it runs. Your machine. No cloud scanner, no API key, no proprietary package sent to a third party, no telemetry.
- How it intercepts. A loopback proxy with a fresh CA per command, trusted only by that command's child process. The host trust store is never touched.
- When in doubt, it stops. A fetch fails closed if
scanning cannot start. Local work such as
go test,cargo build, andnpm testis left alone. - Why it sees new attacks. It judges what an artifact does, not what it is called, so it does not wait for a feed to name the malware.
This is an experiment
hood is an early build, released quietly to see how it behaves in the field. Verdicts, flags, and output will change without notice. There is no stable release. Try it, break it, send back what you find. Do not put it anywhere you cannot take it out again. It may eat your cat.
Coverage
hood install adds user-level shims for the fetching tools
already on your PATH. No system proxy, no root CA, no
package-manager reconfiguration. Anything not listed runs under
hood exec -- <command>. The table compares hood with
three related tools. Only hood classifies the contents of a private
artifact locally; the others decide from a feed or from metadata.
| Tool | hood | PMG | SCFW | Safe Chain |
|---|---|---|---|---|
| curl | ✅ | — | — | — |
| wget | ✅ | — | — | — |
| npm | ✅ | ✅ | ✅ | ✅ |
| npx | ✅ | ✅ | — | ✅ |
| pnpm | ✅ | ✅ | — | ✅ |
| pnpx | ✅ | ✅ | — | ✅ |
| yarn | ✅ | ✅ | — | ✅ |
| rush | ✅ | — | — | ✅ |
| rushx | ✅ | — | — | ✅ |
| bun | ✅ | ✅ | — | ✅ |
| bunx | ✅ | — | — | ✅ |
| pip | ✅ | ✅ | ✅ | ✅ |
| pip3 | ✅ | ✅ | — | ✅ |
| pipx | ✅ | ✅ | — | ✅ |
| uv | ✅ | ✅ | — | ✅ |
| uvx | ✅ | ✅ | — | ✅ |
| poetry | ✅ | ✅ | ✅ | ✅ |
| pdm | ✅ | — | — | ✅ |
| go | ✅ | ◐ | — | — |
| cargo | ✅ | — | — | — |
| brew | ✅ | — | — | — |
| pacman | ✅ | — | — | — |
| yay | ✅ | — | — | — |
| paru | ✅ | — | — | — |
| makepkg | ✅ | — | — | — |
| dnf | ✅ | — | — | — |
| yum | ✅ | — | — | — |
| zypper | ✅ | — | — | — |
| rpm | ✅ | — | — | — |
| apk | ✅ | — | — | — |
| pkg | ✅ | — | — | — |
✅ automatic ◐ experimental or explicit — unsupported. Matrix verified against each project's source, August 2026.
Install — Rust 1.96+
git clone https://github.com/atomdrift-project/hood.git cd hood make install hood install
Restart your shell and use your tools as before. hood uninstall
removes the shims and the shell configuration it wrote.
HOOD_VERBOSE=1 (or -v) prints each verdict and a
summary:
✅ Atomdrift Hood scan passed — 3.2% risk score — package.tgz ⚠️ Atomdrift Hood flagged this download as suspicious — 31.0% risk score — BLOCKED 🛑 Atomdrift Hood blocked a high-risk download — 87.0% risk score