Skip to main content

Splay

Splay runs bounded coding tasks through an eligible local coding agent, isolates its changes, verifies the result, and retains the evidence.

Install and connect

Install Codex and sign in with an eligible personal subscription, then:

pip install splay-router
splay setup --qualify

For this checkout, use uv sync followed by uv run splay setup --qualify. The remediation described here is in source; it has not yet been published as a new PyPI release.

Setup registers the MCP service in Codex, installs the Splay skill and activation instructions, and checks the connection. --qualify authorizes one small, bounded subscription task with an independent verifier. Setup reports ready only when the installed worker has a verified qualification. Changed account, installation, version, or model bindings require qualification again. Credentials stay with Codex.

Restart existing Codex sessions after setup. Ordinary bounded implementation, fix, and review requests should use Splay automatically. You can also choose Splay through /skills, or type $splay. You do not need to remember MCP tool names. Activation is mediated by the host; it is not a guarantee that every model response invokes Splay. The supported integration is Codex, not every agent host.

The installer enables automatic calls only for the six bounded task tools: delegate, review, status, explain, cancel, and apply. Other tools retain prompt approval. No tool can enable paid fallback, raise server ceilings, or bootstrap qualification. Normal implementation requests authorize the host to apply a verified result through the apply tool, which checks the original repository and exact candidate; reviews never promote.

Use from the terminal

From a clean Git repository:

splay run "Fix the failing parser test" --repo . --verify "python -m pytest tests/test_parser.py"
splay explain task-...
splay apply task-...

Use your project's actual verification command. Worker completion alone is not success. A passing candidate stays in its worktree until applied; promotion checks the exact verified tree and refuses a changed or dirty canonical repository. It never runs blanket git reset --hard or git clean.

splay status
splay profiles
splay doctor
splay policy
splay configure --help
splay task cancel task-...
splay uninstall --yes

Uninstall disconnects the owned host integration and preserves history. --purge is a separate operation that refuses active work, active workspaces, a running daemon, or unowned files. Modified user configuration is preserved. --home and --state-dir support isolated setup testing.

Supported execution and current limits

The supported live path is Codex SINGLE execution with an included personal subscription, fresh account/rate-limit checks, bounded resources, isolated worktrees, independent verification, durable results, cancellation, and explicit safe promotion. Unknown or paid channels block by default. MCP starts a local daemon on demand; work survives the submitting MCP client's exit. Restart blocks interrupted work for review and terminates workers whose saved process identity still matches.

This is not full implementation of every requirement in the draft specification. Remaining gaps include a second qualified live worker family, quality-calibrated multi-model routing, automatic bounded escalation/handoff, project-specific policy overlays, and the draft's newer MCP Tasks extension. ACP and parallel strategy experiments remain diagnostics/research. Hard no-network verification requests block when no qualified isolation backend can enforce them. Portable verification commands run locally with a filtered environment; they are not an OS sandbox for hostile repositories.

MCP uses supported revision negotiation and durable Splay task handles rather than claiming Tasks-extension certification. Synthetic evaluations and one small live qualification do not establish general coding quality or optimal routing. See the original audit and remediation evidence. Historical phase documents describe component milestones and are not current product certification.

Development and acceptance

uv sync
uv run pytest
uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run mypy

An opt-in live acceptance test creates a disposable repository, delegates through MCP, verifies, promotes, restarts the daemon, and checks durable results:

uv run python scripts/live_acceptance.py --live --state-dir /path/to/qualified/state
uv run python scripts/host_acceptance.py --live --state-dir /path/to/qualified/state

Research commands are explicitly diagnostic: splay route plan --diagnostic --prompt "...", splay profile probe (stub by default), and splay eval routing. They do not qualify production routing.

Apache-2.0 — see LICENSE.

Release files for splay-router 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for splay-router 0.15.0
File Size Uploaded
splay_router-0.15.0.tar.gz 164.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for splay-router 0.15.0
File Interpreter ABI Platform
splay_router-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 301.6 kB

Release files / splay_router-0.15.0.tar.gz

Download URL splay_router-0.15.0.tar.gz
Size 164.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8a028cf7a966e081d165ede674e7e15fa89ad0b7e90cbb6511290bbf439e4a54
BLAKE2b-256 checksum
How to use checksums
5227c9548a65ba5ee5b5f7dd86c9c3747f33088db70c08df816fcfae8a195a22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / splay_router-0.15.0-py3-none-any.whl

Download URL splay_router-0.15.0-py3-none-any.whl
Size 137.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5337182b38d09591efdb5a3d3b1dd8284cab4a98ef6626209e7023f7df94632e
BLAKE2b-256 checksum
How to use checksums
e8bd925c88912416afb6516db82e3999715ee381fc1b9e47fb7547632b432d0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.17.1

2 release files

0.17.0

2 release files

0.16.0

2 release files

This release

0.15.0 This release

2 release files

0.14.1

2 release files

0.14.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page