Add a dependency

Give a package a local name, import it in your source, and commit the versions Wax selects.

Add the package

Run this from a project containing wax.json and Src/:

wax add Easing @wax/easing "^1.0.3"

Easing is the local name used by your source. @wax/easing is its registry name, and ^1.0.3 is the allowed version range. The command updates wax.json, writes the selected versions and hashes to wax.lock, and installs the source under Packages/.

import Easing from Easing;

float eased = Easing.CubicInOut(progress);

Commit the updated wax.json and the wax.lock this command creates. Ignore Packages/; another checkout can recreate it from the lockfile.

Restore a checkout

wax install

When wax.lock matches wax.json, install uses the locked versions, archive locations, and SHA 512 hashes. It does not search for updates. This is the command to run after cloning a project and in CI.

If every locked archive is already cached, prove the restore no longer needs a registry:

wax install --offline

An offline install fails instead of substituting another version when an archive is missing.

Inspect before updating

wax list
wax outdated

list reads the manifest and lockfile locally. It shows direct aliases and their requested ranges, then the exact direct and transitive versions. outdated asks the registry what is available but changes no files.

To select newer versions allowed by wax.json:

wax update

Review and commit the lockfile change. If the update fails, Wax restores the previous manifest, lockfile, and installed packages.

Remove a dependency

wax remove Easing

The command removes the direct alias and also removes transitive packages no longer reachable from another dependency. It fails without changing the project if the alias is not declared.

Check project health

wax doctor
wax doctor --online

The default check is local and read only. It verifies transaction residue, manifest and lockfile agreement, installed package manifests, source roots, and license material. --online adds registry checks; --auth also verifies the saved account.

For the files these commands maintain, continue with Project files. For version selection and offline caches, read Versions and lockfiles.