oah helps you build an AI development workflow that fits you and keeps changing as AI improves. It is a working reference and a guide you can adapt.
A useful result needs more than generated code: the scope must be clear, the changes checked, and decisions kept for the next session. oah connects those steps so one request can carry through the work with a record of what happened.
002 / Why it keeps changing
Older rules and skills can hold a newer model back or make its results worse. Defaults should be easy to understand and change; a rule that gets in your way is a design problem to fix.
Keep the parts that help, remove what no longer helps, and revise the workflow as your tools improve. You can start with the full setup or take only the impact map, wiki, leases, evidence gates or review loop that your project needs.
003 / Why Claude builds and Codex reviews
This split comes from the author's own experience, not a measured comparison: Claude fills in details a beginner might miss in a first version; Codex checks and corrects within a fixed scope.
The current commands run Claude Code and Codex CLI. The ideas can also be adapted to another tool or harness, with one AI or several. Give each stage to the AI that suits your work.
004 / From one request to a checked change
Describe the result you want in plain language. The AI records the goal and scope, checks what the change touches, reserves its paths and chooses the tools for the task. Claude builds; Codex reviews, corrects and reviews again.
Gates record the checks and their results. The project wiki keeps the decisions and reasons beside the code. In v0.3.0, optional TypeSafe Jev can judge difficulty for model selection; rules remain the fallback when it is unavailable or uncertain.
005 / The decisions stay with you
You ask, answer when the AI needs a decision, and confirm before the change lands. If the same problem repeats or the work reaches a design choice, the loop stops to ask you.
Ask “Is the review done?” or “Did all the gates pass?” and inspect the evidence. The final confirmation belongs to you; writing code, checking it and approving its landing are separate steps.
006 / Free, open source, yours to adapt
oah is free, open-source software under the MIT license. Read the source, change it and bring the useful pieces into your own workflow. Your AI services and any optional services use their own accounts and billing.
The current v0.3.0 release supports macOS and native Windows, and expects familiarity with git and pull requests. Install it, run oah init in your project, then try the small hello-oah example. The installation and documentation sections explain each step.
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
It is on only when .oah/config.toml says after_finish = true under [updates]; a config without the key counts as off.
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.
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.
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.
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.