Discover
Autonomous multi-file evolution
Describe a goal and the agent runs the full cycle autonomously — decomposing it into Ideas, building Experiments, generating multi-file Versions, and carrying only the best forward into the next generation. Exploration and combination in one run.
Need per-file diff exploration? Targets · Need to combine specific changes? Optimise
Starting a Discovery Run
From the Discover page (accessed via the Optimise tab), describe what you want the agent to discover or optimise in the input field, then submit your goal.

Configuration
Before starting a run, configure how Discover explores your codebase:
| Setting | Description |
|---|---|
| Model | The AI model used for the discovery (e.g. GPT-5) |
| Generations | Number of evolutionary generations to run (default: 3) |
| Versions per gen | Number of versions generated per generation (default: 5) |
| Run code after each version | Executes and validates each version as it is generated |
| Manual approval mode | Pauses between generations for you to review before continuing |
The total number of versions created is Generations × Versions per gen (e.g. 3 × 5 = 15 versions).
Inside a Discovery Run
Once a run starts, the left sidebar gives you five views to navigate your run:
- Graph — visual graph of the full run
- Board — kanban-style overview of node statuses
- Ideas — list of all Ideas generated or added
- Experiments — list of all Experiments and their status
- Versions — list of all generated code versions and their scores
- Goals — the fitness criteria the agent is optimising toward
Graph
The Graph is the main view of a run. Each node is clickable — selecting a node opens a detail panel on the right with its full content, status, rationale, and metrics.

Ideas
Each Idea is a textual hypothesis. Click an Idea node to see its content and status (Proposed → Approved / Rejected). You can also add your own Ideas to steer the run.

Experiments
An Experiment bundles one or more approved Ideas with a population size. Click an Experiment node to see which Ideas it combines and its current status: Proposed → Approved → Running → Confirmed / Refuted / Inconclusive.

Versions
Each Version is an actual code diff produced by an Experiment. Clicking a Version opens the detail panel showing:
- Fitness score — improvement over baseline (e.g. +0.26)
- Status — Scored, Inconclusive, etc.
- Generation — which generation it belongs to and which version it evolved from
- Rationale — the agent's explanation of what was changed and why
- Metrics — individual scores for each goal (e.g.
llm_algorithmic_complexity_improvement,llm_data_structure_efficiency) - Changes — inline code diff

Board
The Board view gives a kanban-style overview of all nodes grouped by status — useful for tracking progress across a long run at a glance.

Goals
Goals define the fitness criteria the agent optimises toward. You can view and edit the goals that drive scoring across all Versions.

Opening a Version as a Changeset
When you find a Version you want to keep, click Open in Changesets from the Version detail panel. This packages the diff into a Changeset that you can review and merge as a pull request.

How Discover Works
Each Discover run is visualised as a graph built from four node types:
Objective
The goal you typed in. Unique per run — it anchors the entire graph.
"Optimise the performance of this code…"
Idea
A textual hypothesis generated by the agent (or added by you). Each Idea has a status: Proposed → Approved or Rejected.
"Replace the inner loop with a batched read."
Experiment
A bundle of one or more approved Ideas with a set population size. Once it runs, the status progresses: Proposed → Approved → Running → Confirmed / Refuted / Inconclusive.
"Run 5 versions all combining ideas A + B."
Version
The actual code diff produced by an Experiment. Each Version has a fitness score (0.00 to 1.00) computed from your goals. Versions can be opened as a Changeset and merged as a PR.
v3 · fitness 0.71 · +12% over baseline
The cycle flows like this: the Objective spawns Ideas → groups of Ideas form Experiments → each Experiment generates Versions → Versions get scored, and the best ones feed the next round of Ideas. This repeats for N generations, with each generation building on the strongest results of the last.
Next Steps
- Code Targeting — identify specific targets for manual, per-file exploration
- Creating an Optimisation — combine specific versions you've already selected
- Reviewing Results — understand the output metrics