Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion site/about/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ <h1>About Agent Looper</h1>
<li><a href="../">Product site</a></li>
<li><a href="https://github.com/dancingteeth/agent-looper">Source</a></li>
<li><a href="https://www.npmjs.com/package/@dancingteeth/agent-looper">npm</a></li>
<li><a href="https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md">Changelog</a> — 0.6.3</li>
<li><a href="https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md">Changelog</a> — 0.6.2</li>
<li><a href="https://dancingteeth.net/">Author</a></li>
</ul>
</div>
Expand Down
2 changes: 1 addition & 1 deletion site/about/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ Agent Looper is made by Paul Zgordan (dancingteeth), who also writes at The Vacu
- Product: https://looper.dancingteeth.net/
- Source: https://github.com/dancingteeth/agent-looper
- npm: https://www.npmjs.com/package/@dancingteeth/agent-looper
- Changelog (0.6.3): https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md
- Changelog (0.6.2): https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md
- Author: https://dancingteeth.net/
2 changes: 1 addition & 1 deletion site/docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ <h1>Agent Looper developer resources</h1>
<li><a href="https://github.com/dancingteeth/agent-looper/blob/main/docs/claude-runtime.md">Claude runtime</a> — Claude Code CLI</li>
<li><a href="https://github.com/dancingteeth/agent-looper/blob/main/docs/embed-api.md">Embed API</a> — contract for embedding Agent Looper</li>
<li><a href="https://github.com/dancingteeth/agent-looper/blob/main/SECURITY.md">Security</a> — reporting vulnerabilities</li>
<li><a href="https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md">Changelog</a> — 0.6.3</li>
<li><a href="https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md">Changelog</a> — 0.6.2</li>
<li><a href="../llms.txt">Agent Looper llms.txt</a></li>
<li><a href="../index.md">Agent Looper homepage (markdown)</a></li>
</ul>
Expand Down
2 changes: 1 addition & 1 deletion site/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Agent Looper is the npm package `@dancingteeth/agent-looper` and the CLI `agent-
- Claude runtime (Claude Code CLI): https://github.com/dancingteeth/agent-looper/blob/main/docs/claude-runtime.md
- Embed API (contract for embedding Agent Looper): https://github.com/dancingteeth/agent-looper/blob/main/docs/embed-api.md
- Security (reporting vulnerabilities): https://github.com/dancingteeth/agent-looper/blob/main/SECURITY.md
- Changelog (0.6.3): https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md
- Changelog (0.6.2): https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md
- Agent Looper llms.txt: https://looper.dancingteeth.net/llms.txt
- Agent Looper homepage (markdown): https://looper.dancingteeth.net/index.md

Expand Down
4 changes: 2 additions & 2 deletions site/harnesses/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ <h3>Cursor</h3>
<span class="harness-chip">Judge Grok 4.6</span>
</p>
<p class="harness-card__run"><code>pnpm exec agent-loop run .cursor/loops/my-task --runtime cursor --review-gate</code></p>
<p class="harness-card__note">Export <code>CURSOR_API_KEY</code> or run under Doppler. Run <code>pnpm exec agent-loop-init</code> once. Set <code>costPreset: "cursor"</code> in <code>loop.json</code> to stay on Cursor for both worker and judge.</p>
<p class="harness-card__note">Export <code>CURSOR_API_KEY</code> or run under Doppler. Run <code>pnpm exec agent-loop-init</code> once. Set <code>costPreset: "cursor"</code> in <code>loop.json</code> to stay on Cursor for both worker and judge. Repo defaults that pin OpenCode <code>escalateModel</code> are not applied on <code>--runtime cursor</code> — judge uses <code>reviewRuntime</code> / <code>reviewModel</code>.</p>
</article>

<article class="harness-card" id="dsh">
Expand All @@ -133,7 +133,7 @@ <h3>DSH</h3>
<span class="harness-chip">Judge <code>deepseek-v4-pro</code></span>
</p>
<p class="harness-card__run"><code>pnpm exec agent-loop run .cursor/loops/my-task --runtime dsh --review-gate</code></p>
<p class="harness-card__note">Default worker stays <code>deepseek-official/deepseek-v4-flash</code>; opt in to <code>deepseek-official/deepseek-flash</code> (DeepSeek-V41-Flash, image-capable) per loop in setup. Ensure <code>dsh</code> is on PATH. DSH companion plugin guard blocks accidental foreground grinds. See <a href="https://github.com/dancingteeth/agent-looper/blob/main/docs/dsh-plugin.md">docs/dsh-plugin.md</a> and <a href="https://github.com/dancingteeth/agent-looper/tree/main/plugins/dsh-agent-looper">plugins/dsh-agent-looper/</a>.</p>
<p class="harness-card__note">Default worker stays <code>deepseek-official/deepseek-v4-flash</code>; opt in to <code>deepseek-official/deepseek-flash</code> (DeepSeek-V41-Flash, image-capable) per loop in setup. Ensure <code>dsh</code> is on PATH. In <code>~/.dsh/.credentials.yaml</code>, use <code>version: "1"</code> (quoted) — a bare YAML integer breaks headless boot; the harness prints a one-line fix. DSH companion plugin guard blocks accidental foreground grinds. See <a href="https://github.com/dancingteeth/agent-looper/blob/main/docs/dsh-plugin.md">docs/dsh-plugin.md</a> and <a href="https://github.com/dancingteeth/agent-looper/tree/main/plugins/dsh-agent-looper">plugins/dsh-agent-looper/</a>.</p>
</article>

<article class="harness-card" id="cline">
Expand Down
3 changes: 2 additions & 1 deletion site/harnesses/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ IDE subscription via `@cursor/sdk`.
- Judge (when worker is Cursor): Grok 4.6
- Run: `pnpm exec agent-loop run .cursor/loops/my-task --runtime cursor --review-gate`

Export `CURSOR_API_KEY` or run under Doppler. Run `pnpm exec agent-loop-init` once. Set `costPreset: "cursor"` in `loop.json` to stay on Cursor for both worker and judge.
Export `CURSOR_API_KEY` or run under Doppler. Run `pnpm exec agent-loop-init` once. Set `costPreset: "cursor"` in `loop.json` to stay on Cursor for both worker and judge. Repo defaults that pin OpenCode `escalateModel` are not applied on `--runtime cursor` — judge uses `reviewRuntime` / `reviewModel`.

### DSH (`--runtime dsh`)

Expand All @@ -41,6 +41,7 @@ DeepSeek Harness CLI — worker is `dsh --profile headless`; `dsh-agent-looper`
- Worker: `deepseek-official/deepseek-v4-flash` (escalates to `deepseek-official/deepseek-v4-pro`) — default; opt in per loop to `deepseek-official/deepseek-flash` (DeepSeek-V41-Flash, image-capable)
- Judge: `deepseek-official/deepseek-v4-pro` (when `reviewRuntime: dsh`)
- Run: `pnpm exec agent-loop run .cursor/loops/my-task --runtime dsh --review-gate`
- In `~/.dsh/.credentials.yaml`, use `version: "1"` (quoted) — a bare YAML integer breaks headless boot; the harness prints a one-line fix.
- DSH companion plugin guard blocks accidental foreground grinds

### Cline (`--runtime cline-pass` · `cline`)
Expand Down
8 changes: 4 additions & 4 deletions site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
"name": "How do Agent Looper worker and judge presets work?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Named presets: minmax (efficiency — cheap capable worker, strongest included judge), balanced (spend more on the worker, same judge), cursor (stay on Cursor: Composer + Grok). Or you, your agent, or Looper wires a pair from what's installed. The pair stays for the whole loop. Not Auto."
"text": "Named presets: minmax (efficiency — cheap capable worker, strongest included judge), balanced (spend more on the worker, same judge), cursor (stay on Cursor: Composer + Grok). Or you, your agent, or Looper wires a pair from what's installed. The pair stays for the whole loop. Not Auto. On runtime: cursor, repo defaults that pin OpenCode Go escalateModel are not applied — Composer plus another judge uses reviewRuntime / reviewModel, not escalateModel."
}
},
{
Expand Down Expand Up @@ -155,7 +155,7 @@
"name": "How do I start a loop from an idea?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Two paths: (1) If you see your coding agent's logo on this page — type your idea as a normal prompt, and ask it to implement the feature with Agent Looper. It sets up the loop and keeps grinding until the check is green. (2) If you like the terminal — run pnpm exec agent-loop-setup: a one-screen setup wizard shows your recap and the current question, not a scrolling pile. Go back to change one answer without losing the rest. Then use pnpm exec agent-loop-prompt to type your idea and start the run. The check stays the finish line."
"text": "Two paths: (1) If you see your coding agent's logo on this page — type your idea as a normal prompt, and ask it to implement the feature with Agent Looper. It sets up the loop and keeps grinding until the check is green. (2) If you like the terminal — run pnpm exec agent-loop-setup: a one-screen setup wizard shows your recap and the current question, not a scrolling pile. Go back to change one answer without losing the rest. Then use pnpm exec agent-loop-prompt to type your idea and start the run. The scaffold judge stops as soon as frozen GOAL.md and verify.sh pass freeze (10-minute wall, not a long grind). The check stays the finish line."
}
},
{
Expand Down Expand Up @@ -342,7 +342,7 @@ <h2>Which coding agents does Agent Looper work with?</h2>
<article class="tui-answer tui-answer--presets">
<h2>How do Agent Looper worker and judge presets work?</h2>
<p>
Named presets: minmax (efficiency — cheap capable worker, strongest included judge), balanced (spend more on the worker, same judge), cursor (stay on Cursor: Composer + Grok). Or you, your agent, or Looper wires a pair from what's installed. The pair stays for the whole loop. Not Auto.
Named presets: minmax (efficiency — cheap capable worker, strongest included judge), balanced (spend more on the worker, same judge), cursor (stay on Cursor: Composer + Grok). Or you, your agent, or Looper wires a pair from what's installed. The pair stays for the whole loop. Not Auto. On <code>runtime: cursor</code>, repo defaults that pin OpenCode Go <code>escalateModel</code> are not applied — Composer plus another judge uses <code>reviewRuntime</code> / <code>reviewModel</code>, not <code>escalateModel</code>.
</p>
</article>
<article class="tui-answer tui-answer--budget">
Expand Down Expand Up @@ -383,7 +383,7 @@ <h2>How do I start a loop from an idea?</h2>
<strong>If you see your coding agent's logo on this page</strong> — type your idea as a normal prompt, and ask it to implement the feature <strong>with Agent Looper</strong>. It sets up the loop and keeps grinding until the check is green.
</p>
<p>
<strong>If you like the terminal</strong> — run <code>pnpm exec agent-loop-setup</code>: a one-screen setup wizard shows your recap and the current question, not a scrolling pile. Go back to change one answer without losing the rest. Then use <code>pnpm exec agent-loop-prompt</code> to type your idea and start the run. The check stays the finish line.
<strong>If you like the terminal</strong> — run <code>pnpm exec agent-loop-setup</code>: a one-screen setup wizard shows your recap and the current question, not a scrolling pile. Go back to change one answer without losing the rest. Then use <code>pnpm exec agent-loop-prompt</code> to type your idea and start the run. The scaffold judge stops as soon as frozen <code>GOAL.md</code> and <code>verify.sh</code> pass freeze (10-minute wall, not a long grind). The check stays the finish line.
</p>
</article>
<article class="tui-answer tui-answer--env">
Expand Down
6 changes: 3 additions & 3 deletions site/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Agent Looper uses the coding agents you already pay for: Cursor, Cline, OpenCode

## How do Agent Looper worker and judge presets work?

Named presets: minmax (efficiency — cheap capable worker, strongest included judge), balanced (spend more on the worker, same judge), cursor (stay on Cursor: Composer + Grok). Or you, your agent, or Looper wires a pair from what's installed. The pair stays for the whole loop. Not Auto.
Named presets: minmax (efficiency — cheap capable worker, strongest included judge), balanced (spend more on the worker, same judge), cursor (stay on Cursor: Composer + Grok). Or you, your agent, or Looper wires a pair from what's installed. The pair stays for the whole loop. Not Auto. On `runtime: cursor`, repo defaults that pin OpenCode Go `escalateModel` are not applied — Composer plus another judge uses `reviewRuntime` / `reviewModel`, not `escalateModel`.

## How does Agent Looper keep cost down for indie builders?

Expand Down Expand Up @@ -40,7 +40,7 @@ Two paths:

1. **If you see your coding agent's logo on this page** — type your idea as a normal prompt, and ask it to implement the feature **with Agent Looper**. It sets up the loop and keeps grinding until the check is green.

2. **If you like the terminal** — run `pnpm exec agent-loop-setup`: a one-screen setup wizard shows your recap and the current question, not a scrolling pile. Go back to change one answer without losing the rest. Then use `pnpm exec agent-loop-prompt` to type your idea and start the run.
2. **If you like the terminal** — run `pnpm exec agent-loop-setup`: a one-screen setup wizard shows your recap and the current question, not a scrolling pile. Go back to change one answer without losing the rest. Then use `pnpm exec agent-loop-prompt` to type your idea and start the run. The scaffold judge stops as soon as frozen `GOAL.md` and `verify.sh` pass freeze (10-minute wall, not a long grind).

The check stays the finish line.

Expand Down Expand Up @@ -131,7 +131,7 @@ This tool is free. We keep building it when the community actually uses it and t
- [llms.txt](https://looper.dancingteeth.net/llms.txt)
- [Harnesses](https://looper.dancingteeth.net/harnesses/)
- [Developer resources](https://looper.dancingteeth.net/docs/)
- [Changelog (0.6.3)](https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md)
- [Changelog (0.6.2)](https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md)
- [Embed API](https://github.com/dancingteeth/agent-looper/blob/main/docs/embed-api.md)
- [Security](https://github.com/dancingteeth/agent-looper/blob/main/SECURITY.md)
- [GitHub](https://github.com/dancingteeth/agent-looper)
Expand Down
4 changes: 2 additions & 2 deletions site/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ When to use Agent Looper: a human wants a feature finished without babysitting C

When not to use Agent Looper: there is no deterministic check (pure taste with no script or vision gate); you need a team-ops factory, shared org cloud, or multi-repo orchestration; you want the model to grade itself as “done.”

How an agent should call it: install `@dancingteeth/agent-looper`, ask the human what they want, then implement the feature with Agent Looper (set up the loop, write GOAL.md and verify.sh, run until green). Or from the terminal: `pnpm exec agent-loop-setup` (one-screen setup wizard — recap plus current question) then `pnpm exec agent-loop-prompt --out .cursor/loops/<task>`, then `pnpm exec agent-loop run .cursor/loops/<task> --runtime <cursor|cline|opencode|pi|codex|dsh|muse|claude>`. Optional `--review-gate` re-opens the loop only on blocking review findings. If verify fails because the environment is broken, the loop waits instead of burning another worker. After each visit the harness restores frozen specs and removes any frozen basename a worker planted (e.g. `setup.sh`) so it cannot persist. OpenCode Go and Cline Pass model lists and list prices come from models.dev; unknown well-formed slugs warn at start and read `$0` until priced — budget caps still reject unpriced worker or escalate models. CLI binaries: `agent-loop`, `agent-loop-prompt`. Current npm: **0.6.3** (supported line **0.6.x**).
How an agent should call it: install `@dancingteeth/agent-looper`, ask the human what they want, then implement the feature with Agent Looper (set up the loop, write GOAL.md and verify.sh, run until green). Or from the terminal: `pnpm exec agent-loop-setup` (one-screen setup wizard — recap plus current question) then `pnpm exec agent-loop-prompt --out .cursor/loops/<task>` — the scaffold judge stops as soon as frozen GOAL.md and verify.sh pass freeze (10-minute wall, not a long grind) — then `pnpm exec agent-loop run .cursor/loops/<task> --runtime <cursor|cline|opencode|pi|codex|dsh|muse|claude>`. On `runtime: cursor`, repo defaults that pin OpenCode Go `escalateModel` are not applied; Composer plus another judge uses `reviewRuntime` / `reviewModel`, not `escalateModel`. DSH headless: in `~/.dsh/.credentials.yaml`, quote `version` as `version: "1"` (a bare YAML integer breaks boot). Optional `--review-gate` re-opens the loop only on blocking review findings. If verify fails because the environment is broken, the loop waits instead of burning another worker. After each visit the harness restores frozen specs and removes any frozen basename a worker planted (e.g. `setup.sh`) so it cannot persist. OpenCode Go and Cline Pass model lists and list prices come from models.dev; unknown well-formed slugs warn at start and read `$0` until priced — budget caps still reject unpriced worker or escalate models. CLI binaries: `agent-loop`, `agent-loop-prompt`. Current npm: **0.6.2** (supported line **0.6.x**).

## Developer resources

Expand All @@ -23,7 +23,7 @@ How an agent should call it: install `@dancingteeth/agent-looper`, ask the human
- [Claude runtime](https://github.com/dancingteeth/agent-looper/blob/main/docs/claude-runtime.md): Claude Code CLI (`--safe-mode`)
- [Embed API](https://github.com/dancingteeth/agent-looper/blob/main/docs/embed-api.md): contract for embedding Agent Looper
- [Security](https://github.com/dancingteeth/agent-looper/blob/main/SECURITY.md): reporting vulnerabilities
- [Changelog](https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md): 0.6.3
- [Changelog](https://github.com/dancingteeth/agent-looper/blob/main/CHANGELOG.md): 0.6.2
- [Harnesses — Agent Looper worker runtimes](https://looper.dancingteeth.net/harnesses/index.md)

## Optional
Expand Down
Loading
Loading