From 63c10d562c0a9ea92145c7b9f3ae5e8ef025a68a Mon Sep 17 00:00:00 2001 From: Axel Delafosse Date: Sun, 22 Feb 2026 12:25:24 -0800 Subject: [PATCH] Add landing page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Single-file dark, minimal landing page at site/index.html. No frameworks, no build step — pure HTML + inline CSS. Also fixes missing cwd in tmux test. --- site/index.html | 212 ++++++++++++++++++++++++++++++++++++++++ tests/loop/tmux.test.ts | 1 + 2 files changed, 213 insertions(+) create mode 100644 site/index.html diff --git a/site/index.html b/site/index.html new file mode 100644 index 0000000..e59c645 --- /dev/null +++ b/site/index.html @@ -0,0 +1,212 @@ + + + + + + loop + + + +
+ loop + github +
+ +

Dead simple CLI that runs codex and claude in a loop.

+

The main loop is ~50 lines of code.

+ +
+

Install

+
curl -fsSL https://raw.githubusercontent.com/axeldelafosse/loop/main/install.sh | bash
+ +
+ +
+

Usage

+
loop --prompt "Implement auth flow" --proof "All tests pass" --worktree
+
+loop --prompt "Fix the payment bug" --proof "Run bun test" --review claudex
+
+ +
+

What it does

+ +
+ +
+

What this is

+

+ This is a "meta agent loop" to help coding agents become + long-running agents. Stop baby sitting your agents: let them iterate on + tasks with clear proof requirements until they are done. +

+

+ This is not an "agent harness" and the goal isn't to re-invent + the wheel. Loop leverages existing agent harnesses like codex and + claude, with their own implementation of the "agent teams" + orchestration. +

+
+ + + + + + diff --git a/tests/loop/tmux.test.ts b/tests/loop/tmux.test.ts index b01cc7d..b3fd288 100644 --- a/tests/loop/tmux.test.ts +++ b/tests/loop/tmux.test.ts @@ -146,6 +146,7 @@ test("runInTmux skips auto-attach for non-interactive sessions", () => { test("runInTmux reports when tmux session exits before attach", () => { expect(() => runInTmux(["--tmux", "--proof", "verify"], { + cwd: "/loop", env: {}, findBinary: () => true, spawn: (args: string[]) => {