Skip to Content
GuidePackage Manager

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 versions

Post-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.org

Only 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 output

Audit runs in three phases:

  1. Malware scan — static analysis of node_modules for known malicious patterns.
  2. OSV CVE scan — queries api.osv.dev for known vulnerabilities; results are cached 24 hours.
  3. 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.