Local-first. Copilot-native. Nothing merges without you.
THE EXPERIMENT WORKBENCH⑂ main stays yours
8 experiments3 rounds1 recombination
Scores & contributions
ILLUSTRATIVE SCORE ↑
BASELINEROUND 1ROUND 2ROUND 3
ApprovedRetained×Gate failedBest lineageDonor
Branch in parallel. Extend promising experiments. Recombine ideas and measure again.
Scroll the graph to follow every branch ↔
exp_0007APPROVED 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
Select a node to trace its parents and donors. 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.
Discover→Check→Approve
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.
Hypothesize→Measure→Review
YOU GET Reviewed improvements. Useful alternatives. Lessons for the next round.
↳
The last step stays human. Inspect the winning branch. Decide what to merge.
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.