pietz/moa-cli · Archived

moa

Get a second opinion from multiple AI models at once.

First seen Jun 23, 2026

Installation

$ npx skills add pietz/moa-cli --skill moa

Summary

  • Get a second opinion from multiple AI models at once.
  • Use this whenever you're stuck, want to validate an approach or design, pressure-test a plan or claim, or want diverse cross-model viewpoints on a hard decision - anything you'd reach for "peer review", "ask another model", or "council of models" for.
  • Wraps the `moa` CLI, which fans one prompt out to the local agent CLIs (Claude Code, Codex, agy, opencode) in parallel and returns each answer with attribution.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Declared

Repository health

Stars 11
Default branch main
Open issues 1
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.1
Declared agents claude-code codex opencode
More metadata
version
1.0.1

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,993 B
  • docs SUMMARY.md 477 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 8 installs

SKILL.md

moa - mixture of agents

moa asks one question to several local AI coding CLIs in parallel and collects their answers with attribution. Reach for it when one model's answer isn't enough and you want to see where independent models agree, diverge, or contradict.

The CLI is self-documenting. Run moa --help (and moa <command> --help) for the full flag list - this file only covers what's non-obvious about driving it well.

Prerequisites

uv tool install moa-cli (or run ad-hoc with uvx moa-cli ...). Then moa doctor lists which agent CLIs are installed and their default models. You need at least two of claude, codex, agy, opencode on PATH and logged in - moa drives the CLIs you already pay for and needs no API keys of its own.

Three modes

  • moa ask (the default) - council / peer review. N agents answer in parallel; each

answer streams back with attribution as it lands. The right choice the vast majority of the time.

  • moa distill - council, then one strong aggregator merges the answers into a single

synthesized response. Use when you want one answer, not N to read.

  • moa debate - sequential adversarial rounds plus a moderator verdict. The costliest

and least reliably-beneficial mode; reach for it only when surfacing disagreement is the actual goal.

How to prompt

The CLIs are stateless - no memory of your conversation. Write a fully self-contained prompt every call: state the question, paste the relevant code/plan/diff, and say what a good answer looks like.

Pass the prompt inline as the string argument - that's the normal case, and it's all the context the panel ever receives. Don't write a temporary briefing file just to feed it in. Reserve -f PATH (or -f - for stdin) for piping existing content straight through, e.g. git diff | moa ask -f - "Review this diff for bugs." - not for a throwaway file you create for the occasion.

Agents run read-only by default; pass --yolo only when you actually want the panel to change your working tree.

Parse with --json

--json emits one JSON object per line (JSONL) with a status field per agent - the right output when an agent consumes the result. Without it, answers print under a labelled heading on stdout and progress notes go to stderr (so piping stdout stays clean). Prefer --json whenever you parse programmatically.

Selecting the panel and config

-n N asks the top N installed agents in priority order (claude -> codex -> agy -> opencode). -p NAME pins an exact set, -x NAME drops agents, -m PROVIDER=MODEL overrides a model. Persist defaults with moa config set ... (e.g. moa config set num 2, moa config set exclude codex) and inspect them with moa config show. Per-verb flags: moa ask --help / moa distill --help / moa debate --help.

Example

moa ask --json "I'm choosing between SQLite and flat Markdown files for ~10k offline-first \
local notes with full-text search and Dropbox sync. Recommend one with tradeoffs."

Report results the way a good peer review would: say which providers answered and which failed or timed out (check status in the JSON), then summarize where they agree, disagree, and any unique insight each contributed. Don't silently drop a model that errored.


Supersedes hand-rolling parallel claude -p / codex exec calls, or the older peer-review skill: call moa and parse its output.