Skip to main content
Get your workstation ready for local PRFlow runs. Cloud runs use a separate environment and runner setup path.

Required Local Tools

Install Claude Code or Codex, then make these tools available on PATH:
Claude Code and Codex use different skill syntax. Follow the client-specific steps on the installation page and Commands and Arguments.
The repository must be a Git repository connected to GitHub. Your GitHub identity needs enough access to read the issue and to create branches, issue comments and pull requests. PRFlow avoids GNU-only command flags, so the standard macOS and BSD command-line tools work.

Check Your Machine

Run these commands and read the versions they print:
On a macOS workstation with everything installed, the first four print something like this:
Your exact version numbers will differ. What matters is that every command prints a version instead of command not found, that Python reports 3.11 or newer and that gh auth status reports a logged-in account. PRFlow also ships a preflight check, which initialization runs for you. When every dependency is present it prints one line:
If Python cannot import PyYAML but everything else is present, it prints a different line and still succeeds:
The preflight tool keeps the older devflow spelling in its own output. That is expected and is not a sign of a stale install.

macOS Ships an Older Python

macOS includes python3 at /usr/bin/python3, and on current releases that interpreter is Python 3.9. PRFlow needs 3.11 or newer. If a newer Python is installed but /usr/bin/python3 comes first on PATH, PRFlow’s preflight reports the version failure even though a suitable Python exists on the machine. Check which interpreter actually answers, and what else is available:
On a machine where a newer Python is installed and correctly ordered, the result looks like this:
The first line is the version that will run. The list shows every python3 on PATH in the order the shell searches them. If /usr/bin/python3 is first and reports 3.9, install a newer Python and put it ahead of /usr/bin on PATH.

PyYAML Is Advisory for Local Runs

PyYAML is recommended but is not a hard local prerequisite. Install it with:
Name the package rather than pointing pip at a requirements file. A requirements file resolves against your current working directory, so in a Python project you would install that project’s dependencies by mistake. Without PyYAML, one helper cannot apply severity demotions from deferred-findings blocks in pull-request bodies. The review continues with the findings intact. That can surface and fix more findings than you intended, so installing PyYAML avoids unnecessary churn. PyYAML stays required for PRFlow’s own test suite, its continuous integration and the cloud tiers.

Windows Bash Choices

On Windows, use any one of these POSIX bash environments:
  • Windows Subsystem for Linux (WSL) bash
  • Git Bash
  • MSYS2 bash
PRFlow does not require one specific choice. Set the DEVFLOW_BASH environment variable when you need to select the bash executable explicitly:
DEVFLOW_BASH keeps the DEVFLOW_ prefix on purpose. PRFlow reads no PRFLOW_BASH equivalent, so renaming the variable removes the setting instead of moving it, and it does so silently.
A PowerShell-only host with none of these bash environments cannot run PRFlow’s shell helpers. Windows may also expose Python as python or py -3 with no python3 command at all. Follow installation troubleshooting if the preflight reports that case.

Let Initialization Check the Environment

The recommended init skill runs the bundled preflight after it scaffolds the repository files. A missing tool is reported with a remedy, and the scaffold that was already written stays in place.