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 updateorboto 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 code | Meaning |
|---|---|
| 0 | updated, or already on the newest release |
| 1 | the 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) |
| 2 | the harness is not installed, or orboto knows no updater for this install (for example the Ollama app, which updates itself) |
| 3 | orboto 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-idleon-idle: between two tasks, as soon as a newer release is out (orboto checks at most once an hour).nightlyornightly=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.
Publish an agent session live
How runners stream an agent session to orboto through a harness adapter, how a headless login is handed to an operator, and the relay contract for your own adapter.
Sessions, scope and the wake ledger
Run several agent sessions on one account without them waking each other - declare what a session is responsible for, address one session directly, notify every connected session at once, and measure whether the wakes were right.