W LinuxDocumentation

w-pack

w-pack — Install and inspect optional W software bundles (packs).

Usage

Usage: w-pack <command> [bundle] [--user <name>] [--porcelain] [--packages] [--yes] [--force]

Info: Install and inspect optional W software bundles (packs).

Optional software bundles (W-Packs) — opt-in add-ons on top of the base system.
A bundle has a MACHINE layer (packages, system config, services — installed once,
needs root) and a PER-USER layer (its tools and config in your home).

Commands:
  list                 List available bundles and their state
  install <bundle>     Install a bundle: machine layer, then your per-user layer
  setup <bundle>       Set up an already-installed bundle for YOUR account
                       (no root, no polkit — it only writes your own home)
  refresh [<bundle>]   Re-apply installed bundles from the staged tree, WITHOUT
                       touching packages (config + w-style + AI skill + setup)
  remove <bundle>      Undo W's wiring for a bundle: its per-account layers, its
                       machine teardown, W-owned config, theme axes, AI skill and
                       state. Packages and data are left alone (see --packages)
  unsetup <bundle>     Undo only YOUR account's layer, leaving the machine and
                       everyone else untouched (no root, like `setup`)
  status [<bundle>]    Show what is installed (all, or one bundle)
  outdated [<bundle>]  Compare the software a bundle installs OUTSIDE pacman (an
                       AI engine, say) with the version it should be at
  upgrade [<bundle>]   Move that software to the version `outdated` names, after
                       showing the plan; rolls back by itself if it fails
  help                 Show this help

Options:
  --user <name>        Act for another account (root only; default: the invoking
                       user, or SUDO_USER / the primary uid-1000 user)
  --porcelain          Machine-readable `list`, one bundle per line:
                       <name> TAB <machine:yes|no> TAB <user:yes|no|n/a> TAB <desc>
                       and `outdated`: <bundle> TAB <component> TAB <installed> TAB <target>
  --all                With `list`: also show bundles the catalogue does not
                       offer (AUDIENCE=maintainer — tooling for developing W)
  --packages           With `remove`: also uninstall the bundle's packages, minus
                       any another installed bundle still lists. Without it the
                       exact `pacman -Rns` line is only printed
  --yes                With `upgrade`: do not ask before going ahead
  --force              With `upgrade`: go ahead even while the engine is busy
                       (a generation in progress is cut off)

Notes:
  install, refresh, upgrade and remove require root (packages + system paths);
  setup, unsetup and outdated do not.
  Bundles are self-contained under $PACKS_DIR; machine state is recorded in
  $STATE, your own layer in ~/$USER_STATE_REL.
  A bundle may declare AUDIENCE=maintainer: it is not a product but the tooling
  for developing W itself, so no catalogue offers it — the installer checklist,
  the Hub and the AI tools never name it, and `w-pack list --all` or an install
  by name are the only ways to it. Once installed it is listed like any other:
  a machine must always be able to say what is on it.
  A bundle may also declare a `pre.sh`: a root step that runs BEFORE its
  packages — enabling a repo, syncing pacman, resolving a hardware-variant
  package a virtual provider would otherwise pick wrong. `refresh` never
  re-runs it, the same policy as packages.
  A bundle someone else installed is NOT set up for you automatically — that
  would spend your disk and network on a choice you never made. `w-pack list`
  says so plainly, and `w-pack setup <bundle>` is the one command that fixes it.
  refresh is what an update calls: `w-sync update` runs it after an apply that
  touched the bundle tree, so a bundle's own idempotent setup (marker regions,
  drop-ins, legacy-layout cleanups) is replayed on every machine instead of
  waiting for someone to reinstall the bundle by hand. It replays the per-user
  layer for every account that already has it — and only those.
  remove undoes what W DID, not what you installed: state, W-owned config, theme
  axes, the AI skill and the bundle's own teardown steps. Your packages and your
  data stay — the `pacman -Rns` line is printed for you, and paths worth
  gigabytes (model stores, image stores, toolchains) are only ever named. To put
  a bundle's config back to the W default WITHOUT removing it, use
  `w-reset <bundle>`.
  upgrade is the one command that moves what pacman cannot see — a bundle's own
  engine, installed from upstream into its own tree. Neither `w-update` nor
  refresh ever does that: an engine update downloads gigabytes and can break a
  working setup, so it happens only when you ask. The target is the newest stable
  upstream release, unless the bundle's VERSION key holds it at one version
  (`sudo w-conf set comfyui VERSION 0.38.2`). The engine is stopped, a rollback
  point is recorded, the new version must start and answer, or the previous one
  is put back.

Exit codes:
  0  Success
  1  Runtime error (unknown bundle, missing source, privilege)
  2  Usage error

Examples:
  w-pack list
  w-pack list --all                  # including bundles not offered in catalogues
  sudo w-pack install containers
  w-pack setup ai-extra              # catch my own account up, no sudo
  sudo w-pack refresh
  w-pack status
  w-pack outdated                    # what has a newer version upstream
  sudo w-pack upgrade comfyui        # show the plan, ask, upgrade
  sudo w-pack remove containers      # unwire it; podman stays installed
  sudo w-pack remove dev --packages  # ...and take its packages too
  w-pack unsetup dev                 # just my own account, no sudo

This page is generated from the command's own help text (w-docs-refgen). The live version of the same text on a W machine: w-pack help.