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.
Set checks
Save the check first
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.
The success checks stay the same. Goaly detects changes to them during the run.
Goaly checks each attempt and gives failures back to the agent for the next try.
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.