Package Manager
3va install axios --allow-net=registry.npmjs.org # from npm
3va install react@18 --allow-net=registry.npmjs.org # specific version
3va install @std/path --allow-net=jsr.io # from JSR
3va reinstall axios --allow-net=registry.npmjs.org # force-reinstall one package
3va update --allow-net=registry.npmjs.org # update to latest versionsPost-install scripts are blocked by default
preinstall, install, and postinstall lifecycle scripts are never
executed by 3va install unless you explicitly opt out with the
3VA_ALLOW_SCRIPTS=1 environment variable:
3VA_ALLOW_SCRIPTS=1 3va install express --allow-net=registry.npmjs.orgOnly set this for trusted packages and registries — it re-enables exactly the class of attack (arbitrary code execution at install time) the deny-by-default model exists to close.
Storage: global content-addressable dedup
Package storage uses the same model as pnpm: a package at version X is
stored once on disk (in a global store, relocatable via _3VA_STORE, default
~/.3va/store/), and multiple projects reference it while declaring their
own permissions independently — installing the same package in two projects
doesn’t double the disk usage, and doesn’t share one project’s granted
permissions with another.
Audit
3va audit # malware scan + OSV CVE scan (24h cache)
3va audit --secrets # also scan for leaked credentials
3va audit --deny # exit non-zero on CRITICAL/HIGH findings
3va audit --json # machine-readable outputAudit runs in three phases:
- Malware scan — static analysis of
node_modulesfor known malicious patterns. - OSV CVE scan — queries
api.osv.devfor known vulnerabilities; results are cached 24 hours. - Secrets detection (opt-in via
--secrets) — 21 patterns covering AWS keys, GitHub/GitLab tokens, Stripe keys, Slack/SendGrid/Twilio keys, private certificates, JWT secrets, npm tokens, database connection strings, and generic passwords/API keys — scanned over the current project’s source files.
A lighter automatic malware scan already gates every downloaded tarball
during 3va install (using the same scanning engine as 3va audit,
aborting the install on high-severity findings). The full 3va audit
command — OSV/CVE scan and, opt-in, secrets detection — does not run
automatically; run it yourself after adding new dependencies. See
Roadmap for more on this distinction.
Supply-chain checks at install time
- Tarball integrity — SHA-256/SHA-512 verification.
- Dependency-confusion protection —
.npmrc-pinned scopes resolve only against their private registry; public fallback is refused. - Typosquatting detection — edit-distance check against an embedded
popular-packages list, warned during
install. - npm provenance (opt-in strict mode,
--require-provenance) — checks the Sigstore DSSE signature and in-toto subject of registry attestations. It does not yet validate the Fulcio certificate chain to its root or Rekor inclusion proofs — see Roadmap.
For install-time performance (3va vs. npm vs. Bun, same package, same warm-cache condition), see the Comparison table — those CI-measured numbers are the only authoritative source; treat any other install-timing figure as stale.