---
title: "apply"
description: "Reconcile package declarations for the current platform."
---

> Documentation Index
> Fetch the complete documentation index at: https://outfitting.jfa.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# apply

`apply` installs missing declared packages. It does not upgrade unrelated installed software. Pruning is opt-in and limited to packages whose Outfitting ownership can be established. Changes are local; publishing state is a separate operation.

## macOS

**Syntax:** `outfitting-manager apply [flags]`

Applies the selected profile's Brewfile. Nix activation is handled by [`nix`](/docs/cli/nix/).

| Option | Description |
| --- | --- |
| `--machine-id <id>` | Override the machine ID. The default is derived from user, architecture, and OS. |
| `--repo <path>` | Override the local source path for this invocation. |
| `--profile <profile>` | Select a declared macOS profile; defaults to the configured selection. |
| `--no-refresh` | Use the previously validated source without refreshing it. |

## Linux

**Syntax:** `outfitting-manager apply [flags]`

Reconciles the selected profile's apt or pacman declarations. The package manager is detected from the host unless explicitly selected.

| Option | Description |
| --- | --- |
| `--profile <profile>` | Select a Linux profile; defaults to `config.toml` or `OUTFITTING_PROFILE`. |
| `--package-manager` | Override package-manager detection with `apt` or `pacman`. |
| `--prune` | Remove stale packages proven to have been installed for the active profile. |
| `--offline` | Use the cached Linux package manifest without a network request. |
| `--yes` | Apply the displayed installation/removal plan without prompting. |
| `--no-refresh` | Use the local Linux source without fetching remote changes. |
| `--if-configured` | Skip when the selected profile declares neither apt nor pacman packages. |

## Windows

**Syntax:** `outfitting-manager apply [flags]`

Reconciles the selected comma-separated profiles' WinGet and optional Scoop declarations. Applied state remains local.

| Option | Description |
| --- | --- |
| `--profile <profiles>` | Select comma-separated profiles from the configured source. |
| `--repo <path>` | Override the local source path for this invocation. |
| `--winget-only` | Apply WinGet declarations only; skip Scoop. |
| `--prune` | Remove only provably Outfitting-installed packages no longer declared by active profiles. |
| `--yes` | Apply the displayed plan without prompting. |

Source: https://outfitting.jfa.dev/docs/cli/apply/index.mdx
