by ruvnet
🛠️ 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).
# Add to your Claude Code skills
git clone https://github.com/ruvnet/metaharnessmetaharness is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ruvnet. 🛠️ 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). It has 344 GitHub stars.
metaharness's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/ruvnet/metaharness" and add it to your Claude Code skills directory (see the Installation section above).
metaharness is primarily written in TypeScript. It is open-source under ruvnet on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh metaharness against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
npx metaharness · open the Studio →
(Repo: ruvnet/agent-harness-generator · CLI: metaharness · Library: @ruvnet/agent-harness-generator)
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.
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.
The model is replaceable. The harness is the product.
In under 60 seconds, in your browser, with nothing leaving your machine:
Output is an npm-publishable .zip with your name on it, your branding, your npx <your-name> CLI.
npx metaharness score <repo> reads
the repo (never runs it) and prints a one-screen report card — how well a
harness fits, how likely it is to build, how safe the tools are, and the
rough cost per run — so you know what you'll get before scaffolding.@metaharness/router
routes each request to the right model from your own results — same quality,
far less spend. Works out of the box with zero native deps; train it on your
data for a sharper fit (npm i @metaharness/router). Add the optional
@ruvector/tiny-dancer
to train a fast native model instead — same training data, no API change.@metaharness/darwin) wired in —
run npm run evolve and the harness mutates its own config, tests each change in a
sandbox, and keeps only what measurably improves. The model stays frozen; the harness
evolves. Safe by default (no network, no API key; pure refactor/tuning behind a safety
gate). Validated on real SWE-bench Lite bug-fixing. --no-darwin to skip.@metaharness/weight-eft, metaharness weight-eft) takes the
complementary lever to Darwin's gradient-free evolution: it exports the harness's gold-resolved
archive into standard SFT/DPO sets and LoRA-tunes the open cheap tier (GLM/Qwen), so the
cost-cascade escalates to Opus/GPT less often. It attacks cost (fewer $0.50 escalations),
not the frontier ceiling — and stays honest about it. Strict train/eval-disjointness +
reward-hacking filters keep the lift real; the tune is a gene Darwin can prune if it overfits.
See ADR-198. ($0 / GPU-gated.)A generated harness is a starting point you own, not a fixed framework. Open it and make it yours:
harness doctor / harness validate keep it healthy as you trim.npm publish — now anyone on your team runs
npx @your-org/your-harness and gets the same repo-tuned agent. One
command, org-wide, versioned like any other dependency. (The 19
@metaharness/* examples are exactly this pattern,
published live.)Make older, cheaper models punch like frontier ones. The right harness isn't a pile of extra steps bolted onto an expensive model — it's putting the right model on each task and getting out of the way. Our DRACO benchmark proves it: a small, cheap model delivers frontier-quality research at roughly one-tenth the cost, and a smart router squeezes out the rest. Stop paying frontier prices for work a $0.10 model does just as well.
That router ships as @metaharness/router
— route(query) returns the cheapest model predicted to clear your quality bar,
learned from your own eval logs. npm i @metaharness/router.
# In the browser — zero install, nothing leaves the page
open https://ruvnet.github.io/agent-harness-generator/
# Or in the terminal — the same harness (behaviourally equivalent output)
npx metaharness my-bot --template vertical:coding --host claude-code
cd my-bot && npx . --help
Don't know what to pick? Run the wizard:
npx metaharness --wizard
Already have a repo you want a harness for?
harness analyze-repo . # local — deterministic analysis only
harness analyze-repo . --scaffold my-bot # materialise the recommended harness
No repository code is executed. Inferred build/test commands are emitted as trust: inferred · execution: disabled.
📖 Read the plain-language user guide →
The same harness output runs on nine agent hosts — eight interactive, plus GitHub Actions (CI/CD):
| Host | What ships | Notes |
|---|---|---|
| Claude Code | MCP server + hooks + 3-scope settings | Richest surface; Ruflo-native |
| OpenAI Codex | MCP via ~/.codex/config.toml |
TOML, no hooks |
| pi.dev | Pi extension via pi.registerTool() |
No MCP by design |
| Hermes | MCP runtime, <think> scrubbing |
Per Hermes issue #741 |
| OpenClaw | ~/.openclaw/openclaw.json + workspace skills |
Personal-AI gateway |
| RVM | Bare-metal microhypervisor + capability tokens | Hardware isolation for untrusted peers |
| GitHub Copilot | MCP via .vscode/mcp.json |
VSCode 1.99+ (ADR-032) |
| OpenCode | MCP via .opencode/opencode.json |
sst/opencode TUI (ADR-036) |
| GitHub Actions | .github/workflows/ + composite action.yml |
Non-interactive CI/CD; default-deny via permissions: (ADR-033) |
See ADR-004 — Host integration model and ADR-033 — GitHub Actions host.
MCP is included as a first-class adapter surface, not the identity. It is gated and default-deny (ADR-022):
off · local (stdio) · remote (HTTPS + auth)src/mcp/{server,tools,resources,prompts,policy,audit}.ts + a scannable .harness/mcp-policy.jsonharness mcp-scan <path> — "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.npx metaharness --list
npx metaharness my-bot --template vertical:coding
| Category | Templates |
|---|---|
| Starter / Operations | minimal, vertical:devops |
| Engineering | vertical:coding, vertical:ai, vertical:repo-maintainer (iter 113) |
| Knowledge | vertical:research, vertical:ruview, vertical:education |
| Finance / Pro | vertical:trading, vertical:legal, vertical:health |
| Customer / Growth | vertical:support, vertical:crm, vertical:marketing, vertical:advertising, vertical:sales |
| Business / Frontier | vertical:business, vertical:agentics, vertical:gaming, vertical:exotic |
Each ships bespoke domain agents (with system prompts), skills, commands, and per-host settings — all default-deny.
Don't want to pick flags? Each host and vertical has a dedicated
@metaharness/* wrapper — published, one npx away, no template/