Skip documentation navigation
Security & Trust
Docs/Usage/Security & Trust
Security & Trust
Cloning a repository never runs its config, and every binary avm downloads is verified before it's unpacked.
Trusting a project
A project's .avm.json aliases and env, and its .env files, run with your privileges and reach every shimmed node/java. So avm ignores them until you trust that exact file content. Tool pins only pick a version and always apply.
$ cd cloned-repo $ avm trust # shows the aliases/env it enables, then trusts them $ avm trust --list # everything you've trusted $ avm trust --revoke # stop trusting this directory
- Trust is stored as path → sha256 in
~/.avm/trusted.json. Any edit made outside avm blocks the file again;avm init,avm addandavm env addkeep a trusted file trusted. - Your global
~/.avm.jsonis always trusted and can list"trusted_paths": ["~/work/**"]. AVM_TRUST_ALL=1trusts everything, for CI. It's never implied byCI=true.
Verified downloads
- Plugins:
avm plugin addchecks the archive against the release'schecksums.txtbefore extracting. A mismatch aborts with nothing installed. - Runtimes: Node.js is checked against
SHASUMS256.txt, Temurin JDKs against foojay's sha256, and the Android cmdline-tools zip against a pinned sha256 (sdkmanagerverifies the rest). - avm itself:
install.sh,install.ps1and the npm installer verifyavm-binthe same way. - Provenance: every release carries a GitHub build attestation. Check it with
gh attestation verify <archive> --owner PrajaNova. AVM_ALLOW_UNVERIFIED=1is the only way to skip verification.