{"_id":"@agenticengineeringagency/ultimate-harness","_rev":"7-40c4e7f89802f0dbc4b7b093f7953a6c","name":"@agenticengineeringagency/ultimate-harness","dist-tags":{"latest":"0.9.0"},"versions":{"0.3.0":{"name":"@agenticengineeringagency/ultimate-harness","version":"0.3.0","license":"MIT","_id":"@agenticengineeringagency/ultimate-harness@0.3.0","maintainers":[{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"}],"homepage":"https://uh.agenticengineering.lat","bugs":{"url":"https://github.com/Agentic-Engineering-Agency/ultimate-harness/issues"},"bin":{"uh":"dist/cli.js"},"dist":{"shasum":"cd4a0c6bc24560321285380c37ba19ddce3f0cb5","tarball":"https://registry.npmjs.org/@agenticengineeringagency/ultimate-harness/-/ultimate-harness-0.3.0.tgz","fileCount":101,"integrity":"sha512-MXVNPmllCZ2r1DafSe3Mar2qfGUTgV5M/RZe7fE7m7pDnmUOIFzzTm/IycNMJ++ARKsP03gGCbfab0JxxiUUNA==","signatures":[{"sig":"MEYCIQCjDvVaka+fEimDlcPEW6yHZbup/sgH4bDWA5X9p5SccwIhANxLBmi25+V8Hz/AgzaO0E0BViAUuTPlSzduqmKjA9x3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":910008},"type":"module","shasum":"cd4a0c6bc24560321285380c37ba19ddce3f0cb5","engines":{"bun":">=1.3.14","node":">=20"},"scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json","clean":"rm -rf dist","tui-spike":"bun bin/uh-tui-spike.tsx","typecheck":"tsc -p tsconfig.tests.json --noEmit","publish:dry-run":"bun publish --dry-run"},"_npmUser":{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"},"_integrity":"sha512-MXVNPmllCZ2r1DafSe3Mar2qfGUTgV5M/RZe7fE7m7pDnmUOIFzzTm/IycNMJ++ARKsP03gGCbfab0JxxiUUNA==","repository":{"url":"git+https://github.com/Agentic-Engineering-Agency/ultimate-harness.git","type":"git"},"_npmVersion":"10.8.3","description":"Runtime-agnostic software-development harness for agentic engineering work.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"latest","yaml":"latest","solid-js":"1.9.12","commander":"latest","@opentui/core":"^0.2.13","@opentui/solid":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","vitest":"latest","typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/ultimate-harness_0.3.0_1779169086507_0.4758841700726082","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@agenticengineeringagency/ultimate-harness","version":"0.4.0","license":"MIT","_id":"@agenticengineeringagency/ultimate-harness@0.4.0","maintainers":[{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"}],"homepage":"https://uh.agenticengineering.lat","bugs":{"url":"https://github.com/Agentic-Engineering-Agency/ultimate-harness/issues"},"bin":{"uh":"dist/cli.js"},"dist":{"shasum":"63b46e3812421f6c43806554bb70eb354f5ff640","tarball":"https://registry.npmjs.org/@agenticengineeringagency/ultimate-harness/-/ultimate-harness-0.4.0.tgz","fileCount":163,"integrity":"sha512-Jwp/nXrYBXS2MTlNwo5kz+HdnxbEl5Py7rwQqg2aOESzZ7uboNJqI+/FCl6SatWzF1l8z/MxwUk1ODZ4xd4FJg==","signatures":[{"sig":"MEUCIQD6jLG9FByF63J5Mq9FQn99Ap5kcOPhiaCRitEJH4UMHwIgQeaiTxBRIaF09nuSGayWu/dcqfRVMTeDO1f+OexPEDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298270},"type":"module","engines":{"bun":">=1.3.14","node":">=20"},"gitHead":"0c5ee5fed50dff1cdac3960de30ee43db53a3a8c","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json","clean":"rm -rf dist","tui-spike":"bun bin/uh-tui-spike.tsx","typecheck":"tsc -p tsconfig.tests.json --noEmit","plugin:test":"pytest apps/hermes-plugin/dashboard/tests/","plugin:build":"bun apps/hermes-plugin/esbuild.config.mjs","plugin:watch":"bun apps/hermes-plugin/esbuild.config.mjs --watch","publish:dry-run":"bun publish --dry-run","plugin:typecheck":"tsc -p apps/hermes-plugin/dashboard/tsconfig.json --noEmit"},"_npmUser":{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"},"repository":{"url":"git+https://github.com/Agentic-Engineering-Agency/ultimate-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"Runtime-agnostic software-development harness for agentic engineering work.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"latest","yaml":"latest","solid-js":"1.9.12","commander":"latest","@opentui/core":"^0.2.13","@honcho-ai/sdk":"^2.1.1","@opentui/solid":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","vitest":"latest","esbuild":"^0.28.0","typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/ultimate-harness_0.4.0_1779310467665_0.06736248227169628","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@agenticengineeringagency/ultimate-harness","version":"0.5.0","license":"MIT","_id":"@agenticengineeringagency/ultimate-harness@0.5.0","maintainers":[{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"}],"homepage":"https://uh.agenticengineering.lat","bugs":{"url":"https://github.com/Agentic-Engineering-Agency/ultimate-harness/issues"},"bin":{"uh":"dist/cli.js"},"dist":{"shasum":"e7f38461e87893f0f5905fedd0f333517dc844e0","tarball":"https://registry.npmjs.org/@agenticengineeringagency/ultimate-harness/-/ultimate-harness-0.5.0.tgz","fileCount":190,"integrity":"sha512-IGRey6m6UEtBR9vsGmTxVeg4FpMPzZUv6Oo6rx19IL/Ps3UnbIcA9u+Q+ETWgbTAWKGC5ksuSAxMG41hzBdMiQ==","signatures":[{"sig":"MEYCIQDvNeSuXDQWMt9KlFTRorqVfZnMf4lmNkVmhTGZBqW+OQIhAPggCIVHr+D6M0XhlQdUvJkOPUlaS4hxo6LJj+jt6dki","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1371218},"type":"module","engines":{"bun":">=1.3.14","node":">=20"},"gitHead":"a917f4687b348e8b6a82e4fc8c0cdafa17da3091","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json","clean":"rm -rf dist","tui-spike":"bun bin/uh-tui-spike.tsx","typecheck":"tsc -p tsconfig.tests.json --noEmit","plugin:test":"pytest apps/hermes-plugin/dashboard/tests/","plugin:build":"bun apps/hermes-plugin/esbuild.config.mjs","plugin:watch":"bun apps/hermes-plugin/esbuild.config.mjs --watch","publish:dry-run":"bun publish --dry-run","plugin:typecheck":"tsc -p apps/hermes-plugin/dashboard/tsconfig.json --noEmit"},"_npmUser":{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"},"repository":{"url":"git+https://github.com/Agentic-Engineering-Agency/ultimate-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"Runtime-agnostic software-development harness for agentic engineering work.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"latest","yaml":"latest","solid-js":"1.9.12","commander":"latest","@opentui/core":"^0.2.13","@honcho-ai/sdk":"^2.1.1","@opentui/solid":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","vitest":"latest","esbuild":"^0.28.0","typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/ultimate-harness_0.5.0_1779314728591_0.028427927476353476","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@agenticengineeringagency/ultimate-harness","version":"0.6.0","license":"MIT","_id":"@agenticengineeringagency/ultimate-harness@0.6.0","maintainers":[{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"}],"homepage":"https://uh.agenticengineering.lat","bugs":{"url":"https://github.com/Agentic-Engineering-Agency/ultimate-harness/issues"},"bin":{"uh":"dist/cli.js"},"dist":{"shasum":"9d6c91597e4e959d8c41afc690d8475616f7c60b","tarball":"https://registry.npmjs.org/@agenticengineeringagency/ultimate-harness/-/ultimate-harness-0.6.0.tgz","fileCount":202,"integrity":"sha512-srlT+mN3t7Ela8HVvNtm5MPOZJXirNLMNkyvYnwv+kCm5HHjeFUXNTLt1eVSkOCD15T3BWK7fibUvB7E2zIicA==","signatures":[{"sig":"MEQCIAxMe7tZOG6rVDz5s1+k+SAwdZFNj+uc8/Ux+6Xjy8SEAiBw4Nhym8+srdG4GtOIqeaguvc0tyOW4fr+C0/E+hSgQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1434157},"type":"module","engines":{"bun":">=1.3.14","node":">=20"},"gitHead":"2bfbe2521cd9b7d3d4d97397f5a5e96abe46b7d5","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json","clean":"rm -rf dist","tui-spike":"bun bin/uh-tui-spike.tsx","typecheck":"tsc -p tsconfig.tests.json --noEmit","plugin:test":"pytest apps/hermes-plugin/dashboard/tests/","plugin:build":"bun apps/hermes-plugin/esbuild.config.mjs","plugin:watch":"bun apps/hermes-plugin/esbuild.config.mjs --watch","publish:dry-run":"bun publish --dry-run","plugin:typecheck":"tsc -p apps/hermes-plugin/dashboard/tsconfig.json --noEmit"},"_npmUser":{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"},"repository":{"url":"git+https://github.com/Agentic-Engineering-Agency/ultimate-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Runtime-agnostic software-development harness for agentic engineering work.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"latest","yaml":"latest","solid-js":"1.9.12","commander":"latest","@opentui/core":"^0.2.13","@honcho-ai/sdk":"^2.1.1","@opentui/solid":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","vitest":"latest","esbuild":"^0.28.0","typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/ultimate-harness_0.6.0_1779591492843_0.4396115044167024","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@agenticengineeringagency/ultimate-harness","version":"0.7.0","license":"MIT","_id":"@agenticengineeringagency/ultimate-harness@0.7.0","maintainers":[{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"}],"homepage":"https://uh.agenticengineering.lat","bugs":{"url":"https://github.com/Agentic-Engineering-Agency/ultimate-harness/issues"},"bin":{"uh":"dist/cli.js"},"dist":{"shasum":"ea5aabe2c4b71a91ae2407ed92b20080f39f1a9e","tarball":"https://registry.npmjs.org/@agenticengineeringagency/ultimate-harness/-/ultimate-harness-0.7.0.tgz","fileCount":217,"integrity":"sha512-66YoiDiqwIxhCscxf/G65hQ0/5qI0jMDEdnZVuN3VnVh434suA6XN8UocbnzQPWETh6fYLxg0+7pfc/IX8sV3g==","signatures":[{"sig":"MEUCIDxlFMTaYGJkcmwFB0vG2J+3UP0gbx4nvhCLbnR4zVtQAiEAxem5WrQD4c5n1ZoP8bKMNtkJf+wvPkpZacOquuTkJKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1567712},"type":"module","engines":{"bun":">=1.3.14","node":">=20"},"gitHead":"e7b6a589249ef000ede2ec5fd42f962f9892d31b","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json","clean":"rm -rf dist","tui-spike":"bun bin/uh-tui-spike.tsx","typecheck":"tsc -p tsconfig.tests.json --noEmit","plugin:test":"pytest apps/hermes-plugin/dashboard/tests/","plugin:build":"bun apps/hermes-plugin/esbuild.config.mjs","plugin:watch":"bun apps/hermes-plugin/esbuild.config.mjs --watch","publish:dry-run":"bun publish --dry-run","plugin:typecheck":"tsc -p apps/hermes-plugin/dashboard/tsconfig.json --noEmit"},"_npmUser":{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"},"repository":{"url":"git+https://github.com/Agentic-Engineering-Agency/ultimate-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Runtime-agnostic software-development harness for agentic engineering work.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"latest","yaml":"latest","solid-js":"1.9.12","commander":"latest","@opentui/core":"^0.2.13","@honcho-ai/sdk":"^2.1.1","@opentui/solid":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","vitest":"latest","esbuild":"^0.28.0","typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/ultimate-harness_0.7.0_1779644191757_0.34060538771494286","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@agenticengineeringagency/ultimate-harness","version":"0.8.0","license":"MIT","_id":"@agenticengineeringagency/ultimate-harness@0.8.0","maintainers":[{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"}],"homepage":"https://uh.agenticengineering.lat","bugs":{"url":"https://github.com/Agentic-Engineering-Agency/ultimate-harness/issues"},"bin":{"uh":"dist/cli.js"},"dist":{"shasum":"7e173d9432e6a87f5fec1f764522062a8c891b7f","tarball":"https://registry.npmjs.org/@agenticengineeringagency/ultimate-harness/-/ultimate-harness-0.8.0.tgz","fileCount":218,"integrity":"sha512-ZX8O9Ys0T+vG6brZum60vBOmcOl29PiJ7YgdXY2vuURD1p3x9yOlvKJfZtB0rFXCLk2oo+OvfOjI5kikvdzC6g==","signatures":[{"sig":"MEUCIHCF1P1cuPlplURaIXyT+iOfjPvrmuerBzTl5eQcq2rEAiEAxvE80WKMdS5Ks/ZFz5MXkuUydBM6OkRZlvgu5Ejtxo4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1598058},"type":"module","engines":{"bun":">=1.3.14","node":">=20"},"gitHead":"d3891bb206b934dc571b04561daef3792e103c99","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json","clean":"rm -rf dist","tui-spike":"bun bin/uh-tui-spike.tsx","typecheck":"tsc -p tsconfig.tests.json --noEmit","plugin:test":"pytest apps/hermes-plugin/dashboard/tests/","plugin:build":"bun apps/hermes-plugin/esbuild.config.mjs","plugin:watch":"bun apps/hermes-plugin/esbuild.config.mjs --watch","publish:dry-run":"bun publish --dry-run","plugin:typecheck":"tsc -p apps/hermes-plugin/dashboard/tsconfig.json --noEmit"},"_npmUser":{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"},"repository":{"url":"git+https://github.com/Agentic-Engineering-Agency/ultimate-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Runtime-agnostic software-development harness for agentic engineering work.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"latest","yaml":"latest","solid-js":"1.9.12","commander":"latest","@opentui/core":"^0.2.13","@honcho-ai/sdk":"^2.1.1","@opentui/solid":"^0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","vitest":"latest","esbuild":"^0.28.0","typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/ultimate-harness_0.8.0_1779671787248_0.11599875564034923","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@agenticengineeringagency/ultimate-harness","version":"0.9.0","description":"Runtime-agnostic software-development harness for agentic engineering work.","type":"module","bin":{"uh":"dist/cli.js"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Agentic-Engineering-Agency/ultimate-harness.git"},"homepage":"https://uh.agenticengineering.lat","bugs":{"url":"https://github.com/Agentic-Engineering-Agency/ultimate-harness/issues"},"publishConfig":{"access":"public"},"engines":{"bun":">=1.3.14","node":">=20"},"scripts":{"dev":"tsx src/cli.ts","build":"rm -rf dist && tsc -p tsconfig.json","test":"vitest run","typecheck":"tsc -p tsconfig.tests.json --noEmit","tui-spike":"bun bin/uh-tui-spike.tsx","clean":"rm -rf dist","publish:dry-run":"bun publish --dry-run","plugin:build":"bun apps/hermes-plugin/esbuild.config.mjs","plugin:watch":"bun apps/hermes-plugin/esbuild.config.mjs --watch","plugin:typecheck":"tsc -p apps/hermes-plugin/dashboard/tsconfig.json --noEmit","plugin:test":"pytest apps/hermes-plugin/dashboard/tests/"},"dependencies":{"@honcho-ai/sdk":"^2.1.1","@opentui/core":"^0.2.13","@opentui/solid":"^0.2.13","commander":"latest","solid-js":"1.9.12","yaml":"latest","zod":"latest"},"devDependencies":{"@types/node":"latest","esbuild":"^0.28.0","tsx":"latest","typescript":"latest","vitest":"latest"},"_id":"@agenticengineeringagency/ultimate-harness@0.9.0","gitHead":"14d0a9450324582d691804ca4775b1eddda2075b","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-bVmidF6F+NFNlmHHx8GwSn3M51I833bQA9MCws7PIgzvk2Ic1A41/7nig/Eg0s/83MBra/ijCgGUA9ZbsbhWNg==","shasum":"f4a5445ae92efbf6e1efc133e7e80d787612e471","tarball":"https://registry.npmjs.org/@agenticengineeringagency/ultimate-harness/-/ultimate-harness-0.9.0.tgz","fileCount":250,"unpackedSize":1810004,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDbE/3ZS5eZKQZfrDbyabbZKpyA5HH2LZ9Ka6f0BQQkyAIhANM1kfKEjD2BinbZSBdAKJl+HIvr68DMA6e2BTIqhYXu"}]},"_npmUser":{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"},"directories":{},"maintainers":[{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ultimate-harness_0.9.0_1780179688393_0.22364475483022384"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-19T05:38:06.424Z","modified":"2026-05-30T22:21:28.769Z","0.3.0":"2026-05-19T05:38:06.690Z","0.4.0":"2026-05-20T20:54:27.810Z","0.5.0":"2026-05-20T22:05:28.810Z","0.6.0":"2026-05-24T02:58:13.041Z","0.7.0":"2026-05-24T17:36:31.939Z","0.8.0":"2026-05-25T01:16:27.449Z","0.9.0":"2026-05-30T22:21:28.615Z"},"bugs":{"url":"https://github.com/Agentic-Engineering-Agency/ultimate-harness/issues"},"license":"MIT","homepage":"https://uh.agenticengineering.lat","repository":{"type":"git","url":"git+https://github.com/Agentic-Engineering-Agency/ultimate-harness.git"},"description":"Runtime-agnostic software-development harness for agentic engineering work.","maintainers":[{"name":"lalolalo1873","email":"eduardo.lalo1999@gmail.com"}],"readme":"# Ultimate Harness\n\nUltimate Harness is a **runtime-agnostic software-development harness** for agentic engineering work.\n\nIt sits above coding agents and agent runtimes. Instead of becoming \"one more coding agent\", it standardizes the durable artifacts and lifecycle around agentic work:\n\n```text\nrequest / issue / spec\n  -> workflow profile\n  -> mission packet\n  -> runtime adapter\n  -> runtime execution with sandbox policy\n  -> verification result\n  -> human review\n  -> promotion into canonical project state\n```\n\nThe goal is to combine proven patterns from specification-driven development, agent workflow systems, skill libraries, and sandboxing tools into a practical harness for planning, specifying, executing, verifying, and safely iterating on software work.\n\n## Current status\n\nUH ships an end-to-end CLI with a schema-backed artifact lifecycle and seven wired adapters: `hermes`, `codex`, `hermes-proxy`, `openrouter`, `pi`, `oh-my-pi` (all active) plus a native `anthropic` adapter (experimental, v0.9.0). Sandboxes support `git-worktree` (default) and `directory` backends, plus a `container` execution-isolation backend gated through OpenSandbox (v0.8.0). Latest release: **v0.9.0** on [npm](https://www.npmjs.com/package/@agenticengineeringagency/ultimate-harness). See [`docs/ROADMAP.md`](./docs/ROADMAP.md) for status and [`CHANGELOG.md`](./CHANGELOG.md) for release notes.\n\n| Adapter | Status | Notes |\n|---|---|---|\n| `hermes` | active | Reference adapter. Pinned to Hermes Agent ≥ 0.14.0. |\n| `codex` | active | Drives `codex exec --sandbox workspace-write --json --output-last-message` against `codex-cli ≥ 0.130.0`. Verified end-to-end against the live ChatGPT backend. |\n| `oh-my-pi` | active | Drives `omp --print --mode json`. Missions can route to any OMP-supported model (including Anthropic-tier via OMP's stealth surface) by setting `runtime_config_overrides.model:`. Graduated to `active` in v0.8.0 (#156). **Read [`docs/runbooks/anthropic-via-omp.md`](./docs/runbooks/anthropic-via-omp.md) before routing Claude through OMP** — the ToS posture is documented there; users opt in. |\n| `hermes-proxy` | active | HTTP client targeting a local `hermes proxy` instance (Hermes Agent ≥ 0.14.0). Officially sanctioned OAuth-backed subscription routing — replaces the OMP stealth path. See [`docs/architecture/adapter-hermes-proxy.md`](./docs/architecture/adapter-hermes-proxy.md) and [`docs/runbooks/hermes-proxy-setup.md`](./docs/runbooks/hermes-proxy-setup.md). |\n| `openrouter` | active | OpenAI-compat HTTP client for [openrouter.ai](https://openrouter.ai) — the cheapest pay-per-token routing target. API key via `OPENROUTER_API_KEY` (never the manifest); a missing key makes `uh adapter check openrouter` degrade gracefully. See [`docs/runbooks/openrouter-setup.md`](./docs/runbooks/openrouter-setup.md). |\n| `pi` | active | Drives the vanilla `pi` agent CLI (`pi --print --mode json --no-session`) — the base CLI that oh-my-pi extends. `config.cli_command` overridable. See [`docs/runbooks/pi-setup.md`](./docs/runbooks/pi-setup.md). |\n| `anthropic` | experimental | Native pay-per-token Anthropic Messages API — the official, ToS-clean alternative to the OMP stealth path. API key via `ANTHROPIC_API_KEY` (env-only, never the manifest); a missing key makes `uh adapter check anthropic` degrade gracefully. Shipped v0.9.0 (#214); graduation to `active` pending live-smoke. |\n\nCross-cutting protocols every adapter participates in:\n\n- **UH-28 runtime-final-message capture** — every adapter prompts the model to emit a fenced `uh-runtime-final-message` block; the harness extracts it into `runtime-final.txt` for cross-runtime parity. See the protocol section of [`docs/architecture/runtime-adapter-contract.md`](./docs/architecture/runtime-adapter-contract.md).\n- **UH-26 per-runtime strict `runtime_config` validation** — typos in adapter manifests fail at load time.\n- **UH-27 / UH-33 mission `runtime_config_overrides`** — missions override adapter defaults per-run with the same typo safety.\n- **UH-34 untracked-file diff capture** — `diff.patch` includes brand-new files, not just modified-tracked ones.\n\n## Documentation\n\nStart with the [quickstart](./docs/quickstart.md), the [configuration guide](./docs/configuration.md), the [vision](./docs/VISION.md), the [documentation home](./docs/README.md), and the [roadmap](./docs/ROADMAP.md). Direct links:\n\n- [Quickstart](./docs/quickstart.md)\n- [Configuration](./docs/configuration.md)\n- [Runtime targets](./docs/runtime-targets.md)\n- [TUI architecture](./docs/architecture/tui.md)\n- [Plugin development](./docs/plugin-development.md)\n- [Optional telemetry](./docs/telemetry.md)\n- [Troubleshooting](./docs/troubleshooting.md)\n- [VISION — what UH is, who it's for, and what we won't accept](./docs/VISION.md)\n- [Glossary](./docs/glossary.md)\n- [Product requirements](./docs/product/prd.md)\n- [MVP scope](./docs/product/mvp-scope.md)\n- [Architecture overview](./docs/architecture/overview.md)\n- [Runtime adapter contract](./docs/architecture/runtime-adapter-contract.md) — includes the UH-28 sentinel protocol\n- [Mission packet schema](./docs/architecture/mission-packet-schema.md)\n- [Verification and promotion lifecycle](./docs/architecture/verification-and-promotion.md)\n\nRunbooks:\n\n- [Codex E2E smoke](./docs/runbooks/codex-e2e-smoke.md)\n- [Anthropic via oh-my-pi](./docs/runbooks/anthropic-via-omp.md)\n- [Hermes Proxy setup](./docs/runbooks/hermes-proxy-setup.md)\n- [Hermes Proxy E2E smoke (UH-38 promotion record)](./docs/runbooks/hermes-proxy-e2e-smoke.md)\n- [OpenRouter setup](./docs/runbooks/openrouter-setup.md)\n- [Sandbox backends](./docs/architecture/sandbox-backends.md)\n- [Container sandbox / OpenSandbox smoke](./docs/runbooks/container-sandbox.md)\n- [Publishing](./docs/runbooks/publishing.md)\n- [Honcho persistent memory (oh-my-pi)](./docs/runbooks/honcho-memory.md)\n\n## Install\n\n```sh\nbun add -g @agenticengineeringagency/ultimate-harness\nuh --help\n```\n\nThe package is published to the npm registry and is installable with Bun's\npackage manager. The CLI binary is `uh`.\n\n## Quick start\n```sh\nbun install\nbun run build\n```\n\n```sh\n# Initialize .harness/ project state.\nuh init\n\n# Confirm a runtime is available (active: hermes, codex, hermes-proxy, openrouter, pi, oh-my-pi).\nuh adapter check hermes\n\n# Create and validate a mission packet.\nuh mission create m1-example \\\n  --title \"Example mission\" \\\n  --workflow spec-first-feature \\\n  --objective \"Demonstrate the mission lifecycle\"\nuh validate --all-missions\n\n# Render the runtime invocation without launching.\nuh mission dry-run .harness/missions/m1-example/mission.yaml --runtime hermes\n\n# Execute the mission. --runtime accepts: hermes | codex | hermes-proxy | openrouter | pi | oh-my-pi | anthropic.\nuh mission run .harness/missions/m1-example/mission.yaml --runtime hermes\n\n# Run the mission's declared verification checks.\nuh verify m1-example\n\n# Record a human promotion decision.\nuh promote m1-example --approved-by \"Reviewer Name\" --change README.md\n\n# Inspect harness state.\nuh status\n```\n\nFor the package bin and dev loop:\n\n```sh\nbun run dev -- --help       # tsx-driven dev runner\nnode dist/cli.js --help     # built CLI\nnpm link && uh --help       # local bin install after build\n```\n\nThe package is public. Release readiness is checked with `bun run build`, `bun run test`, plugin checks, and `bun run publish:dry-run`.\n\n## Mission-level runtime overrides\n\nMissions select which model / runtime config to use per-run without editing the shared adapter manifest:\n\n```yaml\n# .harness/missions/<id>/mission.yaml\nruntime_config_overrides:\n  model: anthropic/claude-opus-4-7\n  thinking: medium\n```\n\nMission overrides merge over the adapter manifest's `config.runtime_config` and are strict-validated by the per-runtime Zod schema, so typos fail fast.\n\n## Durable artifacts\n\nMission-scoped:\n\n- `mission.yaml` — schema-backed mission packet.\n- `prompt.md` — rendered runtime prompt for the run.\n- `runtime-session.yaml` — runtime command, args, status, timestamps, exit code.\n- `events.ndjson` — runtime lifecycle + adapter-specific event stream.\n- `runtime-final.txt` — model's one-paragraph summary (UH-28 sentinel-extracted when present).\n- `runtime-result.yaml` — terminal status + artifact refs.\n- `diff.patch` — `git diff` including untracked new files (UH-34).\n- `verification.yaml` — `uh verify` output.\n- `promotion.yaml` — human approval / rejection / deferral.\n\nProject-scoped: `.harness/project.yaml`, `.harness/workflows/`, `.harness/adapters/`, `.harness/sandboxes/`, `.harness/skills/`, `.harness/audit/events.ndjson`.\n\n## Safety model\n\nUltimate Harness is designed around explicit gates rather than direct mutation of canonical state:\n\n- Schemas validate every persisted artifact (`uh.project.v0`, `uh.workflow.v0`, `uh.mission.v0`, `uh.runtime-session.v0`, `uh.runtime-result.v0`, `uh.verification.v0`, `uh.promotion.v0`).\n- Mission IDs, workflow profile names, and artifact paths are constrained to avoid path traversal.\n- Runtime artifact persistence refuses symlinked `.harness`, mission directories, or artifact targets.\n- Sandboxes are git-worktree-backed; missions run with `cwd` set to the sandbox path. Bound mission packets are seeded into the worktree at create time (UH-29).\n- Codex runs with `--sandbox workspace-write`; oh-my-pi runs with `--no-extensions --no-skills` by default.\n- Promotion is a separate human approval step. A `promoted` decision is blocked unless `verification.yaml` is passed.\n- Event streams and YAML records provide an audit trail for execution, verification, and promotion.\n\n## Inspiration\n\nUltimate Harness studies and selectively integrates ideas from:\n\n- [Specsafe](https://github.com/Agentic-Engineering-Agency/specsafe/issues) — specification safety and issue-driven development.\n- [BMAD Method](https://github.com/bmad-code-org/BMAD-METHOD) — structured agent roles and delivery workflows.\n- [superpowers](https://github.com/obra/superpowers) — composable agent capabilities.\n- [GSD](https://github.com/gsd-build/get-shit-done) — fresh-context execution and durable project context.\n- [matt-pocock/skills](https://github.com/mattpocock/skills) — focused reusable engineering skills.\n- [oh-my-openagent](https://github.com/code-yeongyu/oh-my-openagent) — multi-agent harness patterns.\n- [OpenSpec](https://github.com/Fission-AI/OpenSpec) — artifact-guided specification workflows.\n- [Hermes Agent](https://github.com/NousResearch/hermes-agent) — wired as the reference adapter.\n- [Codex CLI](https://github.com/openai/codex) — wired adapter for OpenAI's coding agent.\n- [oh-my-pi](https://github.com/can1357/oh-my-pi) and [Pi](https://pi.dev/) — both wired and active: `oh-my-pi` graduated to `active` in v0.8.0 (#156); the vanilla `pi` adapter graduated in v0.7.0 (#135/#150).\n- [AgentFS](https://github.com/tursodatabase/agentfs/blob/main/MANUAL.md) — copy-on-write sandboxing patterns (design at [`docs/architecture/sandbox-agentfs.md`](./docs/architecture/sandbox-agentfs.md)).\n\nSee the [comparison matrix](./docs/research/comparison-matrix.md) and [adopt/reject/defer log](./docs/research/adopt-reject-defer.md) for the current design position.\n\n## Project vision\n\n- Specification-first planning and execution.\n- Portable mission packets for bounded agentic work.\n- Runtime adapters for multiple coding agents.\n- Reusable skills and workflow profiles.\n- Sandboxed environments for safer autonomous development.\n- Structured verification and human approval gates.\n- Clear audit trails for decisions, file changes, checks, and promotion.\n","readmeFilename":"README.md"}