Install Polydeukes
Install the pdks judge, then choose the extensions you need. You can judge Git diffs without an
agent integration. Claude Code, Codex, and project memory each have their own executable.
Choose an installation route
Section titled “Choose an installation route”| Route | Use it when | What runs |
|---|---|---|
| Homebrew | You manage command-line tools with brew | Prebuilt Rust executables |
| crates.io | You have a Rust toolchain | Rust executables built locally; cargo-binstall can fetch release archives |
| npm / pnpm | You want project-local, versioned development dependencies | A Node launcher selects the packaged Rust executable |
| PyPI | You manage tools with uv or Python environments | Platform wheels install Rust executables |
Prebuilt releases support macOS arm64, Linux x64, and Linux arm64. Choose a route you already use; you do not need all four. Native executables need no Node runtime. npm launchers require Node; the TypeScript SDK requires Node 24 or newer. Source installation requires Rust 1.89 or newer.
Homebrew
Section titled “Homebrew”brew install huskyhoochu/polydeukes/pdksAdd only the extensions you want:
brew install huskyhoochu/polydeukes/pdks-claude-codebrew install huskyhoochu/polydeukes/pdks-codexbrew install huskyhoochu/polydeukes/pdks-memoryThe extension formulae depend on the judge. Installing a formula does not register project hooks.
crates.io
Section titled “crates.io”cargo install --locked pdkscargo install --locked pdks-claude-codecargo install --locked pdks-codexcargo install --locked pdks-memoryEach line installs one executable; the last three are optional. Put Cargo’s bin directory on PATH.
If you already use cargo-binstall, cargo binstall pdks fetches the matching release archive; the
same command accepts each extension name. On other targets it can fall back to compiling source.
npm or pnpm
Section titled “npm or pnpm”From your project root:
npm install --save-dev polydeukesnpm install --save-dev @polydeukes/adapter-claude-codenpm install --save-dev @polydeukes/adapter-codexnpm install --save-dev @polydeukes/memoryOr use pnpm add -D with the same package names. Keep the extensions you use and commit your
lockfile. Use npx --no-install pdks or pnpm exec pdks wherever this guide says pdks; use
npx --no-install pdks-claude-code init or pnpm exec pdks-claude-code init for host registration.
A local installation is available through these package-manager commands, not necessarily your
interactive shell’s PATH.
Local npm/pnpm registration points at the installed platform executables. Rerun init if you move the project or switch installation routes. Keep the development dependencies installed wherever those registered hooks run.
uv tool install polydeukesuv tool install polydeukes-claude-codeuv tool install polydeukes-codexuv tool install polydeukes-memoryEach extension is a separate tool installation. Run uv tool update-shell if the tool bin directory
is not on PATH, then start a new shell. Alternatively, install the same names with pip in an
activated virtual environment. Keep that environment available to the registered hook paths. The
Python SDK is a different package, polydeukes-sdk.
Verify before connecting an agent
Section titled “Verify before connecting an agent”pdks --versionpdks docsBoth commands work without project configuration. If your shell cannot find pdks, check the
installation route’s bin directory or use the npm/pnpm command above. If an extension cannot be
found, install that extension and check its directory is on PATH as well.
Continue with your first judgment, then connect your host or Git. Existing installations should follow the migration guide before replacing hook registrations.
Direct release archives and upgrades
Section titled “Direct release archives and upgrades”GitHub Releases also provide
<executable>-<target>-v<version>.tar.gz. Targets are aarch64-apple-darwin,
x86_64-unknown-linux-musl, and aarch64-unknown-linux-musl. Extract the archive and place its
executable on PATH; retain its license files. Each archive contains one executable.
Upgrade through the package manager you installed with. After upgrading, check pdks --version, run
pdks explain in the project, and verify a real host call in .polydeukes/roi.log. Installed
pdks docs describes its executable’s build; the website may describe a newer release.