Documentation

Moa

Moa drives a coding agent through your GitHub workflow — it triages issues, opens PRs, reviews them, fixes failing CI, addresses review comments, and merges. The agent only reasons; deterministic code does every git action, so you can point it at main.

What Moa is#

A coding agent can write a fix, but left alone it pushes to the wrong place, re-reviews its own commits, and forgets what it learned last run. Moa keeps the agent on a short leash: it does only the reasoning — writing or reviewing code — while a deterministic harness owns all the mechanical work (git, gh, the verify-gate, opening PRs). The agent never runs git push.

The server is the single source of truth — an HTTP API. The dashboard, the moa CLI, and GitHub webhooks are all just clients of it. You onboard in the dashboard first; after that, there are three ways to drive the same engine:

  • A GitHub label — label an issue moa and the issue→PR workflow fires; open a PR and it gets reviewed.
  • The dashboard — start any workflow from a button and watch its live step timeline.
  • The CLI — drive the same workflows from your terminal with moa wf …, once you've connected it with a key.

Quick start#

Onboarding begins in the dashboard — sign in with GitHub and complete the short setup wizard (workspace, GitHub App + repos, Claude):

text
open https://app.fnmoa.com   → sign in with GitHub → finish setup

Then connect the CLI: create an API key on the dashboard Keys page, install the CLI, and store the key with moa login.

bash
npm i -g @fnmoa/cli
moa login        # paste your workspace URL + the key from the dashboard
moa status

Now take an issue to a PR — point it at a repo and an issue number, and stream the run:

bash
moa wf solve fnLog0/moa 42 --watch
Tip.New to Moa? Setup & authentication covers onboarding end to end, then the Getting started tutorial walks an issue all the way to merge.

Where to go next#