Skip to content

Solve an issue

Solver takes a GitHub issue to a pull request. It works in its own fresh copy of your project, so your checkout isn't touched, and it opens the pull request only when the checks pass.

Before you start

On the computer that runs it you need:

  • the project's Git checkout, with git;
  • the GitHub CLI, signed in: gh auth login;
  • Claude Code signed in (the default), or your openagents.com sign-in (coder login) so it can run on Coder's own loop.

From the chat

Ask in plain words, naming the issue by its number:

Solve #42

A bare number is an issue of the repository your chat's folder is in (its GitHub remote, origin first). For an issue in another repository, name it: Solve acme/web#42. If the folder has no GitHub remote, Solver asks which repository.

Add "without a pull request" to stop after the checks.

Solver shows as an agent under the input. Down opens its conversation, where each step shows as it happens. When it's done, its report comes back to your chat with the outcome, the pull request, and the cost. Stopping the chat stops the run.

From the command line

Run it in the project's checkout with the issue number:

coder solver 42

It opens a full-screen view of the run. Add --plain to print it as text instead. The issue is looked up in the checkout's GitHub repository (its origin remote, or another GitHub remote). Add --github acme/web for an issue in another repository, or when the checkout has no GitHub remote.

How it works

Four helpers take turns, each with only what it needs:

HelperDoes
IntakerChecks that git, gh, and the agent are ready, reads the issue, and makes the fresh copy of your project.
BrieferFinds the files that matter and writes what the change should look like, which tests to add, and which checks prove it.
CoderWrites the change.
TesterRuns the checks. When they fail, it hands the work back to the Coder or the Briefer with notes, up to two more rounds.

When the checks pass and the issue is still open, Solver commits to a coder/issue-N branch, pushes it, and opens the pull request. If the issue looks already done or no longer current, it stops and says why. Merging stays with you.

Options

OptionDoes
--github OWNER/REPOThe issue's repository (default: this checkout's GitHub remote).
--repo PATHThe checkout to work from (default: this folder).
--engine NAMEWhat the helpers run on: claude, opencode, coder, or devin.
--rounds NHow many times the Tester may hand work back (default 2).
--coder-model NAMEThe Coder's model, such as claude-opus-5-5.
--no-prStop after the checks; open no pull request.
--no-gateWork the issue even if it looks already done.
--plain, --jsonPrint the run as text, or as one JSON line per event.

coder solver --help lists every option. Each run keeps its record and its copy of the project under ~/.openagents/coder/solver-runs/.

Next: Safety.