Skip to main content
Inspect or change the installed CLI version. All four workflows support --output table|json. JSON upgrade, downgrade, and rollback require --force and never prompt.

Commands

The destructive uninstall workflow has been removed.

Status

JSON returns:
The command always checks GitHub. An unreachable GitHub service remains a successful local status result with github_available: false, latest_version: null, and update_available: null.

Upgrade

Install the latest stable release:
Install a specific release:
Include prereleases when resolving the latest version:
A completed JSON result contains the prior version, target version, install method, and executable path. When the current version already matches the target, status is up_to_date and no installation occurs. The command rejects invalid versions and targets older than the current version. System-package installations must be upgraded through their package manager.

Downgrade

List available releases:
JSON returns current_version and release items, each with a current boolean. Install an older release:
--list and --version are mutually exclusive. The target must be older than the current version and at least the CLI version floor. System-package installations must use their package manager. Releases before 1.10.4 are pinned by disabling their legacy automatic-update setting. The JSON result reports this as automatic_updates_disabled.

Rollback

Rollback is available only for standalone binary installations with ~/.observal/bin/observal.prev. It acquires the same version-change lock as upgrade and downgrade, copies the backup to a temporary file, restores executable permissions, and atomically replaces the current binary. Package-managed installations must install their previous version through the package manager.

Installation safety

Upgrade and downgrade:
  1. Acquire a process lock so version changes cannot overlap.
  2. Use the detected installation method.
  3. Verify standalone binary downloads against the published SHA-256 checksum.
  4. Replace standalone binaries atomically and retain the previous binary for rollback.
  5. Execute the installed binary and verify that it reports the requested version.
Human mode may explicitly confirm an unsigned binary. JSON mode never prompts and refuses standalone installation when the release has no published checksum.

Exit codes