Skip to content

title: Command Reference

VIPM CLI Command Reference

Use this page to look up syntax, options, and common workflows for the most frequently used VIPM CLI commands. For additional details, remember that vipm help lists every command and vipm <command> --help prints the authoritative help text for a single command.

vipm.toml Commands (Preview)

Looking for vipm init, vipm add, vipm remove, vipm lock, or vipm clean? These commands work with the new vipm.toml project configuration format. See the vipm.toml Getting Started guide for details. For managing NI packages (NIPM) in vipm.toml, see NI Packages (NIPM).

Global Options

These options are available on every command unless noted otherwise. Every command also accepts -h / --help, which prints the authoritative help text for that command.

Option Description
--labview-version <YYYY> Performs the operation on or using the specified LabVIEW version. Accepts only YYYY format (4-digit year, e.g., 2020, 2024, 2025). Use --labview-bitness for 32/64-bit selection
--labview-bitness <32|64> Selects 32-bit or 64-bit LabVIEW. Can be supplied with or without --labview-version; complements a year resolved from any source
--color-mode <auto|always|never> Control when to use colored output (default: auto)
--timeout <SECONDS> Maximum time (in seconds) to wait for the operation to complete. Use -1 to wait indefinitely. The default varies by command and is longer in CI environments than locally
--show-progress Show real-time progress from VIPM Desktop during operations
-v, --verbose Show verbose diagnostic output (API calls, timing, file paths)

Exit Codes

Every command returns exit code 0 on success and a non-zero value on failure. The codes are stable — once assigned, a value never changes meaning, so automation scripts can branch on them safely. A given command emits only the subset relevant to its operation; consult the per-command "Common Issues" notes for command-specific guidance.

Code Meaning
0 Success
1 Unexpected or unclassified error
2 Invalid arguments or failed input validation. Also covers vipm.lock being stale or incomplete during dependency-state verification (run vipm lock, or pass --allow-package-drift).
4 Requested LabVIEW version is not installed
6 Insufficient edition, license, or activation
8 File system or IO failure
11 LabVIEW build operation failed (compilation error, App Builder failure, etc.) — vipm build only
12 Named build target not found in the project
13 Input file is not a supported type
14 Input file exists but is malformed
15 A required file does not exist
17 Installed packages disagree with the project's declared state in vipm.toml or vipm.lock. Use --allow-package-drift to override. Applies to vipm build and vipm sbom.
18 One or more files referenced by the scanned project could not be found on disk. Use --allow-missing-files to override. vipm sbom only.

Commands may additionally emit codes not listed here (e.g., authentication, network, or interruption failures). vipm <command> --help is the authoritative source for each command. On failure, stderr always contains a human-readable error message.

Command Quick Look

Command Summary
vipm install Install packages, .vipc, .vip, .ogp, or .dragon files.
vipm uninstall Remove packages from the selected LabVIEW installation.
vipm list List installed packages or inspect a .vipc/.dragon file.
vipm info Show metadata and installed files for a package.
vipm refresh Refresh all package sources (VIPM Desktop, CLI cache, NIPM feeds).
vipm activate Activate VIPM Pro using a serial number, name, and email.
vipm build Build packages from .vipb specs or LabVIEW project build specs.
vipm sbom Generate a CycloneDX SBOM from a project or manifest.
vipm sync Reconcile vipm.toml from a LabVIEW project scan.
vipm version Output the CLI and Desktop version numbers.
vipm about Print installation details (paths, versions).

vipm install

Installs packages from vipm.toml, .vipc, .dragon files, or by name.

Usage: vipm install [OPTIONS] [PACKAGES]...

Options:

Option Description
--dev Install dev-dependencies from vipm.toml in addition to regular dependencies
--no-dev Skip dev-dependencies (explicit toggle for clarity)
--upgrade Upgrade packages to the latest version if already installed
-y, --yes Skip confirmation prompt when installing from files
--best-effort Continue when dev-dependency resolution fails (warns instead of errors). Lets a production install proceed even if a dev-dependency version, feed, or spec is temporarily unresolvable
--vipm Include only VIPM packages
--nipm Include only NIPM packages
--no-vipm Exclude VIPM packages from results
--no-nipm Exclude NIPM packages from results

--yes/-y is also available as the VIPM_ASSUME_YES=1 environment variable, or use VIPM_NONINTERACTIVE=1 to disable all prompts. See Environment Variables.

Examples

Install a single package:

vipm install oglib_boolean

Install multiple packages and upgrade existing ones:

vipm install --upgrade oglib_boolean oglib_numeric

Apply a configuration file:

vipm install project.vipc

Expected output includes progress such as:

Installing 2 packages
✓ Installed 2 packages from LabVIEW 2025 (64-bit) in 28.5s

Common Issues

  • Package not found: Run vipm refresh and verify the package ID at vipm.io.
  • Wrong LabVIEW version: Specify --labview-version and --labview-bitness to target the correct environment.

vipm uninstall

VIPM Community

VIPM Pro

Uninstalls one or more packages.

Usage: vipm uninstall [OPTIONS] [PACKAGES]...

Options:

Option Description
-F, --allow-version-mismatch Allow uninstalling when installed version differs from file specification
-y, --yes Skip confirmation prompt when uninstalling from files
--nipm Resolve the named package in the NIPM namespace. The canonical contract (see docs/general/package-manager-filter.md) specifies this form; the CLI returns NOT_IMPLEMENTED until the NIPM uninstall path is built. Not valid on VIPC or Dragon inputs, which are VIPM-only by format

--yes/-y is also available as the VIPM_ASSUME_YES=1 environment variable, or use VIPM_NONINTERACTIVE=1 to disable all prompts. See Environment Variables.

Examples

vipm uninstall oglib_boolean

Expected output:

Uninstalling 1 package
✓ Uninstalled 1 package from LabVIEW 2025 (64-bit)

Common Issues

  • Package in use: Close LabVIEW or stop any process locking the files before uninstalling.
  • Multiple LabVIEW versions: Provide --labview-version if the package exists in more than one installation.

vipm list

Lists packages from a configuration file or shows installed packages.

Usage: vipm list [OPTIONS] [FILE]

Options:

Option Description
--installed Lists all packages installed in the current LabVIEW version
--dev Show only dev dependencies (vipm.toml)
--no-dev Hide dev dependencies (vipm.toml)
--vipm Include only VIPM packages
--nipm Include only NIPM packages
--no-vipm Exclude VIPM packages from results
--no-nipm Exclude NIPM packages from results

Examples

List installed packages:

vipm list --installed

Inspect a configuration file:

vipm list project.vipc

Expected output:

Listing installed packages
Found 4 packages:
  OpenG Boolean Library (oglib_boolean v6.0.0.9)

vipm info

Show metadata and installed files for a package.

Usage: vipm info [OPTIONS] <PACKAGE>

Options:

Option Description
--installed-files List the files installed by the package VIPM Pro
--nipm Query an NIPM package instead of a VIPM package

For managing NI packages in vipm.toml, see NI Packages (NIPM).

Examples

Show metadata for a VIPM package:

vipm info oglib_boolean

Show metadata for an NI package:

vipm info --nipm ni-labview-2025-core --labview-version 2025

List installed files for a package:

vipm info oglib_boolean --installed-files

Searches for available packages by name or description.

Usage: vipm search [OPTIONS] [SEARCH_TERMS]...

Options:

Option Description
--limit Limit the number of packages shown per manager (default: 10). When both VIPM and NIPM contribute, each section is capped independently — total output can be up to 2× this value
--vipm Include only VIPM packages
--nipm Include only NIPM packages
--no-vipm Exclude VIPM packages from results
--no-nipm Exclude NIPM packages from results

Examples

Search for OpenG packages:

vipm search openg --limit 5

Sample output:

Showing 5 packages matching "openg":
  OpenG Array Library (oglib_array v6.0.0.9)
  ...

Tips

  • Combine multiple terms (e.g., vipm search serial communication) to narrow results.
  • Run vipm refresh first to ensure the latest catalog data before searching in CI.

vipm refresh

Refresh all package sources (VIPM Desktop, CLI cache, NIPM feeds).

Usage: vipm refresh [OPTIONS]

Options:

Option Description
--no-cache Skip CLI cache update (repo indexes, specs, database)
--no-nipm Skip NIPM feed update
--force Force re-download even if cached

Refreshes every package source the CLI consults: VIPM Desktop's repository list, the CLI's local cache (repo indexes, specs, database), and any configured NIPM feeds. Scope it to one package manager with --vipm/--no-nipm (VIPM sources only) or --nipm/--no-vipm (NIPM feeds only); --no-cache skips just the CLI cache, and --force re-downloads even when a cached copy looks current.

Example

vipm refresh

Common Issues

  • Corporate proxy: Configure http_proxy / https_proxy environment variables before running.
  • Offline environments: Mirror the repository internally and point VIPM to the local server.

vipm activate

Activates VIPM Pro.

Usage: vipm activate [OPTIONS]

Options:

Option Description
--serial-number Serial Number (will prompt if not provided in interactive mode)
--name Your full name (will prompt if not provided in interactive mode)
--email Your email address (will prompt if not provided in interactive mode)

Any argument omitted on interactive terminals will trigger a prompt.

Example Output

✓ Activation succeeded!

Common Issues

  • Ensure the serial number is valid and not already in use elsewhere.
  • The name and email must exactly match the VIPM account tied to the serial number.

vipm build

VIPM Community

VIPM Pro

Builds project artifacts from various sources (.lvproj and vipm.toml builds require LabVIEW 2024 and newer).

Usage: vipm build [OPTIONS] [BUILD_SPEC]

Options:

Option Description
--all Build all targets defined in vipm.toml (including those with default=false)
--lvproj-build-spec Name of the build specification within a LabVIEW project file (only for .lvproj files)
--lvproj-target Scope build-spec lookup to a specific target within the .lvproj file
--version-number Set the version number (1-4 components: major.minor.patch[.build]); missing build preserves the existing build number when present
--build-number Set the build number (4th component of version). Applies to .lvproj and .vipb; without --version-number, existing major.minor.patch values are reused (defaulting to 0.1.0 when none are present)
--debug Build in debug mode (preserves block diagrams and front panels)
--no-deps Skip building dependencies (assume they already exist)
--rebuild-deps Force rebuild all dependencies (clean and rebuild even if outputs exist)
--allow-package-drift Allow builds to proceed when installed packages disagree with vipm.toml / vipm.lock. Verification still runs but failures are emitted as warnings instead of errors

For LabVIEW project builds:

vipm build \
  --lvproj-build-spec "My Build" \
  --lvproj-target "My Computer" \
  path/to/project.lvproj

Example Output

Building VI Package from path/to/your_package.vipb
✓ Build completed: builds/your_package.vip

Dependency-State Verification

When vipm build runs against a vipm.toml project, it verifies the build environment matches the project's declared dependency state before executing any build target:

  1. If vipm.lock exists, the lock is checked for completeness and consistency with vipm.toml.
  2. The installed packages on the host are compared against the lock (or, with no lock, against vipm.toml's direct dependency specifiers).

If either check fails, vipm build exits without producing any artifact. The error message identifies the specific packages and tells you which command to run to reconcile:

  • vipm lock — when the lock is out of sync with vipm.toml.
  • vipm install — when an installed package version doesn't match what's declared.

Bare .lvproj/.vipb builds (no vipm.toml) skip this check; there's no manifest to verify against.

To bypass verification for a single invocation, pass --allow-package-drift. The check still runs but failures become stderr warnings instead of hard errors, and the warning lists each drifted package so you see what you're accepting. There is no manifest field for this — the bypass is CLI-only by design.

Exit Codes

See Exit Codes for the canonical reference. vipm build uses codes 08, 1115, and 17. Any non-zero exit means the build artifact was not produced.

Common Issues

  • Linux build limitations: Review the VIPM Preview docs for current platform support notes.
  • Missing dependencies: Run vipm install project.vipc before invoking vipm build in CI.
  • Stale vipm.lock: After editing vipm.toml, run vipm lock so the lock matches the manifest before building.

vipm sbom

Generate a Software Bill of Materials (supports LabVIEW 2024 and newer).

Usage: vipm sbom [OPTIONS] [INPUT]

Options:

Option Description
--format SBOM output format
--schema-version CycloneDX schema version
--document-version SBOM revision number (default: 1)
--document-serial-number Unique identifier for this BOM's lineage (urn:uuid:... format)
--output Output file path
--product-version Version of the software described by the SBOM
--product-name Name of the software described by the SBOM (overrides the filename-derived name)
--product-type Component type of the software described by the SBOM (default: application)
--lvproj-build-spec Name of a build specification within the .lvproj file. Extracts product name, version, and type from the build spec as defaults for metadata.component (overridden by explicit --product-* flags). The containing target is inferred automatically when unambiguous; pass --lvproj-target to disambiguate if the same name exists under multiple targets
--lvproj-target Scope the dependency scan to a specific .lvproj target. May be used alone (scans only that target) or with --lvproj-build-spec (validates the spec is under that target). Omit to scan the whole project
--no-dev Exclude dev-dependencies from SBOM output
--vipm Include only VIPM packages
--nipm Include only NIPM packages
--no-vipm Exclude VIPM packages from results
--no-nipm Exclude NIPM packages from results
--allow-package-drift Allow SBOM generation to proceed when installed packages disagree with vipm.toml / vipm.lock. A stderr warning lists the drifted packages and the SBOM reflects installed versions. Without this flag, drift aborts with exit code 17 (PACKAGE_DRIFT)
--allow-missing-files Allow SBOM generation to proceed when files referenced by the project cannot be found on disk. A stderr warning lists the missing references and the SBOM reflects what could be scanned. Without this flag, missing references abort with exit code 18 (MISSING_REFERENCED_FILES)

Generates a CycloneDX Software Bill of Materials. See the SBOM documentation for a tutorial and workflow guidance.

Examples

Generate an SBOM from a LabVIEW project:

vipm sbom MyProject.lvproj \
  --format cyclonedx \
  --schema-version 1.5 \
  --product-name "My Instrument" \
  --product-version 2.1.0 \
  --output build/bom.json

Scope an SBOM to a specific build specification within a .lvproj:

vipm sbom MyProject.lvproj \
  --format cyclonedx \
  --schema-version 1.5 \
  --lvproj-build-spec "My EXE Build" \
  --lvproj-target "My Computer" \
  --output build/bom.json

The resulting SBOM reports only the packages whose code contributes to that build spec's deliverable — its declared source roots plus whatever the LabVIEW linker can reach from them. It's a strict subset of (or equal to) the SBOM for --lvproj-target "My Computer" alone.

What's in the SBOM vs. what's in the build output

--lvproj-build-spec narrows the SBOM to code the build delivers, not just files LabVIEW copies into the output directory. In particular, the build-dialog optimization settings (exclude-* / remove-* — inline SubVIs, typedefs, library items, dependent PPLs, excluded directories, etc.) do not shrink the SBOM. Those settings control file-copy behaviour at build time; the linked code from those files is still part of the deliverable (e.g., an inline SubVI's block diagram is expanded into every caller; a dependent PPL is runtime-linked at load time). Reporting them in the SBOM is correct for supply-chain disclosure.

If the build spec is an Installer or Package type, the command errors with exit code 2. Those types bundle other build specs' outputs and declare NIPM dependencies through a different mechanism; for now, use --lvproj-target to scope to the containing target.

Scope to a specific target without selecting a build spec (useful when running from source without building a binary):

vipm sbom MyProject.lvproj \
  --format cyclonedx \
  --schema-version 1.5 \
  --lvproj-target "My Computer" \
  --output build/bom.json

Generate from a vipm.toml, excluding dev-dependencies:

vipm sbom vipm.toml \
  --format cyclonedx \
  --schema-version 1.5 \
  --no-dev \
  --output build/bom.json

Expected output on success:

SBOM written to build/bom.json

Exit Codes

See Exit Codes for the canonical reference. vipm sbom uses codes 08, 1215, 17, and 18. Any non-zero exit means the SBOM was not produced — the --output file is only written on exit code 0.

On failure, stderr contains a human-readable error message. Example:

error: No LabVIEW installation found for version '2024'.
help: Use 'vipm labview-list' to see available versions

Common Issues

  • Missing --output: The --output flag is always required. --format defaults to cyclonedx and --schema-version defaults to 1.5, so they can be omitted.
  • Wrong LabVIEW version: Use --labview-version and --labview-bitness to target the correct installation when scanning .lvproj files.
  • --no-dev on non-toml input: The --no-dev flag is only valid with vipm.toml input.

vipm sync

Synchronize vipm.toml with dependencies discovered by scanning a project (supports LabVIEW 2024 and newer).

Usage: vipm sync [OPTIONS] [TARGET]

Options:

Option Description
--from Project file to scan for dependencies
--dry-run Show what would change without writing to disk
--vipm Include only VIPM packages
--nipm Include only NIPM packages
--no-vipm Exclude VIPM packages from results
--no-nipm Exclude NIPM packages from results
--allow-missing-files Allow sync to proceed when files referenced by the project cannot be found on disk. A stderr warning lists the missing references and sync operates on what could be resolved. Without this flag, missing references abort with exit code 18 (MISSING_REFERENCED_FILES)

TARGET is the vipm.toml to update — if omitted, the CLI searches upward from the current directory.

Examples

Sync vipm.toml from a LabVIEW project:

vipm sync --from MyProject.lvproj

Preview changes without writing:

vipm sync --from MyProject.lvproj --dry-run

Common Issues

  • No vipm.toml found: Either specify the target path explicitly or run the command from a directory that contains (or is a child of a directory that contains) a vipm.toml.

vipm version

Prints the version of the VIPM CLI and VIPM Desktop.

Usage: vipm version

Useful for support tickets and automation logs. Sample output:

VIPM CLI version 2025.3.0
VIPM Desktop version 2025.3.0

vipm about

Prints information about the VIPM installation.

Usage: vipm about

Shows installation information such as install paths and license data. Use vipm about --help to review the latest options.