← All features

Install and operateAvailable in v0.3.0

Upgrading oah and its parts

The Upgrade page says how to update each part: oah itself (pull and rerun the installer with --skip-tools, or a verified release archive), the files oah init wrote (oah rules check and oah rules sync), the skill kit cache and project pins, unlazy, MCP template pins and models. Finish or release open leases first.

When you need it

Models, skills and tools keep changing; without a clear way to update each part, a harness falls behind or an update silently breaks it.

How it works

  1. From a clone: git pull, then bash install/install.sh --skip-tools (Windows: -SkipTools); then run oah --version and oah doctor in a new terminal.
  2. In each project: oah rules check reports whether the managed block in AGENTS.md differs and only reads; oah rules sync replaces only that block; oah init writes only what is missing; oah models --refresh rereads the model lists.
  3. Skills: the kit cache via oah skills update or the automatic check; project copies only via oah skills update --project; user-level folders only via --global, which asks first.
  4. unlazy stays pinned and only a new oah version moves the pin. To repair OAH_UNLAZY_UNPINNED, clear or fix OAH_UNLAZY_DIR, move incompatible project copies aside, then rerun oah init --with-unlazy.
  5. MCP templates: OAH_MCP_UPDATE_AVAILABLE means a newer npm version exists, not that it is installed; you edit the @<version> suffix in your own config and restart Claude Code or Codex.
  6. docs/UPSTREAM_SYNC.md records which changes from the owner's own harness were ported, skipped or deferred; you receive them as ordinary oah releases.

Example

Update oah from a clone on macOS (from Upgrade).

cd open-agent-harness
git pull
bash install/install.sh --skip-tools

Requirements

  • No open leases: oah status lists them, and skill updates wait while any lease is active.

Limits and recovery

  • None of the update commands edits an MCP pin or your MCP configuration.
  • unused(offline) or unused(registry error) means the version check could not establish an answer; retry later.
  • The Models part of the page describes main, which is not in a release yet.
  • Nothing is copied from the owner's harness, and it is never a runtime dependency.

Original documents

Related