Requirements
- macOS or Linux on amd64 or arm64.
- At least one harness CLI, installed and logged in yourself: codex, kimi, opencode or agy. pactify runs it under your own login. opencode 2.x is the exception: sign in once with
pactify sub login opencode, which keeps that login in pactify's own data. - git. Worktree jobs need it, and kimi, opencode and agy read-only jobs use it to check that the repository did not change.
CLI
The installer downloads the latest release for your platform, verifies its checksum and installs the binary.
curl -fsSL https://pactify.dev/install.sh | sh It installs to the first writable of /usr/local/bin and ~/.local/bin. Set PACTIFY_BINDIR to choose a directory or PACTIFY_VERSION to pin a release. You can read the script before running it.
With Go installed (version in go.mod):
go install github.com/agentjoey/pactify/cmd/pactify@latest Confirm the install with pactify version and pactify sub --help.
Claude Code plugin
Run these in Claude Code:
/plugin marketplace add https://pactify.dev/marketplace.json/plugin install pactify@pactify The plugin adds /delegate for the default harness, /delegate-codex, /delegate-kimi, /delegate-opencode and /delegate-agy for a specific one, and a read-only /jobs. Claude delegates only when you ask it to. The experimental agy skill runs only from its slash command.
Other hosts
A portable plugin provides the same delegation and review workflow for Codex, Copilot and Cursor. Each host must allow pactify sub to run outside its sandbox, because pactify starts other harness CLIs outside the workspace.
Codex
Add the marketplace, then install the plugin from it:
codex plugin marketplace add agentjoey/pactify --sparse .agents/plugins --sparse plugins/agent-plugin codex plugin add pactify@pactify To let pactify sub run outside the sandbox, add this line to ~/.codex/rules/default.rules:
prefix_rule(pattern=["pactify", "sub"], decision="allow") Copilot
copilot plugin install agentjoey/pactify:plugins/agent-plugin/pactify Cursor
Open Settings, then Plugins, and paste https://github.com/agentjoey/pactify/tree/main/plugins/agent-plugin into plugin search.
Skills folder
Hosts that read .agents/skills/ can use the folders in plugins/agents-skills. Each release also ships pactify-delegate.zip with a single skill. Their prerequisite check only detects pactify and prints install commands; agents never run the installer.
Check a harness
pactify sub doctor codex Doctor runs a real write job and a read-only job, then reports the CLI version, the model that ran, network access, sandboxing and session hiding. Leave out the name to check every installed harness. The probes use model quota. See the doctor reference.
Upgrade
Run the installer or go install again. Job history in ~/.pactify carries over. Then update the host plugin:
- Claude Code:
claude plugin marketplace update pactify, thenclaude plugin update pactify@pactify, then/reload-pluginsor a new session. - Codex:
codex plugin marketplace upgrade pactify. - Copilot and Cursor: update the plugin in the host's plugin manager.
Uninstall
- Run
pactify sub status --all. Apply or discard jobs with pending worktrees and cancel running ones; removing pactify's data discards unapplied changes. - Look in
~/.pactify/credential-quarantine. If a harness refreshed a login that pactify could not write back, the copy is kept there. - Delete
~/.pactify. Harness logins are linked into it, so deleting it removes the links, not your own login files. An opencode 2.x login made withpactify sub login opencodelives only there and goes with it. - Delete the binary (
command -v pactifyshows where it is) and remove the host plugins.
The operations guide lists the exact commands for each host.