{"id":51280218,"url":"https://github.com/ruvnet/metaharness","last_synced_at":"2026-06-30T01:03:15.573Z","repository":{"id":364627277,"uuid":"1268611404","full_name":"ruvnet/metaharness","owner":"ruvnet","description":"🛠️ The meta-harness for AI agents — scaffold your own focused, branded agent harness with its own npx CLI, MCP server, memory, learning loop, and witness-signed releases. Works with Claude Code, Codex, pi.dev, Hermes, OpenClaw, and RVM (hardware-isolated sandbox).","archived":false,"fork":false,"pushed_at":"2026-06-29T21:16:17.000Z","size":17934,"stargazers_count":345,"open_issues_count":14,"forks_count":35,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-29T21:25:41.358Z","etag":null,"topics":["agent-harness","agent-harness-generator","agent-scaffolding","agentic-ai","agentic-framework","autonomous-agents","claude-code","codex","create-agent-harness","hermes-agent","mcp","mcp-server","multi-agent","openai-codex","openclaw","pi-dev","rvm","sandboxing","scaffold","scaffolding"],"latest_commit_sha":null,"homepage":"https://github.com/ruvnet/ruflo","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruvnet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-13T18:29:11.000Z","updated_at":"2026-06-29T21:14:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ruvnet/metaharness","commit_stats":null,"previous_names":["ruvnet/agent-harness-generator","ruvnet/metaharness"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ruvnet/metaharness","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruvnet%2Fmetaharness","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruvnet%2Fmetaharness/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruvnet%2Fmetaharness/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruvnet%2Fmetaharness/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruvnet","download_url":"https://codeload.github.com/ruvnet/metaharness/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruvnet%2Fmetaharness/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34948227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-29T02:00:05.398Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-harness","agent-harness-generator","agent-scaffolding","agentic-ai","agentic-framework","autonomous-agents","claude-code","codex","create-agent-harness","hermes-agent","mcp","mcp-server","multi-agent","openai-codex","openclaw","pi-dev","rvm","sandboxing","scaffold","scaffolding"],"created_at":"2026-06-30T01:03:14.932Z","updated_at":"2026-06-30T01:03:15.559Z","avatar_url":"https://github.com/ruvnet.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# MetaHarness\n\n### Mint a custom AI agent harness from any repo.\n\n`npx metaharness` · [open the Studio →](https://ruvnet.github.io/metaharness/)\n\n\u003csub\u003e(Repo: `ruvnet/metaharness` · CLI: `metaharness` · Library: `@ruvnet/agent-harness-generator`)\u003c/sub\u003e\n\n[![Open the Studio](https://img.shields.io/badge/Studio-open_in_browser_↗-7c5cff?style=for-the-badge\u0026logo=githubpages\u0026logoColor=white)](https://ruvnet.github.io/metaharness/)\n[![User guide](https://img.shields.io/badge/User_guide-plain_language-22c55e?style=for-the-badge)](docs/USERGUIDE.md)\n[![Tests — 568 passing](https://img.shields.io/badge/tests-568%20passing-22c55e?style=for-the-badge)](docs/ARCHITECTURE.md)\n[![npm publish smoke](https://github.com/ruvnet/metaharness/actions/workflows/published-smoke.yml/badge.svg)](https://github.com/ruvnet/metaharness/actions/workflows/published-smoke.yml)\n[![License MIT](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)](LICENSE)\n\n[![Agent Harness Studio](docs/web-ui/screenshot-desktop.png)](https://ruvnet.github.io/metaharness/)\n\n\u003c/div\u003e\n\n---\n\n## What this is\n\n**Every serious repo deserves its own agent.** A repo-aware CLI, a repo-aware coding agent, a local MCP server, memory scoped to the project, skills generated from the actual file layout, governance policy, release verification, witness-signed provenance.\n\n`metaharness` mints those, on demand, from a GitHub URL or a blank slate. **It is not another agent framework. It is a factory for agent frameworks.**\n\nThe model is replaceable. The harness is the product.\n\n## What it gives you\n\nIn under 60 seconds, in your browser, with nothing leaving your machine:\n\n- A custom AI agent harness for your repo (or any repo)\n- Recommended agents, skills, slash commands, MCP tools\n- A scoped memory namespace + governance policy\n- Witness-signed provenance + release gates\n- Drops into Claude Code, OpenAI Codex, pi.dev, Hermes, OpenClaw, or RVM — pick one or all\n\nOutput is an npm-publishable `.zip` with **your name on it, your branding, your `npx \u003cyour-name\u003e` CLI**.\n\n### New\n\n- **Score any repo before you build it.** `npx metaharness score \u003crepo\u003e` reads\n  the repo (never runs it) and prints a one-screen report card — how well a\n  harness fits, how likely it is to build, how safe the tools are, and the\n  rough **cost per run** — so you know what you'll get before scaffolding.\n- **Pick the cheapest model that's good enough.** [`@metaharness/router`](https://www.npmjs.com/package/@metaharness/router)\n  routes each request to the right model from your own results — same quality,\n  far less spend. Works out of the box with zero native deps; **train it on your\n  data** for a sharper fit (`npm i @metaharness/router`). Add the optional\n  [`@ruvector/tiny-dancer`](https://www.npmjs.com/package/@ruvector/tiny-dancer)\n  to train a fast native model instead — same training data, no API change.\n- **Let your harness improve itself.** Every scaffold now ships with **Darwin Mode**\n  ([`@metaharness/darwin`](https://www.npmjs.com/package/@metaharness/darwin)) wired in —\n  run `npm run evolve` and the harness mutates its own config, tests each change in a\n  sandbox, and keeps only what *measurably* improves. The model stays frozen; the harness\n  evolves. Safe by default (no network, no API key; pure refactor/tuning behind a safety\n  gate). Validated on real **SWE-bench Lite** bug-fixing. `--no-darwin` to skip.\n- **Distil the cheap tier instead of escalating to a frontier model.** **Weight-EFT**\n  ([`@metaharness/weight-eft`](packages/weight-eft/), `metaharness weight-eft`) takes the\n  *complementary* lever to Darwin's gradient-free evolution: it exports the harness's gold-resolved\n  archive into standard SFT/DPO sets and LoRA-tunes the open cheap tier (GLM/Qwen), so the\n  cost-cascade escalates to Opus/GPT **less often**. It attacks **cost** (fewer $0.50 escalations),\n  not the frontier ceiling — and stays honest about it. Strict train/eval-disjointness +\n  reward-hacking filters keep the lift real; the tune is a *gene* Darwin can prune if it overfits.\n  See [ADR-198](docs/adrs/ADR-198-weight-eft-hybrid-policy-weight-evolution.md). ($0 / GPU-gated.)\n\n## Tune it to your project — then ship it as your own npm\n\nA generated harness is a **starting point you own**, not a fixed framework. Open\nit and make it yours:\n\n- **Keep only what your repo needs.** Delete the agents, skills, slash commands,\n  and MCP servers you won't use — the scaffold ships a recommended set, but a\n  payments service and a docs site want very different harnesses. A smaller,\n  targeted harness is faster, cheaper, and easier to reason about. `harness\n  doctor` / `harness validate` keep it healthy as you trim.\n- **Optimize the model routing for your work.** Swap the per-task model tiers,\n  tighten the governance policy, point the memory namespace at your domain. The\n  harness is config you control, not a black box.\n- **Publish it as your own package for the whole org.** Rename it, set your\n  scope, and `npm publish` — now anyone on your team runs\n  `npx @your-org/your-harness` and gets the *same* repo-tuned agent. One\n  command, org-wide, versioned like any other dependency. (The 19\n  [`@metaharness/*`](examples-packages/) examples are exactly this pattern,\n  published live.)\n\n**Make older, cheaper models punch like frontier ones.** The right harness\nisn't a pile of extra steps bolted onto an expensive model — it's putting the\n*right* model on each task and getting out of the way. Our [DRACO](packages/bench/draco/)\nbenchmark proves it: a small, cheap model delivers **frontier-quality** research\nat roughly **one-tenth the cost**, and a smart router squeezes out the rest.\nStop paying frontier prices for work a $0.10 model does just as well.\n\nThat router ships as [`@metaharness/router`](https://www.npmjs.com/package/@metaharness/router)\n— `route(query)` returns the cheapest model predicted to clear your quality bar,\nlearned from your own eval logs. `npm i @metaharness/router`.\n\n## Try it in 30 seconds\n\n```bash\n# In the browser — zero install, nothing leaves the page\nopen https://ruvnet.github.io/metaharness/\n\n# Or in the terminal — the same harness (behaviourally equivalent output)\nnpx metaharness my-bot --template vertical:coding --host claude-code\ncd my-bot \u0026\u0026 npx . --help\n```\n\n**Don't know what to pick?** Run the wizard:\n\n```bash\nnpx metaharness --wizard\n```\n\n**Already have a repo you want a harness for?**\n\n```bash\nharness analyze-repo .                       # local — deterministic analysis only\nharness analyze-repo . --scaffold my-bot     # materialise the recommended harness\n```\n\nNo repository code is executed. Inferred build/test commands are emitted as `trust: inferred · execution: disabled`.\n\n📖 **[Read the plain-language user guide →](docs/USERGUIDE.md)**\n\n---\n\n## Hosts\n\nThe same harness output runs on **nine** agent hosts — eight interactive, plus GitHub Actions (CI/CD):\n\n| Host | What ships | Notes |\n|---|---|---|\n| [**Claude Code**](https://code.claude.com/docs/en/mcp) | MCP server + hooks + 3-scope settings | Richest surface; Ruflo-native |\n| [**OpenAI Codex**](https://developers.openai.com/codex) | MCP via `~/.codex/config.toml` | TOML, no hooks |\n| [**pi.dev**](https://pi.dev/) | Pi extension via `pi.registerTool()` | No MCP by design |\n| [**Hermes**](https://hermes-agent.nousresearch.com/docs/) | MCP runtime, `\u003cthink\u003e` scrubbing | Per Hermes issue #741 |\n| [**OpenClaw**](https://github.com/openclaw/openclaw) | `~/.openclaw/openclaw.json` + workspace skills | Personal-AI gateway |\n| [**RVM**](https://github.com/ruvnet/rvm) | Bare-metal microhypervisor + capability tokens | Hardware isolation for untrusted peers |\n| [**GitHub Copilot**](https://code.visualstudio.com/docs/copilot/mcp) | MCP via `.vscode/mcp.json` | VSCode 1.99+ (ADR-032) |\n| [**OpenCode**](https://opencode.ai/) | MCP via `.opencode/opencode.json` | sst/opencode TUI (ADR-036) |\n| [**GitHub Actions**](https://docs.github.com/actions) | `.github/workflows/` + composite `action.yml` | **Non-interactive** CI/CD; default-deny via `permissions:` (ADR-033) |\n\nSee [ADR-004 — Host integration model](docs/adrs/ADR-004-host-integration-model.md) and [ADR-033 — GitHub Actions host](docs/adrs/ADR-033-host-github-actions.md).\n\n---\n\n## MCP — modular, default-deny\n\nMCP is included as a first-class **adapter surface, not the identity**. It is gated and default-deny ([ADR-022](docs/adrs/ADR-022-mcp-primitive.md)):\n\n- Modes: `off` · `local` (stdio) · `remote` (HTTPS + auth)\n- Emits `src/mcp/{server,tools,resources,prompts,policy,audit}.ts` + a scannable `.harness/mcp-policy.json`\n- Safe defaults: no network, no shell, no file-write, approve-dangerous, 30s timeout, 8 calls/turn, audit on\n- `harness mcp-scan \u003cpath\u003e` — *\"npm audit for agent tools\"*: static-only scan flagging shell/network grants, missing audit/timeouts, wildcard permissions, unguarded secrets, unpinned deps. Exits 1 on any HIGH.\n\n---\n\n## Verticals (19 quick-start templates)\n\n```bash\nnpx metaharness --list\nnpx metaharness my-bot --template vertical:coding\n```\n\n| Category | Templates |\n|---|---|\n| Starter / Operations | `minimal`, `vertical:devops` |\n| Engineering | `vertical:coding`, `vertical:ai`, **`vertical:repo-maintainer`** (iter 113) |\n| Knowledge | `vertical:research`, `vertical:ruview`, `vertical:education` |\n| Finance / Pro | `vertical:trading`, `vertical:legal`, `vertical:health` |\n| Customer / Growth | `vertical:support`, `vertical:crm`, `vertical:marketing`, `vertical:advertising`, `vertical:sales` |\n| Business / Frontier | `vertical:business`, `vertical:agentics`, `vertical:gaming`, `vertical:exotic` |\n\nEach ships bespoke domain agents (with system prompts), skills, commands, and per-host settings — all default-deny.\n\n---\n\n## One-command examples\n\nDon't want to pick flags? Each host and vertical has a dedicated\n`@metaharness/*` wrapper — **published, one `npx` away**, no template/host\nflags to remember. A scaffold from a wrapper is byte-identical to the\nequivalent `metaharness` invocation.\n\n**Host integrations**\n\n| Package | Scaffolds | npm |\n|---|---|---|\n| `npx @metaharness/claude-code my-bot` | Claude Code workspace + plugin | [![npm](https://img.shields.io/npm/v/@metaharness/claude-code?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/claude-code) |\n| `npx @metaharness/codex my-bot` | OpenAI Codex | [![npm](https://img.shields.io/npm/v/@metaharness/codex?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/codex) |\n| `npx @metaharness/hermes my-bot` | Hermes cli-config | [![npm](https://img.shields.io/npm/v/@metaharness/hermes?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/hermes) |\n| `npx @metaharness/pi-dev my-bot` | pi.dev AGENTS.md | [![npm](https://img.shields.io/npm/v/@metaharness/pi-dev?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/pi-dev) |\n| `npx @metaharness/openclaw my-bot` | OpenClaw `.openclaw/` | [![npm](https://img.shields.io/npm/v/@metaharness/openclaw?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/openclaw) |\n| `npx @metaharness/rvm my-bot` | RVM deployment partition | [![npm](https://img.shields.io/npm/v/@metaharness/rvm?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/rvm) |\n| `npx @metaharness/copilot my-bot` | VSCode / Copilot `mcp.json` | [![npm](https://img.shields.io/npm/v/@metaharness/copilot?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/copilot) |\n| `npx @metaharness/opencode my-bot` | OpenCode `.opencode/` | [![npm](https://img.shields.io/npm/v/@metaharness/opencode?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/opencode) |\n| `npx @metaharness/github-actions my-bot` | GitHub Actions CI/CD (non-interactive) | [![npm](https://img.shields.io/npm/v/@metaharness/github-actions?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/github-actions) |\n\n**Vertical workflows** (ready-made multi-agent pods)\n\n| Package | Scaffolds | npm |\n|---|---|---|\n| `npx @metaharness/devops my-bot` | incident response | [![npm](https://img.shields.io/npm/v/@metaharness/devops?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/devops) |\n| `npx @metaharness/research my-bot` | multi-source dossier | [![npm](https://img.shields.io/npm/v/@metaharness/research?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/research) |\n| `npx @metaharness/trading my-bot` | quant trading (paper-by-default) | [![npm](https://img.shields.io/npm/v/@metaharness/trading?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/trading) |\n| `npx @metaharness/support my-bot` | customer support | [![npm](https://img.shields.io/npm/v/@metaharness/support?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/support) |\n| `npx @metaharness/legal my-bot` | contract redline (drafts only) | [![npm](https://img.shields.io/npm/v/@metaharness/legal?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/legal) |\n| `npx @metaharness/repo-maintainer my-bot` | OSS repo maintainer | [![npm](https://img.shields.io/npm/v/@metaharness/repo-maintainer?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/repo-maintainer) |\n| `npx @metaharness/coding my-bot` | engineering pod | [![npm](https://img.shields.io/npm/v/@metaharness/coding?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/coding) |\n| `npx @metaharness/education my-bot` | tutor pod | [![npm](https://img.shields.io/npm/v/@metaharness/education?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/education) |\n| `npx @metaharness/sales my-bot` | sales pipeline pod | [![npm](https://img.shields.io/npm/v/@metaharness/sales?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/sales) |\n| `npx @metaharness/gaming my-bot` | game-design pod | [![npm](https://img.shields.io/npm/v/@metaharness/gaming?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/@metaharness/gaming) |\n\nAll 18 are live on npm under [`@metaharness`](https://www.npmjs.com/org/metaharness). Source + per-package README:\n[`examples-packages/`](examples-packages/) · plain-language deep-dive gists:\n[`examples-packages/GISTS.md`](examples-packages/GISTS.md).\n\n---\n\n## Day-to-day commands\n\nAfter scaffolding, every harness has a `harness` CLI:\n\n| You're trying to … | Subcommand |\n|---|---|\n| Smoke-check the scaffold | `harness doctor` |\n| Run every release gate | `harness validate` |\n| Check kernel ↔ harness compatibility | `harness diag` |\n| Score the harness 0-100 with badges | `harness score` |\n| Pre-scaffold: is this REPO ready for an agent? | `harness genome \u003crepo\u003e` |\n| Pre-scaffold: fit/cost/safety report card for a repo | `metaharness score \u003crepo\u003e` |\n| MCP threat-model artifact for a PR review | `harness threat-model` |\n| Declare OIA v0.1 layer alignment | `harness oia-manifest` |\n| File a useful support ticket | `harness diag --bundle \u003e bundle.json` |\n| Diff two harnesses | `harness compare a/ b/` |\n| Share MCP + Bash + claims config for review | `harness export-config` |\n| Run npm-audit per-harness | `harness audit --bundle \u003e audit.json` |\n| Emit SPDX-2.3 SBOM | `harness sbom` |\n| Drift-detect against the latest template | `harness upgrade` |\n| Sign / verify the witness | `harness sign` · `harness verify` |\n| Pin the manifest to IPFS | `harness publish --confirm` |\n| Recommend a harness from a repo | `harness analyze-repo` |\n\n21 subcommands total. Every one respects `--help` / `-h`. Shell completion: `harness completions bash | zsh | fish`.\n\n📖 Full reference: [docs/USAGE.md](docs/USAGE.md)\n\n---\n\n## Status\n\n**v0.1.x beta** — published and usable, with the credibility/doc reconciliation in\nissue #4 / ADR-042 in progress. The release *pipeline* is mature: CI matrix green\nacross Rust × 3 OS + WASM × 3 OS + Node 20+22 × 3 OS + Bench + pack+install × 3 OS\n+ a CI-passed aggregator; single-command releases (`node scripts/release.mjs \u003cbump\u003e\n--push`) atomically bump 15 sources, run all gates, and tag.\n\n| Layer | Status |\n|---|---|\n| Rust kernel (WASM + NAPI-RS) | Shipped — 7 subsystems |\n| 6 host adapters | claude-code · codex · pi-dev · hermes · openclaw · rvm |\n| 17 `harness` subcommands | Shipped |\n| 7 Codex skills | Shipped |\n| Claude marketplace plugin | Shipped + schema-validated |\n| Witness signing (Ed25519) | Shipped + tamper-tested |\n| MCP tool dispatch | 11 end-to-end cases |\n| Test suite | **568/568** across 67 files |\n| CI matrix | 16 jobs green |\n| Security pipeline | cargo-audit · cargo-deny · npm-audit · CodeQL · SBOM (SPDX-2.3) |\n| Publish pipeline | GCP WIF + 2 gates + 11 packages + IPFS pin |\n| Agent Harness Studio | Live at \u003chttps://ruvnet.github.io/metaharness/\u003e |\n\n---\n\n## Architecture in 30 seconds\n\n```\nYou (harness author)\n   └→ agent-harness-generator    ← the factory\n        └→ Your harness (.zip)    ← what you ship\n             ├ npx \u003cyour-name\u003e     ← your identity\n             ├ \u003cyour agents\u003e       ← your content\n             └ @metaharness/kernel       ← shared primitives (Rust + WASM + NAPI-RS)\n                  └→ Host adapter (Claude Code / Codex / pi.dev / Hermes / OpenClaw / RVM)\n                       └→ LLM providers\n```\n\nYou operate the factory. The factory produces your harness. Your users never see the factory — only the brand and CLI you ship. The kernel ships as `@metaharness/kernel` (Rust → wasm-pack + NAPI-RS); your content stays yours.\n\n📖 Deeper: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) · [docs/adrs/INDEX.md](docs/adrs/INDEX.md) (31 ADRs)\n\n---\n\n## Quality gates\n\n| Concern | Where |\n|---|---|\n| **CI** | [`ci.yml`](.github/workflows/ci.yml) — Rust 3-platform × fmt/clippy/test/doc + WASM build + size budget + Node 20/22 × 3-platform |\n| **Publish** | [`publish.yml`](.github/workflows/publish.yml) — GCP WIF → Secret Manager → smoke → `npm publish --provenance` (SLSA L2) |\n| **Security** | [`security.yml`](.github/workflows/security.yml) — cargo-audit + cargo-deny + npm-audit + CodeQL + weekly cron |\n| **Provenance** | [ADR-011](docs/adrs/ADR-011-witness-and-provenance.md) — Ed25519-signed witness manifest, byte-deterministic across runners |\n| **Studio liveness** | [`pages-monitor.yml`](.github/workflows/pages-monitor.yml) — daily HTTP probe of live Studio |\n| **Research quality (DRACO)** | [`draco.yml`](.github/workflows/draco.yml) — cross-domain deep-research benchmark ([ADR-037](docs/adrs/ADR-037-draco-deep-research-benchmark.md)). Deterministic subset gates the scorer/runner machinery on every push (offline); a weekly judged cadence runs the real OpenRouter-fusion score. 5 dimensions (grounding/coverage/balance/cleanliness/faithfulness); the verifier + judge are different model families than the synthesizer (fusion). See [`packages/bench/draco/`](packages/bench/draco/). |\n\n---\n\n## Developer quick-start\n\n```bash\ngit clone https://github.com/ruvnet/metaharness\ncd metaharness\n\ncargo test --workspace\ncargo clippy --workspace --all-targets -- -D warnings\n\nnpm install\nnpm run build:wasm\nnpm test\nnode scripts/healthcheck.mjs\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n---\n\n## Related\n\n- [**ruflo**](https://github.com/ruvnet/ruflo) — the meta-harness this generator factors apart\n- [**ruvector**](https://github.com/ruvnet/ruvector) — vector + agentic database (memory backend)\n- [**@ruvector/emergent-time**](https://www.npmjs.com/package/@ruvector/emergent-time) — memory-decay clock the kernel uses\n\n## Cost-Pareto Leaderboard\n\n**[→ Live leaderboard — the cost-performance Pareto frontier](https://ruvnet.github.io/metaharness/cost-pareto.html)**\n\nWhich harness resolves the most benchmark per **dollar**, not just the highest raw score — ranked by a tunable\n**Value Score** that blends capability and price. Tabs: SWE-bench **Lite** / **Verified** / **Pro** / **DRACO** /\n**SWE-ultralite** (a fast n=25 model×mode scouting map). Every Darwin row is fully conformant (the solver never\nsees gold tests during solving) and measured with the official `swebench` Docker harness, with Wilson 95% CIs.\n\n**Latest validated, conformant results (2026-06-26):**\n\n| benchmark | config | resolve | n | Wilson 95% CI | cost |\n|---|---|---|---|---|---|\n| **SWE-bench Verified** | GLM→Opus empty-patch cascade | **55.6%** (278/500) | 500 | **[51.2, 59.9]** | ~$0.15/inst (est.) |\n| SWE-bench Lite | GLM→Opus empty-patch cascade | 51.3% | 300 | — | ~$0.27/inst |\n| **LiveCodeBench** (release_v5 ≥2024-12-01) | single-shot | **44%** | 100 | — | — |\n| **LiveCodeBench** (release_v5 ≥2024-12-01) | cost-cascade | **62%** | 100 | — | — |\n\nThe same cheap→frontier **empty-patch cascade** (escalate only the empties to Opus) measures **55.6% on the full\nSWE-bench Verified (500)** — official `swebench` gold eval, conformant, ~56× cheaper than frontier-only — which\n**beats** the Lite cascade (51.3%); the pattern generalizes across both splits. SWE-bench Verified cost is an\n**estimate** (per-instance cost not captured in predictions). LiveCodeBench (n=100, contamination-resistant\npost-cutoff window) lifts **44% → 62%** via cost-cascade; caveats are honest: deepseek snapshot cutoff unpinned,\npart of the lift is run-to-run variance (clean attributable lift +8 on the escalated tail), n=100 is directional\n(not 1:1 with the official whole-release ~34%). Details in\n[`packages/darwin-mode/bench/results/RESULTS.md`](packages/darwin-mode/bench/results/RESULTS.md) (§33) and\n[`LEARNINGS.md`](packages/darwin-mode/LEARNINGS.md) (§46b/§47).\n\n**Run your own harness and put it on the board** — fork, add a measured row, open a PR.\nConformance rules, the entry schema, and a step-by-step walkthrough are in **[SUBMISSIONS.md](SUBMISSIONS.md)**.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n\n## FAQ\n\n### What is MetaHarness?\n\nMetaHarness is a CLI and browser Studio that turns any GitHub repo (or a\nblank slate) into a custom AI agent harness. The output is a branded,\nnpm-publishable package with its own `npx \u003cname\u003e` CLI, MCP server, memory,\ngovernance policy, and Ed25519 witness-signed releases. Runs on Claude\nCode, OpenAI Codex, pi.dev, Hermes, OpenClaw, and RVM.\n\n### How is MetaHarness different from an agent framework?\n\nFrameworks help **developers** build agents. MetaHarness helps\n**repositories** ship agents. The model is replaceable; the harness is\nthe product.\n\n### Do I need to run a server?\n\nNo. The Studio is 100% client-side (GitHub Pages). The CLI runs locally.\nThere is no MetaHarness account, no hosted backend, no telemetry.\n\n### Does it execute my code during analysis?\n\nNo. `metaharness analyze` and `metaharness genome` are deterministic\nstatic-analysis only. Inferred build/test commands are marked\n`trust: inferred · execution: disabled`.\n\n### Which agent runtimes does it support?\n\nSix today: Claude Code, OpenAI Codex, pi.dev, Hermes (Nous Research),\nOpenClaw, and RVM. GitHub Copilot and GitHub Actions are proposed in\nADR-032 and ADR-033.\n\n### What languages does it understand?\n\nRust, TypeScript / JavaScript, Python, and Go are detected\ndeterministically via lockfile and manifest probing. Lexical scoring is\nthe default; optional in-browser MiniLM embeddings via Transformers.js\nboost recall for unusual repos.\n\n### Is the output really npm-publishable?\n\nYes — the generated harness ships with `package.json`, `bin`, a working\nCLI, and `harness validate` to gate releases. `harness sign` adds the\nEd25519 witness; `harness sbom` emits SPDX-2.3.\n\n---\n\n\u003e **Keywords:** metaharness, AI agent CLI, AI agent scaffold, AI agent generator, repo to agent, GitHub repo to AI agent, agent harness, agent harness generator, agent framework alternative, agentic AI, agentic workflow, autonomous AI agents, multi-agent framework, multi-agent system, MCP, MCP server, model context protocol, Claude Code plugin, OpenAI Codex plugin, Anthropic agents, GPT agent, Codex agent, pi.dev extension, hermes agent, Nous Research, OpenClaw, RVM agent, vertical AI agents, custom AI CLI, npx metaharness, npm create AI agent, Rust WASM agent kernel, NAPI-RS, wasm-bindgen, agent memory, ReasoningBank, HNSW vector search, emergent time, witness manifest, Ed25519 signed, provenance, SBOM, SPDX, SLSA, plugin marketplace, IPFS registry, drift detection, anti-slop, TDD agents, self-evolving agents, federated agents, swarm intelligence, GCP Workload Identity Federation, Secret Manager, npm provenance, repo-aware AI, repo-native CLI, repo factory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruvnet%2Fmetaharness","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruvnet%2Fmetaharness","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruvnet%2Fmetaharness/lists"}