orbotodocs
Agents & AI

Update Claude Code, Codex and the other harnesses

Update the coding harness your agents run with one command, one tap in the Live panel or by itself on your runners, without losing the running session.

Added in v0.210.1 orboto updates the coding harness your agents run - Claude Code, Codex, Gemini CLI, Kimi Code, Ollama and pi - with one command on the machine, with one tap in Admin -> Agents -> Live or the orboto app on your phone, or by itself at night on your lane runners. A running session is not lost: it finishes what it is doing, gets the new release and continues the same conversation.

On the machine

orboto claude update --check      # which release is installed, which one is available
orboto claude update              # install the newest release
orboto claude update --to 2.1.284 # install exactly this release
orboto codex update
orboto kimi update
orboto ollama update

orboto finds out how the harness was installed (the native installer, npm, pnpm, bun, Homebrew or an install script) and runs that install's own updater, so nothing ends up installed twice. Afterwards it starts the new binary once with --version. If the updater fails, or the new release does not start, the command exits 1 and says why. Installs that switch a launcher symlink (the native Claude Code installer, the Codex standalone install, Kimi Code) are rolled back: the link points at the release you had again. An install managed by npm, pnpm, bun or Homebrew is left exactly as the package manager left it; the failure line then names the release you were on before the update and the one the binary reports now.

Exit codeMeaning
0updated, or already on the newest release
1the update failed (a launcher-symlink install is back on the old release; a package-manager install is as the package manager left it, and the line names both releases)
2the harness is not installed, or orboto knows no updater for this install (for example the Ollama app, which updates itself)
3orboto claude update only: a session is still busy with its current answer; the update runs as soon as it is done, nothing failed

Sessions that are running

If you work in orboto claude, you do not have to stop anything: orboto claude update waits until Claude Code has finished its current answer, installs the update and restarts the session in the same directory with the same conversation. The terminal shows updated 2.1.283 -> 2.1.284. If the update fails, your session simply keeps running on the old release. Run from inside a session's own running answer, the command exits 3 with the waiting line instead of 0, so a script does not read a pending update as done. A session started with orboto live-session run behaves the same: it finishes its running answer first, and gives the update up with a status line when the answer takes longer than ten minutes.

Codex, Gemini CLI and Kimi do not tell orboto when they are idle. orboto codex update therefore only installs the new release and lists the running sessions that still use the old one; add --restart to restart them right away (a running answer is interrupted, the conversation continues).

orboto claude also shows the terminal in Admin -> Agents -> Live, with or without login profiles (this changed with this release: before, only terminals with profiles or --on-limit appeared). It publishes the label, host, directory, the Claude Code release and the profile names, never the conversation. orboto claude --no-live starts one terminal without it, ORBOTO_LIVE_SESSION=off keeps every start out.

From the browser or your phone

Every session in Admin -> Agents -> Live shows which release it runs and whether a newer one is available. Tap Update to update it - or type a release number to install a specific one. You need to be the session's account, its owner, or have the permission to manage agents. The session reports every step in its transcript. In the terminal, orboto session attach <id> does the same with :update or :update 2.1.284.

Lanes and runners update themselves

Start a runner with --auto-update and it keeps its harness current without you:

orboto agent-runner --lane review-1 --harness claude-code --workdir-root ~/lanes/review-1 --auto-update nightly=03:30
orboto pi-runner --remote --lane worker-1 --auto-update on-idle
  • on-idle: between two tasks, as soon as a newer release is out (orboto checks at most once an hour).
  • nightly or nightly=HH:MM: once a night at that local time (03:00 by default), again only between tasks.
  • never (the default): only when you ask for it.

A runner never updates in the middle of a task. Admin -> Agents -> Lanes shows on each runner card which release runs, whether a newer one is available, the auto-update mode and the last update. Every update - and every failed one - is recorded in the audit log as agent.harness_updated with the harness, the old and the new release and what triggered it.

On this page