goaly

Coding agents, with a fixed finish line

Give the work a real check.

Goaly sets the success checks before a coding agent starts. It tests each attempt and sends failures back for another try. A final review can reject the result even when the checks pass.

Use Claude Code, Codex, Droid, pi, or Goaly's built-in coding agent.

GOAL / add a health endpoint1 of 3

Set checks

Save the check first

CHECKGET /health returns 200

Goaly saves this check before the agent starts. It stays the same during each attempt.

Illustration only · select each step to see the example

For this example, Goaly saves the check that GET /health returns 200 before the agent starts.

Why use goaly

Know why a run finished.

Set a goal once. See each attempt and the reason it passed, failed, or stopped.

One fixed target

The success checks stay the same. Goaly detects changes to them during the run.

Useful retries

Goaly checks each attempt and gives failures back to the agent for the next try.

A run you can inspect

Goaly records what happened. You can inspect the result and resume after an interruption.

Quick start

One goal. One command.

Requires Node 20 or newer. By default, Goaly uses the first installed coding agent: Claude Code, Codex, Droid, then pi.

$ npm i -g goaly
$ goaly "add a /health endpoint returning 200"

Default limits: 500,000 tokens and 7,200,000 ms (2 hours). Tokens are units of AI text. By default, Goaly does not isolate the agent's commands from your computer (no Goaly OS sandbox). See options and limits.

Follow the first run →

What “DONE” means: All saved checks passed, and a separate final review did not reject the result. This does not prove semantic correctness, meaning the code does everything you intended. The checks may miss a case.