YOUR REPOSITORY. A RESEARCH LAB.

Let Copilot
experiment.
Keep the proof.

Turn “make this better” into a measured research loop. Test changes in isolated worktrees. Keep progress that earns an independent review.

Local-first. Copilot-native. Nothing merges without you.

THE EXPERIMENT WORKBENCH main stays yours
8 experiments 3 rounds 1 recombination

Scores & contributions

ILLUSTRATIVE SCORE ↑
Approved Retained Gate failed Best lineage Donor

Branch in parallel. Extend promising experiments. Recombine ideas and measure again.

Scroll the graph to follow every branch

exp_0007 APPROVED RECOMBINATION

Two promising branches. One new experiment.

Base: exp_0004 · Donor: exp_0005

Keep the base's improvement and transfer a compatible idea from the donor. Remeasure the combination, pass the gates, and earn a new independent review. Nothing merges into main.

Sources recordedCombination measuredReviewed

Illustrative run, not benchmark results.

A research loop.
Not another hosted platform.

GitHub Copilot CLIthe agent workflow
Python standard librarythe control plane
Local Git worktreesthe experiment space

THE RESEARCH LOOP

First define better.
Then go find it.

Optimization needs a trustworthy measuring stick. Olo separates building that measurement from changing the code it measures.

01 / EXPLORE/olo-explore

Build the measuring stick.

Understand the repository. Choose a goal with real headroom. Construct or adapt a benchmark and regression gates inside the baseline worktree.

DiscoverCheckApprove

YOU GET A checked baseline. Frozen measurement. A clear starting point.

02 / OPTIMIZE/olo-optimize

Change the code. Not the test.

Read failure traces. Explore different hypotheses in isolated worktrees. Measure each candidate against the same benchmark, then review the evidence.

HypothesizeMeasureReview

YOU GET Reviewed improvements. Useful alternatives. Lessons for the next round.

The last step stays human. Inspect the winning branch. Decide what to merge.

Meet the six agent roles

MORE THAN A SCORE

Every result
has receipts.

A promising number is not enough. Olo keeps the source, task-level evidence, and review decision connected.

Measurement you can trust

Source-bound checks establish repeatability before the baseline. Protected files keep the measuring stick fixed during experiments.

check → assess → baseline

Review before reuse

Measured candidates wait for independent approval. Numeric gain floors and critical-task limits separate progress from noise.

pending-review → approved

Keep the useful detours

Retain task specialists. Revisit approved ancestors. Combine compatible ideas with their donors and contributions recorded.

frontier · retain · recombine

Learn from what happened

Recorded probes and evidence-linked lessons make failed directions useful to the next experiment instead of lost in a chat.

probe · traces · learn

Know when to stop

Bound the evaluations. Respect ceilings and stalls. Run a configured final test once, then close that measurement version.

bound → select → finalize

See the whole research trail

A local dashboard connects the experiment tree to gates, task deltas, diffs, and logs. Read or download the generated run summary.

python olo.py report

A perfect tiny benchmark is a ceiling, not production proof. Olo makes that boundary explicit.

FROM REPO TO FIRST EXPERIMENT

A small start.
A real research loop.

Try the included five-case policy router in a fresh clone. It is intentionally small enough to understand, including the cases it gets wrong.

  • Git + Python 3.10 or newer
  • GitHub Copilot CLI with access to Copilot
  • PowerShell 7+ for Windows hooks

No package install for Olo's controller. Copilot usage and your target's dependencies are separate.

Bring Olo to your own repository
1 In your terminal
git clone https://github.com/abpatramsft/olo-autoresearch.git
cd olo-autoresearch
python olo.py --help
copilot --agent=olo-explorer

Use your Python 3 launcher if it is named python3.

2 Ask Copilot to explore

Use /olo-explore on examples/tiny-policy-agent/agent.py. Use the existing benchmark and gate, protect both measurement files, and prepare a checked, independently approved baseline. Stop at phase=ready-to-optimize. Do not merge.

3

Ready baseline? Run one bounded round.
Switch to olo-orchestrator, then ask for /olo-optimize with width 1, budget 1, independent review, and no merge. Full instructions ↗

A FEW USEFUL BOUNDARIES

Before you
press enter.

Is this a hosted service?

No. Olo's controller, worktrees, dashboard, and saved evidence live in your repository on your machine. This website is a static introduction, not the dashboard. Copilot itself uses its configured model services; your benchmarks may also use external services.

Does Olo change my main branch?

Experiment edits happen in allocated Git worktrees. Benchmark construction belongs in the baseline worktree. A winning experiment stays on its own branch until you explicitly decide to merge it.

How is Olo related to Evo?

Olo is loosely inspired by Evo and its experiment-driven approach. It is independently written for GitHub Copilot CLI, with a particular focus on checked baselines, binding review, traceable research, and final-test discipline. It is not an Evo plugin, and this is not a feature-parity comparison.

What should I not assume?

Olo is a local prototype, not a security sandbox or proof of production reliability. Worktrees do not isolate hardware or network access. Independent review is a workflow requirement, not identity authentication. Use representative benchmarks and fresh final questions.

LESS GUESSWORK. MORE EVIDENCE.

Make the next change
an experiment worth keeping.

Start with Olo