Skip to content

Command guide

Windows-specific behavior for profile setup, package reconciliation, updates, and tracked package operations.

Updated View as Markdown

This page explains Windows-specific command behavior. The CLI reference documents shared syntax and flags; Local sources and Sparse artifact lifecycle explain source selection and refresh behavior.

Profiles and source

Profile-aware Windows commands accept comma-separated profiles. --profile selects the profiles for a command; otherwise the configured selection is used. init prepares local state and validates the selected source. It refreshes a configured remote source by default and does not change installed packages.

apply

Reconciles the selected profiles’ WinGet and optional Scoop declarations. It installs missing declared packages but does not upgrade unrelated installed software. Applied state remains local.

--winget-only applies WinGet declarations and skips Scoop. --prune removes only stale packages that Outfitting can prove it installed for the active profiles. --yes applies the displayed plan without prompting. See apply for the full option reference.

diff

Read-only comparison of the selected profiles’ WinGet and Scoop declarations with installed package state. Differences or an unavailable comparison produce a nonzero exit status. See diff for manager selection and output options.

update

Upgrades already-installed packages through exactly one package manager. Select winget or scoop with --package-manager; Windows requires this selection. Successful updates are recorded locally and pushed to windows.lock.json unless --no-push is supplied. update does not reconcile package declarations; use apply for that.

winget

winget install installs and tracks package IDs; winget uninstall removes and tracks them. These explicit operations update windows.lock.json and push by default. Use --no-push to keep the updated lock local. See winget for syntax.

scoop

scoop install installs and tracks package names; scoop uninstall removes and tracks them. These explicit operations update windows.lock.json and push by default. Use --no-push to keep the updated lock local. See scoop for syntax.

Windows has no nix command. The shared config, source, validate, status, sync, fonts, provision, and self-update pages cover the other available commands and subcommands.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close