Reference

CLI reference

The moa command is a thin client over the workspace HTTP API. Every entry below lists the usage, what it does, and the flags that matter. Package: @fnmoa/cli, binary: moa.

bash
npm i -g @fnmoa/cli   # install
moa <command> [args] [flags]
Note.Global flags work on most commands: --watch streams a live timeline, --json prints machine-readable output, and --profile <name> selects a saved operator/workspace profile.

Auth & status#

moa login

Connects the CLI to a workspace by storing an API key you created in the dashboard (Keys page). It's interactive — it prompts for the workspace API URL and the key. This does not onboard you; complete onboarding in the dashboard first (see Setup).

bash
moa login

Non-interactive equivalents, for CI or scripts:

bash
moa config set url https://api.fnmoa.com
moa config set key moa_xxx
# or via env: MOA_API_URL, MOA_API_KEY

moa status

Prints the current operator, workspace URL, connector health (Claude, GitHub), and recent run counts.

bash
moa status

moa whoami

Prints the active operator and profile — useful in multi-operator review flows (solver ≠ reviewer).

Workflows — moa wf#

Runs one of the six GitHub workflows. All take a <owner/repo> slug; issue/PR workflows take a number.

moa wf triage <repo> <issue>
Categorize and label an issue. Read-only.
moa wf solve <repo> <issue>
Issue → PR: branch, agent writes the fix, verify-gate, open PR.
moa wf review <repo> <pr>
Review a PR: inline comments + an approve / request-changes verdict. Read-only.
moa wf fix-ci <repo> <pr>
Read failing checks, fix the cause, verify, and push.
moa wf address <repo> <pr>
Push a fix for each review thread and reply in the conversation.
moa wf merge <repo> <pr>
Merge once checks are green and the review approves.
bash
moa wf solve fnLog0/moa 42 --watch

Ad-hoc tasks — moa run#

Runs a one-off agent task outside the GitHub workflow — for a quick change or analysis not tied to an issue.

moa run "<prompt>"
Run an agent task. The agent reasons and edits files in the target directory.
--dir <path>
Working directory for the task. Defaults to the server workspace.
--watch
Stream the run; print result, turns, and cost when it finishes.
bash
moa run "add a hello() to src/index.ts" --watch

moa task

Inspect, list, or cancel tasks. Each task is one claude child process — cancel kills it.

bash
moa task list
moa task get <id>
moa task cancel <id>

Oracles — moa oracle#

Consult a read-only knowledge base. A <domain>-oracle answers strictly from its KB, or says it doesn't know — it won't guess.

moa oracle list
List the domains the workspace exposes.
moa oracle consult <domain> "<q>"
Ask a question; add --watch to stream the answer.
moa oracle history
Review past consultations (--limit N, --json).
bash
moa oracle consult ts-engineer "how should I type this generic?" --watch

Config & profiles#

Manage saved profiles to act as multiple operators or drive several workspaces/orgs. Override per command with --profile or the MOA_PROFILE environment variable.

moa config add <name>
Save a new operator/workspace profile.
moa config use <name>
Switch the active profile.
moa skills
Install Moa's agent skills for Claude / Cursor / Codex.
moa github ...
Manage the GitHub connection for the workspace.
Tip.Most read-only commands accept --json — handy for scripting Moa into your own tooling or CI.
Note.Looking for the job each command does rather than the flags? See the task-oriented Workflows guide.