4 MINUTE READ

Updates & rollback

Move between verified releases without replacing a running binary.

Check for a release

Loom checks its configured channel at startup and at most once every six hours. The request has a short timeout; network failures do not prevent startup. You can also check from the update control in the UI.

Stable is the default. A beta can contain changes that have not reached stable. A newer stable release replaces an older beta; Loom does not silently downgrade your installation.

loom update
loom update --channel beta

Update and restart

Finish active tasks and OpenCode chats first. Select Update & Restart in the UI or run loom update. The update checks the official manifest, downloads your platform artifact, and verifies both SHA-256 and size.

A helper copied from the current trusted binary stops the daemon, preserves the previous executable and local database, replaces the executable, and checks the new daemon's health. No script from the release manifest is executed.

If startup fails

The helper restores the previous binary and database snapshot if the new daemon fails its startup check. Read loom logs for the result. The update control also displays the last update result.

A power loss can interrupt any filesystem operation. If Loom cannot start, inspect ~/.loom/bin/loom.previous (loom.exe.previous on Windows) and ~/.loom/cache/update.lock before removing anything. Retain that directory's database backup and ask for help through a GitHub issue with redacted logs.

loom logs
loom doctor

Control update checks

The UI update settings let you choose stable/beta and disable automatic checks. These values are stored as releaseChannel and updateChecks in config.json. The explicit Check now and loom update commands still contact GitHub when requested.

The application version and protocolVersion are separate. A packaged UI ships with its compatible daemon. Do not mix frontend assets from another release.