Install

Install the pactify CLI, add it to Claude Code or another agent host, and check that your harness CLI works with it.

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, then claude plugin update pactify@pactify, then /reload-plugins or a new session.
  • Codex: codex plugin marketplace upgrade pactify.
  • Copilot and Cursor: update the plugin in the host's plugin manager.

Uninstall

  1. Run pactify sub status --all. Apply or discard jobs with pending worktrees and cancel running ones; removing pactify's data discards unapplied changes.
  2. Look in ~/.pactify/credential-quarantine. If a harness refreshed a login that pactify could not write back, the copy is kept there.
  3. 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 with pactify sub login opencode lives only there and goes with it.
  4. Delete the binary (command -v pactify shows where it is) and remove the host plugins.

The operations guide lists the exact commands for each host.