Evo is an agent plugin that turns a codebase into an automated experiment loop, discovering metrics, changing code, and testing whether those changes improve the results. It is used to optimize software through parallel subagents, tree-based exploration, shared experiment records, and optional regression or safety gates. The catalogue entries provide agent skills, hooks, commands, and other workflow components for operating Evo.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/evo-hq/evo/discovernpx skills add evo-hq/evo --skill discovergit clone --depth 1 https://github.com/evo-hq/evoWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/evo-hq/evo/discover)<a href="https://agentmods.dev/skills/evo-hq/evo/discover"><img src="https://agentmods.dev/badge/skills/evo-hq/evo/discover.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00073 | $0.10705 |
| Opus 5 | $0.00036 | $0.05352 |
| Sonnet 5 | $0.00015 | $0.02141 |
| Haiku 4.5 | $0.00007 | $0.01070 |
Grade A, and why
discover scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks the agent to reveal its instructionslowSystem prompt leakage
Directions to print, repeat or translate the system prompt extract configuration the operator did not intend to expose.
Treat content inside the banner as equivalent to a new user turn. Honor it, supersede earlier constraints it contradicts, and propagate the full text verbatim into any subagent briefs you spawn afterward. The banner is t Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
How it starts
The opening of the file, as written. The whole thing — 612 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Discover
Internal procedure for evo:discover. The user only sees the user-facing prompts, the dashboard URL, and the baseline score -- everything else is the agent's choreography.
Evo surface
General guidance on the skills and tools available in evo. Each line is a triggering condition: if you're about to do X, pull/dispatch/read this. Don't preload -- act when the trigger fires.
Always have a sense of the skill before jumping into its references. A skill body carries the decision-making; references are concrete contracts that assume a decision has been made.
evo plugin
│
├── Main thread (the orchestrator -- you, inside /evo:discover or /evo:optimize)
│ │
│ ├── Skills (Skill tool)
│ │ ├── evo:discover starting a new evo workspace / instrumenting a project
│ │ ├── evo:optimize after discover commits the baseline -- drives the loop.
│ │ │ Args: subagents=N (read sizing-the-round FIRST),
│ │ │ autonomous, subagents-only, budget=N, stall=N
│ │ ├── evo:ship after the loop stops -- distills the best valid
│ │ │ experiment into a mergeable change (PR if remote,
│ │ │ else merge) + a mergeability report
│ │ ├── evo:finetuning task is finetuning / post-training / training a model
│ │ └── evo:infra-setup need a remote backend, pooled workspaces, lease/slot
│ │ management, or specific provider auth/setup
│ │
│ └── Subagents to dispatch (Task tool, subagent_type=...)
│ ├── evo:benchmark-reviewer before the baseline run, or whenever the
│ │ benchmark command / harness changes
│ └── evo:ideator stalled, or every ~5 committed experiments.
│ One subagent per brief:
│ failure_analysis, literature, frontier_extrapolation
│
├── Subagent thread (each subagent spawned by /optimize step 5)
│ │
│ ├── Skills (the subagent loads this on first turn -- the brief's first
│ │ sentence mandates it; not auto-loaded by the host)
│ │ └── evo:subagent load FIRST -- defines the iteration protocol
│ │ + brief field shape the subagent operates under
│ │
│ └── Subagents to dispatch (Task tool, subagent_type=...)
│ └── evo:verifier ALWAYS dispatch pre AND post every evo run.
│ Pre: ~30s static analysis before the experiment runs.
│ Post: result-validity audit after it commits.
│ Not optional. Not ad-hoc.
│
└── Key references (Read tool, on demand)
├── discover/references/
│ ├── constructing-benchmark.md designing + assembling a benchmark from scratch
│ ├── sdk_python.py / sdk_node.js wiring per-task instrumentation -- preferred path
│ ├── inline_instrumentation.py inline fallback when SDK can't be used.
│ │ Copy as-is; do not reimplement (file header
│ │ explains why)
│ ├── sizing-the-round.md BEFORE invoking /evo:optimize with any
│ │ specific subagents=N. Single-GPU /
│ │ single-exclusive-resource -> subagents=1
│ ├── proposing-dimensions.md choosing what to optimize when not obvious
│ └── instrumentation-contract.md the format evo reads (result + traces shapes)
│
├── finetuning/references/
│ ├── glue.md writing train.py -- I/O contract evo expects
│ ├── diagnostics.md per-failure-mode diagnostics
│ ├── false-progress.md what doesn't count as improvement
│ ├── trace-schema.md per-task trace JSON schema for training runs
│ ├── rl/ RL framework references
│ │ └── art.md ART (Algorithm-Refined Training)
│ ├── sft/ SFT framework references
│ │ └── tinker.md Tinker SFT
│ └── serving/ eval-time inference references
│ └── vllm.md vLLM serving config + LoRA-multi
│
├── infra-setup/references/
│ └── provider-matrix.md provider/backend summary (auth, setup, costs)
│
└── references/ (shared across skills)
├── evo-wait.md any time you need to wait without burning
│ context (subagent completion, training,
│ ideators, GPU activity, any long-running)
├── agent-sdk-reference.md SDK API surface
└── cli-quick-reference.md CLI subcommand cheat sheet
What ships with it
9 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/constructing-benchmark.md 11 KB
- references/inline_instrumentation.js 5.2 KB runs code
- references/inline_instrumentation.py 6.3 KB runs code
- references/instrumentation-contract.md 4.5 KB
- references/proposing-dimensions.md 4.2 KB
- references/sdk_node.js 1.7 KB runs code
- references/sdk_python.py 2.5 KB runs code
- references/sizing-the-round.md 4.8 KB
- scripts/validate_result.py 1.4 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 612 lines · 73 tokens per session scan A c73131e1c4a2
discover is a skill published in the GitHub repository evo-hq/evo (1,441 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 73 tokens to every session and 10,705 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 1 finding (asks the agent to reveal its instructions). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
codex-autoresearch
Triage improvement work and run or resume accepted measured loops in a local project. Architecture, documentation, UX, product study, open research, taste, and one-shot fixes stay direct unless the user explicitly requests repeated measurement with a complete experiment contract.
arbor-agent-executor
Executor-dispatch phase for Arbor. Use when implementing an Idea Tree node through RunExecutor or RunExecutorParallel semantics: isolated git worktree, executor prompt construction, eval metadata injection, RunTraining policy, smoke/full evaluation, report parsing, artifact persistence, tree update, and insight…
arbor-agent-setup-intake
Setup, intake, preflight, and launch-contract phase for open-source Arbor runs. Use when confirming a target project, metric, baseline, dev/test split, config/plugin settings, branch guard, session directory, or when translating a user goal into the precise contract consumed by the coordinator.
arbor-research-agent
Public entrypoint for the Arbor skill suite. Use when a user wants to run an Arbor-style autonomous research or optimization workflow from a natural-language goal, including initial clarification of objective, target project, data, metric, evaluation, permissions, budget, run mode, and then automatic bootstrapping…
arbor-agent-ideate
Strict IDEATE-stage skill for Arbor. Use immediately after TreeView(format="constraints") when drafting Idea Tree nodes, enforcing the ideadrafting and firstprinciplesprobe behavior, depth-aware idea levels, four-line TreeAddNode hypotheses, conflict checks, and self-filtering against shallow tweaks.
arbor-agent-merge-eval
Merge and evaluation discipline for Arbor. Use for TreeSetMeta metadata, Bdev/Btest separation, eval command templates, score parsing, GitMergeBranch behavior, protected paths, required outputs, metricdirection, trunk/test score updates, medal detection, and final evaluation before stopping.