Pytxo

First landing in 5 minutes

Install the CLI and get a pytxo land decision on two agent branches in your own repository.

This guide goes from installing the CLI to a landing decision on your own repository. Every time on this page was measured on Windows 11 with Pytxo 1.3.0, or a 1.3.1 build where the text says so, on lukeed/mri, a small npm package whose test suite runs 84 assertions, using one branch from Claude Code and one from Codex.

You need Node.js 18 or newer, Git, and a repository with at least two agent branches. Any tool that leaves each agent's work on its own branch will do: Claude Code, Codex, Orca, Conductor or plain git worktree. Make sure each agent's changes are committed; Pytxo lands commits, not uncommitted files.

1. Install

npm i -g pytxo
pytxo --version

npm 12 and pnpm 10 skip install scripts by default, so npm i -g installs only the launcher and prints a warning about pytxo's postinstall, which you can ignore. Your first pytxo command downloads the native binary and checks it against the release's SHA-256 list: 4.3 seconds after an npm 12 install on 2026-10-22, and 19.4 and 27.8 seconds in earlier pnpm and --ignore-scripts runs. Later commands start in under a second. npm 11 and older run the download during npm i -g instead (22.7 and 29.9 seconds in two runs).

2. Check the branches together

From your repository, with the branch you want to land into checked out:

pytxo land claude:claude/double-dash codex:codex/empty-value --check "npm install && npm test" --per-input

Use your own branch names. The claude: and codex: prefixes are labels for the output and the receipt; leave them off if you prefer.

The check runs in a fresh worktree where nothing is installed, so a Node project has to install its dependencies in the check. Use npm ci instead of npm install if the repository has a lockfile. With --check "npm test" alone, every check failed on 'bundt' is not recognized, which is mri's build tool missing, not a problem with the branches. If you leave out --check, Pytxo 1.3.1 and later suggest a command from your project files without running it.

--per-input also runs the check on each branch alone, which tells a broken check apart from a broken combination. This command took 73.1 seconds: 24.7 and 6.9 seconds for the branches alone and 22.3 seconds for the combination, mostly npm install. The output ends with:

decision  READY
land it   rerun with --apply

Ready means no conflict and every combined check passed. Nothing changed yet: your branch and working tree are as they were.

3. If the decision is BLOCKED

In a second run, Claude Code renamed the helper toVal to assign, while Codex made negated flags call toVal. Each branch passed alone. Together they failed. A 1.3.1 build prints why:

checks
  input:claude/rename-helper   pass           20.8s  npm install && npm test
  input:codex/negated-flags-v1 pass           5.4s  npm install && npm test
  combined                     FAIL exit 1    16.0s  npm install && npm test
      ReferenceError: toVal is not defined

! Every input passed its checks alone. The combined change failed.

decision  BLOCKED

Fix the failure on one of the branches, then run the same command again. Here the fix was to rebase the Codex branch onto the Claude branch and rename the call in one commit; the next run took 68.9 seconds and was ready. pytxo receipts show <id> prints the last 40 lines of each check.

4. Land it

Add --apply to the same command:

pytxo land claude:claude/rename-helper codex:codex/negated-flags --check "npm install && npm test" --per-input --apply

--apply runs the checks again and moves your branch only if the result is still ready and the branch has not moved. It took 57.0 seconds and ended with decision LANDED: one merge commit per branch on top of your branch. Because --apply lands only a ready result, you can pass it on the first run.

5. Keep the receipt

pytxo receipts

Every decision, blocked ones included, has a receipt in .git/pytxo/receipts. pytxo receipts share <id> publishes a page with counts and outcomes after pytxo login.

The measured total

StepTime
npm i -g pytxo22.7 s
pytxo --version0.3 s
pytxo land … --check "npm install && npm test" --per-input73.1 s
Install to decision96.1 s

These are command times only; reading the output is extra. npm's package cache was already warm: a cold npm install of mri took 40.5 seconds on the same machine.

Next: every option in Land branches, and pull requests in Land in GitHub Actions.