← All features

Install and operateAvailable in v0.3.0

Tool updates after the last lease

Available in v0.3.0, and opt-in: after the last lease finishes, oah can bring Claude Code, Codex and Claude Code plugins up to date with each tool's own update command, and the model lists refresh at the next call. Codex plugins and MCP servers are not updated. oah init asks once, and you can turn it off.

When you need it

Newer models reach you only when Claude Code and Codex themselves are current, and updating them in the middle of a task can disturb running work.

How it works

  1. It is on only when .oah/config.toml says after_finish = true under [updates]; a config without the key counts as off.
  2. After an oah finish that leaves no active lease and no run in flight, at most once every interval_hours (24 by default), the pass starts in the background; finish never waits for it and keeps its own exit code.
  3. In order: claude update, codex update, claude plugin marketplace update, then claude plugin update <plugin> --scope user --json for each user-scope plugin — each only when the installed CLI's --help lists it.
  4. Versions are read before and after each step; only updated and current record a settled version, and anything else is unverified, needs-confirmation, unsupported or failed.
  5. oah update runs a pass now; oah update status prints the last pass without running anything.

Example

Turn it on in an existing project's `.oah/config.toml` (from Upgrade).

[updates]
after_finish = true

Requirements

  • Requires v0.3.0 or later.
  • Claude Code and Codex installed; the pass runs only commands their own help lists.

Limits and recovery

  • Codex plugins are never updated automatically, because an update invalidates hook approval: update them with codex plugin marketplace upgrade, then approve their hooks again in /hooks.
  • MCP servers and their configuration, npm, Homebrew or npx run by oah, shells, confirmation flags such as -y, and hook approvals are never touched.
  • oah's skills keep their own daily check (oah skills update), separate from this pass.
  • Sessions already running keep the version and plugins they started with until you restart them.
  • An active lease or a run in flight defers the pass (OAH_UPDATE_DEFERRED); a second pass on the same machine gets OAH_UPDATE_BUSY.

Original documents

Related