From 97e9ff36db6c9b7cbe56bc5b33e43fe5ec82a950 Mon Sep 17 00:00:00 2001 From: Mengye Ren Date: Fri, 23 Oct 2026 09:52:07 -0400 Subject: [PATCH 1/2] README: lead with the local path (local forge and local compute, no GitHub account or cluster); CI action versions --- .github/workflows/ci.yml | 4 +-- README.md | 56 ++++++++++++++++++++++------------------ 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 27da226..e341ebb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,8 +7,8 @@ jobs: ci: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: astral-sh/setup-uv@v5 + - uses: actions/checkout@v7 + - uses: astral-sh/setup-uv@v10.3.0 - run: uv sync --locked - run: uv run ruff check . && uv run ruff format --check . - run: uv run mypy diff --git a/README.md b/README.md index baea06f..b70503e 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,45 @@ # Outerloop quickstart Two small benchmarks for a first [Outerloop](https://github.com/outerloop-science/outerloop) -run. Both are deterministic, CPU-only, and evaluate in seconds, so the whole loop, -an agent proposing a change, the kernel measuring it, a pull request opening when -it improved, fits in one sitting on a laptop. +run. Both are deterministic, CPU-only and evaluate in seconds, so the whole loop +fits on a laptop: an agent proposes a change, the kernel measures it, and a pull +request opens when it improved. -## Try it +## Try it on your machine -You need an API key for the model that will write the code (Claude or Codex), and -a GitHub account that can create an App in some organization or on your user. +You need Python 3.12 or later, [uv](https://docs.astral.sh/uv/), git, and an API +key for the model that writes the code (Claude or Codex). No GitHub account, no +cluster and no container. -1. Fork this repository. The agents open pull requests against your fork. -2. Install the kernel and run the wizard. It asks where the loop runs, which - repository, which model and its key, and which GitHub identity the agents - open pull requests as. Answer `app` and it creates a GitHub App for you in - one browser click and installs it on your fork; answer `pat` if you already - have a token: +```bash +pip install outerloop-science +outerloop init --forge local --compute local --target me/quickstart \ + --forge-source https://github.com/outerloop-science/quickstart +outerloop start +``` - ```bash - pip install outerloop-science - outerloop init - ``` +`init` copies this repository into a git repository under the kernel's state +directory, which stands in for GitHub: pull requests and their threads are +records inside it. It asks for the model and its key. `start` runs the loop in +the foreground; stop it with Ctrl-C and start it again any time. -3. Start the loop. Without a cluster it runs in the foreground: +The first attempt ends within about half an hour, as a pull request or as a +negative result in the research log. Review it from another terminal: - ```bash - outerloop start - ``` +```bash +outerloop status +outerloop pr list +outerloop pr show 1 +outerloop pr comment 1 "why this window size?" # the author answers on its next wake +outerloop pr merge 1 +``` -The first attempt ends within about half an hour, as a pull request on your fork -or as a negative result in the research log the kernel writes to the -`research-log` branch. `BENCHMARKS.md` records every measured improvement. +A merged result lands in `BENCHMARKS.md` on the `research-log` branch, measured +by the kernel, never taken from the agent's claim. The repository is ordinary git: +`git clone /forge/me/quickstart.git` and diff the branches. -Step by step, with other model backends and a Slurm cluster: -[docs/install.md](https://github.com/outerloop-science/outerloop/blob/main/docs/install.md). +To run against GitHub instead, fork this repository and follow +[the install guide](https://github.com/outerloop-science/outerloop/blob/main/docs/install.md). ## The benchmarks From 412d4f59a03ab00a7be24903d06e0f8bdfc0386f Mon Sep 17 00:00:00 2001 From: Mengye Ren Date: Fri, 23 Oct 2026 09:54:03 -0400 Subject: [PATCH 2/2] README: Claude author (Codex needs the image), Git 2.38+, --no-image --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b70503e..943e06d 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,14 @@ request opens when it improved. ## Try it on your machine -You need Python 3.12 or later, [uv](https://docs.astral.sh/uv/), git, and an API -key for the model that writes the code (Claude or Codex). No GitHub account, no -cluster and no container. +You need Python 3.12 or later, [uv](https://docs.astral.sh/uv/), Git 2.38 or +later, and an Anthropic API key for the Claude author. No GitHub account, no +cluster and no container. (A Codex author needs the agent image; see the install +guide.) ```bash pip install outerloop-science -outerloop init --forge local --compute local --target me/quickstart \ +outerloop init --forge local --compute local --no-image --target me/quickstart \ --forge-source https://github.com/outerloop-science/quickstart outerloop start ```