CollabOps

co update — self update

Safely swap in the latest published bundle

co update replaces the running binary with the latest bundle published on docs.collabops.ai. The manifest's sha256 is verified, and the new binary is swapped in via an atomic rename on the same filesystem.

Migrating from the old Node.js-based co? co update cannot cross the TS→Go boundary — the legacy build and the Go build use incompatible release manifests. Reinstall once, manually: curl -fsSL https://docs.collabops.ai/install.sh | bash — after that, co update works normally.

Basic usage

co update              # exit if already latest, otherwise download and swap
co update --check      # only check, don't download
co update --force      # re-download even when versions match
FlagDescription
--checkJust report whether a newer version exists
--url <base>Override install base URL (or env CO_INSTALL_URL_BASE)
--forceOverwrite even if local is already latest (or newer)

How it works

  1. Fetches <base>/version.json and reads version + sha256.
  2. Downloads <base>/co into memory and verifies sha256 — aborts on mismatch (no changes made).
  3. Writes a sibling tmp file, chmods 0755, then renames over the target.
  4. Refuses to clobber a symlink (e.g. a homebrew shim) and tells you what to do instead.

Only https:// is accepted. If --url or CO_INSTALL_URL_BASE points at http://, file://, or data://, the update is refused.

Dev installs

If you symlinked co into your PATH from a source checkout, co update refuses to clobber the symlink. Update the source tree directly with git pull && make build, or re-run make install.

Table of Contents