# nsx sync

Re-vendor each module from nsx.lock at its locked commit. Idempotent: modules whose on-disk content already matches the lock are skipped.

## Usage

```text
nsx sync [-h] [--app-dir APP_DIR] [--frozen] [--force]
                [--timeout SECONDS]
```

## Options

| Option | Value | Default | Description |
| --- | --- | --- | --- |
| --app-dir APP_DIR | value | . | App directory containing nsx.yml |
| --frozen | flag | optional | Error on any drift between nsx.yml, nsx.lock, and modules/ instead of correcting it; modules missing from modules/ are fetched at their locked revision and verified |
| --force | flag | optional | Re-vendor every module even if its content_hash matches the lock |
| --timeout SECONDS | value | optional | Wall-clock budget per subprocess (seconds). Kills the whole process group on timeout. |

`-v/--verbose`, `-q/--quiet` are parsed by `nsx` itself, so they go before the command name, as `nsx -v sync`.
