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.
One command per OS installs oah on macOS 13+ or native Windows 11; Linux is not yet supported. The installer finds Python 3.11+, asks before installing each missing tool with its official command, installs oah with uv (or pipx, or pip), checks that a new terminal finds oah, and runs oah doctor. --dry-run shows every step first.
When you need it
A tool that installs other tools can change your machine in ways you did not expect, and a missing prerequisite usually shows up only at the worst moment.
How it works
macOS: get git with xcode-select --install, clone, then run bash install/install.sh. Windows: get Git with winget install --id Git.Git -e, clone, then run powershell -ExecutionPolicy Bypass -File .\install\install.ps1.
Or download the v0.3.0 tag's source archive and SHA256SUMS from the release page, and refuse to unpack it unless its SHA-256 (shasum -a 256 on macOS, Get-FileHash -Algorithm SHA256 on Windows) matches its entry.
--dry-run (-DryRun) prints the ordered plan and changes nothing; --yes installs missing tools without asking about each; --skip-tools only installs oah.
Five steps: find Python 3.11+ (offering uv), check the tools and ask Install now? [y/N] for each missing one, install oah, check that a new terminal finds oah, run oah doctor.
The last line is OAH_INSTALL_OK, or OAH_INSTALL_INCOMPLETE with what still needs attention. In a new terminal, oah --version prints oah 0.3.0.
macOS 13+ or Windows 11, natively, without WSL; Windows 10 22H2 is best effort.
Python 3.11+ (no third-party runtime packages), git and a remote such as a GitHub repository.
Claude Code (a Pro, Max, Team, Enterprise or Console account) and Codex CLI (a ChatGPT plan or an API key), installed and signed in by you.
Recommended: uv, Node.js (required once a project uses gates), unlazy, graphify, gh, gitleaks, jq and ripgrep.
Limits and recovery
Linux is not yet supported.
Installers that need your password ask for it themselves; oah never sees it.
A dry run does not verify a manually downloaded archive; complete the checksum step first.
oah: command not found after installing: open a new terminal, then try uv tool update-shell.
pip's “externally managed environment” error: install uv and run the installer again. On Windows, an unrecognised winget means installing App Installer from the Microsoft Store.