Skip to content

Repository files navigation

Yoke

Yoke

Autonomous coding across your agents. Proof before done.

npm CI License: MIT Node.js 20+

1.25.0 · 1899 test cases · 34 skills Claude | Codex | Gemini | Qwen | OpenCode | Kilo | Pi | Hermes

Yoke turns a goal into acceptance-tested stories, coordinates one or more coding agents, and commits work only after the configured checks pass. Run a normal backlog to completion, or optionally let Yoke explore for evidence-backed improvements and continue the same verified loop.

How it works

Version 1.23 adds local yoke usage [dir] --json and yoke tools-preflight [dir] --json diagnostics. Browser smoke now requires smoke.sourceIdentity with an app-specific same-origin path and the lowercase SHA-256 of its served bytes. Pin a stable source response and refresh it deliberately after source changes; see browser delivery configuration. Local version preparation and validation limits are recorded in 1.23 validation.

flowchart LR
  A[Goal and acceptance criteria] --> B[PRD stories and dependencies]
  B --> C[Agent workers in isolated worktrees]
  C --> D{Acceptance tests and configured gates}
  D -- needs work --> C
  D -- passes --> E[Commit and local proof]
  E -. explore enabled .-> F[Evidence-backed next tasks]
  F --> B
Loading

Each story carries observable acceptance criteria and targeted test commands. Parallel workers take independent stories; Yoke checks their integrated result before committing. Proof is saved under .yoke/proof/.

What Yoke adds

Capability What it does for you
Verified completion Checks acceptance criteria, the project verify command, and any configured completion, review, quality, or browser gates before accepting work.
Parallel execution Schedules independent stories in isolated worktrees, respects dependencies and write scopes, and coordinates a shared worker limit across projects.
Durable goals Binds objectives to executable acceptance, shares worker capacity, records budgets, and optionally resumes native Codex goal threads.
Measured routing Keeps hard attempt budgets independent of statistics, accounts for planning and reviews, and uses comparable complete evidence for optional economic model selection.
Delivery evidence Records executable user journeys, acceptance results and stable declared build artifacts with their source and acceptance fingerprints.
Long-running autonomy Recovers from provider failures and blocked work. Optional exploration discovers new, repository-evidenced tasks after the planned backlog drains.
A choice of agents Uses the native CLI for Claude, Codex, Gemini, Qwen, OpenCode, Kilo, Pi, or Hermes. Install and authenticate the CLI you choose; Yoke does not bundle model runtimes or credentials.
Project visibility A local dashboard shows project status, Workspace analytics, History, and controls such as Queue a change, safe-boundary pause/resume, and operator notes. It runs with the local Yoke process. Dark and light themes are available.
Optional Pi efficiency An opt-in SoL-Pi integration exposes per-project mechanism settings for Pi. It is off by default; benchmark results are not a savings guarantee.

Quick start

Efficiency and reliability in 1.25

Use yoke loop wait [dir] --timeout=60 --json to wait for a terminal handoff without a model call. Use --until=change --since=<cursor> for a resumable semantic update. Timeouts return exit code 3; waiting does not start a run.

New PRD drafts include objective-bound requirement and invariant coverage, executable proof references, and explicit write ownership. Keep their requirements ledger and approved plan with the PRD. Secondary references are bounded; binding requirements remain intact. Independent review still needs to judge whether the criteria and tests satisfy the original intent.

Criterion reuse is off by default. Set verify.reusableCommands only for exact pure commands whose inputs are local and stable. Yoke hashes local inputs, including ignored files; linked/large inputs disable reuse. Full verification, integration and completion stay fresh. See validation and migration limits.

Requires Node.js 20+ and Git. Install Yoke and create a project with a draft backlog:

npm install --global @hecer/yoke
yoke new my-app --idea="A reading list app" --agent=codex --runner=codex

Set verify.command in my-app/.yoke/config.yaml to the project's real test command, then run:

yoke loop on my-app
yoke loop run my-app --isolate --parallel=auto

For an existing project, run yoke setup ., set verify.command, and draft a backlog with yoke prd draft . --idea="...". Add --review when an independent reviewer is configured.

PRD format (.yoke/prd.yaml):

- id: STORY-1
  title: Add a health endpoint
  priority: 1
  acceptance:
    - id: health-returns-200
      text: GET /health returns 200
      verify: [npm run test:health-returns-200]
    - id: health-rejects-post
      text: POST /health returns 405
      verify: [npm run test:health-rejects-post]
  passes: false

Yoke requires 2–5 behavioral criteria on new stories by default. Each criterion needs an approved test command containing its ID. See the PRD schema.

Optional continuous exploration

Exploration is off by default. Add --explore to keep the supervisor active after the current backlog drains. It proposes bounded work from repository evidence; accepted tasks still pass through the project's normal tests and configured gates.

yoke loop run my-app --explore --parallel=auto --explore-limit=3d
yoke loop status my-app
yoke loop pause my-app

Without --explore-limit, exploration has no time limit. A limit such as 12h, 3d, or 2w requests a pause at the next safe boundary; active stories finish their normal gates and integration first, so the process can run past the deadline while that work completes. The supervisor requires an available machine, running process, and usable providers. Read the continuous exploration guide for discovery rules, retries, stop detection, and recovery.

Parallel workers

Use --parallel=auto or --parallel=N to run independent stories together. The scheduler observes story dependencies, collision areas, and declared write scopes. A shared user-level pool admits up to three worker units by default; YOKE_MAX_PARALLEL_WORKERS adjusts that ceiling from 1 to 8. See parallel execution for admission, integration, and recovery details.

Dashboard

Register projects and start the loopback-only dashboard:

yoke projects add /path/to/project
yoke dashboard

The dashboard is a local control room. It does not discover every process or run arbitrary shell commands. See the dashboard guide for data coverage and measurement limits.

Agent and feature guides

Guide Details
Harnesses CLI setup, permissions, provider/model selection, and telemetry limits
SoL-Pi for Pi Opt-in settings, supported runtime, project trust, data handling, and paper evidence
Parallel execution Worker scheduling, shared capacity, integration, and recovery
Continuous exploration Autonomous discovery, runtime limits, pause/resume, and stop detection
Project workflows Setup, verification, goals, and execution defaults
Verified goals Acceptance binding, native Codex goals, budgets, and resource admission
Economic routing Durable attempt budgets, per-call costs, capability floors, and conservative model selection
Delivery journeys Browser steps, project acceptance, artifact hashes, and proof limits
Code Intelligence Optional Graphify, Serena, and Graft evidence providers
Dashboard Project views, history, controls, and reporting boundaries
Benchmarks Direct Codex comparison, routing studies, sample limits, and integration findings
Benchmark manifests Comparable inputs, model identity, build provenance, and legacy-data limitations
Changelog Release features, behavior changes, and migration notes

Safety and limits

  • A green result means the configured checks passed; the project remains responsible for meaningful tests and acceptance criteria.
  • Harness permissions differ. Some CLIs do not provide an OS-level sandbox; use Yoke's read-only profile for inspection and review.
  • Exploration filters proposals but cannot guarantee product maturity or model quality. Time limits pause at safe boundaries; they do not kill an active story mid-integration.
  • SoL-Pi is an optional Pi extension. Its pinned upstream lists Node.js 22.19+ and @earendil-works/pi-coding-agent@0.84.2 as the tested baseline; Yoke does not enforce the Pi version. Pi project trust may be required. See SoL-Pi limits.

Development

git clone https://github.com/HECer/yoke.git
cd yoke
npm ci
npm run lint
npm run build
npm test
npm run docs:check

Yoke is released under the MIT License.

About

Cross-agent coding harness for Claude Code, Codex CLI & Gemini CLI: one skill canon, mechanical safety gates, autonomous loop with live progress/ETA and proof artifacts. npm: @hecer/yoke

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages