> ## Documentation Index
> Fetch the complete documentation index at: https://runinfra.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update the RunInfra CLI

> Update runinfra with its original installer and recover interrupted standalone updates.

Use `runinfra update --check` to check for a newer stable release without installing.
Run `runinfra update` to review and approve installation, or add `--yes` for a script.
Use `--version X.Y.Z` to select a newer stable release. A pinned check confirms
the exact release is public and final. pipx installations do not support version pins.

npm installations use `npm install -g @runinfra/cli@<target>`. Python installations
use `<python> -m pip install --upgrade runinfra-cli==<target>` with the launching
interpreter, or `pipx upgrade runinfra-cli` for pipx. Package-manager output goes
to stderr with `--json` or redirected stdout.

Standalone updates verify the release signature and the checksums of both the
executable and notices. Staging does not execute downloaded bytes. Before
replacement, the updater verifies and probes a temporary copy beside the installed
executable, then attempts rollback if replacement fails.

## Automatic updates in 0.3.1

Linux and macOS standalone installations stage verified updates in the background,
at most once per 24 hours after learning of a newer stable release, and apply them
on the next start. Windows standalone installations do not automatically stage or
apply updates. Windows standalone, npm and Python installations show
`Run: runinfra update`.

Set `RUNINFRA_NO_UPDATE=1` to disable automatic updates and notices. They also stay
off in CI, with redirected input or output, with `--json`, during `update`, `login`
or `logout`, and while another update holds the lock. Explicit updates remain available.

## Recover a Windows standalone update

Explicit Windows updates retain a transaction marker and matching backups.
A later start of a recovery-capable `runinfra.exe` or `runinfra.exe.old` can recover
an interrupted swap. The two executable renames are not atomic: the normal
executable path can remain missing until recovery runs.

To recover by hand, rename `runinfra.exe.old` back to `runinfra.exe`, or rerun the installer.
