Skip to main content

Updates

Check and Install

Check the latest public version without changing the installation:

ecctl update --check

Install it:

ecctl update

Both commands return structured output showing the current version, target version, whether an update is available, and whether installation completed or is still pending.

Failures use stable update error codes and a retryable flag. The localized message is suitable for display, while detail retains the diagnostic cause for troubleshooting and automation.

To select a release explicitly, pass an unprefixed semantic version. A downgrade or same-version reinstall requires --force:

ecctl update 0.2.0
ecctl update 0.2.0 --force

Homebrew installations can only select the latest stable release. Direct binary installations can select an available historical or prerelease version.

Validation and Installation

Before installation, ecctl validates the release metadata, checksums, and the candidate executable. A validation failure stops the update without installing untrusted or incomplete files.

For direct installations on macOS and Linux, ecctl replaces the executable only after validation and restores the previous executable if post-installation validation fails. An interrupted update is checked and recovered the next time you explicitly run an update command.

On Windows, the running executable cannot be replaced in place. ecctl starts a helper and returns update_pending: true with updated: false; replacement continues after the update command exits. A later explicit ecctl update reports any incomplete or failed replacement. Releases older than the first self-updating Windows build must be installed manually.

Homebrew Installations

When ecctl detects a supported Homebrew-managed installation, ecctl update updates it through the matching Homebrew installation. You do not need to run brew update first.

--force reinstalls the current stable version. If the Homebrew installation cannot be identified safely, the update stops with an error instead of overwriting a managed executable directly.

Automatic Version Checks

Operational commands periodically check whether a newer stable version is available. This advisory check never blocks the requested command. Notices are written only to an interactive terminal on stderr, at most once per version per day, so JSON stdout remains unchanged.

Skip automatic checks in controlled or offline environments:

export ECCTL_DISABLE_UPDATE_CHECK=1

Automatic checks also apply to help, version, completion, and update invocations.