Skip to content

Install and Update

Shivamsh edited this page Sep 20, 2026 · 1 revision

macOS and Linux

curl -fsSL https://raw.githubusercontent.com/Datum-Collective/RIFT-coding-agent/main/opencode/install | bash

This installs from opencode/install. It detects darwin or linux with uname -s, normalizes aarch64 to arm64 and x86_64 to x64, picks a baseline build on x64 CPUs without AVX2, and picks a musl build when ldd reports musl or /etc/alpine-release exists. Linux archives are .tar.gz (needs tar); macOS archives are .zip (needs unzip).

Pin a version:

curl -fsSL https://raw.githubusercontent.com/Datum-Collective/RIFT-coding-agent/main/opencode/install | bash -s -- --version 0.1.8

Other options (from install --help):

curl -fsSL https://raw.githubusercontent.com/Datum-Collective/RIFT-coding-agent/main/opencode/install | bash -s -- --no-modify-path
./install --binary /path/to/rift

Windows

irm https://raw.githubusercontent.com/Datum-Collective/RIFT-coding-agent/main/opencode/install.ps1 | iex

This installs from opencode/install.ps1. It puts rift.exe in %LOCALAPPDATA%\rift\bin and adds that directory to the user PATH. Pin a version (irm | iex takes no arguments):

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Datum-Collective/RIFT-coding-agent/main/opencode/install.ps1))) -Version 0.1.8

Where files go and how PATH works

  • Default directory: ~/.rift/bin on macOS and Linux (RIFT_INSTALL_DIR overrides it), %LOCALAPPDATA%\rift\bin on Windows.
  • The installer records the release in rift.version beside the binary.
  • Both rift and opencode start the app. On macOS and Linux, opencode is a symlink to rift; on Windows it is an opencode.cmd forwarding shim.
  • If ~/.local/bin, ~/bin, /opt/homebrew/bin or /usr/local/bin is already on PATH and writable, the installer symlinks rift (and opencode) there so the command works at once. It never overwrites: an existing command of the same name is left alone.
  • Otherwise it appends export PATH=$INSTALL_DIR:$PATH (or fish_add_path on fish) to your shell config (.zshrc, .bashrc, .profile, and similar) and prints source ~/.zshrc (or the matching file) so the current terminal picks it up. --no-modify-path skips both the linking and the shell config edit. On Windows it prepends to the user PATH instead.
  • macOS note: a binary downloaded through a browser is quarantined by Gatekeeper because these builds are not notarized. Clear it with xattr -dr com.apple.quarantine ~/.rift/bin/rift. The curl command above avoids this.

Version numbers

rift --version prints the RIFT release:

0.1.8

rift debug info prints both numbers:

rift version: 0.1.8
opencode runtime: 1.18.29
os: Darwin 27.0.0 arm64
terminal: kitty 0.42.0 / xterm-256color
plugins:
none

The rift version line is what the update check compares. The opencode runtime line is what plugins and provider APIs see.

In-app update check

RIFT checks GitHub for a newer release when the app starts, then keeps checking while it stays open. The interval is defined in packages/opencode/src/cli/upgrade.ts:

UPDATE_CHECK_INTERVAL = 30 * 60 * 1000

That is, on launch and every 30 minutes. Failures (offline, GitHub down) are silent and retried next time. Only installs whose method is curl are checked; other install methods belong to a different product.

The dialog says:

Update available
RIFT v<latest> is available (you have v<current>).

Update now? It takes a few seconds, then RIFT asks you to restart.
Press esc to decide later.

Buttons are update now and skip this version. Skipping records the version so it is not offered again; esc decides later. After a successful update the app shows Successfully updated to RIFT v<version>. Please restart the application.

The autoupdate config key controls this (see Configuration):

  • unset: ask (the default)
  • true: install patch releases silently; a minor or major release still asks
  • false: stop checking for updates
  • "notify": treated like unset (ask)

Upgrade and uninstall

rift upgrade
rift upgrade 0.1.8
rift uninstall
rift uninstall --dry-run
rift uninstall --keep-config --keep-data
rift uninstall --force

rift upgrade [target] upgrades to the latest or a specific version. rift uninstall removes the binary, the PATH links that point at it, the shell config lines, and (unless kept) config and session data. --dry-run shows what would be removed without removing.

Overrides

  • RIFT_INSTALL_DIR: where to put the binary (default ~/.rift/bin).
  • RIFT_NO_SHELL=1: do not open a new shell at the end of install; just print how to reload.
  • RIFT_VERSION (or VERSION): version for the installer to fetch; this is what rift upgrade sets.
  • RIFT_RELEASES_API: where to look for the newest release (default https://api.github.com/repos/Datum-Collective/RIFT-coding-agent/releases/latest). Defined in packages/core/src/brand.ts.
  • RIFT_INSTALL_URL: where to fetch the install script from when updating (defaults to the install or install.ps1 URL above). Defined in packages/core/src/brand.ts.

Clone this wiki locally