npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@peeraponw/pi-moa

v0.2.0

Published

Second-opinion command for pi: ask every configured model in parallel, optionally aggregated.

Readme

pi-moa

Second-opinion command for pi. /moa <prompt> asks every configured model the same question in parallel and shows each answer labeled with its model. An optional aggregator can merge the answers into one final take.

What it does

  • /moa <prompt> fans out to all configured models in parallel.
  • Each model sees the session's user and assistant text, without tool schemas or tool results, plus your prompt as the final message.
  • Every answer renders as its own labeled section. A failed model renders as an error section, so the others still show.
  • When an aggregator is configured, it receives the same conversation with the opinions appended in a tagged block, and its merged answer renders last.
  • Output is display only. Nothing is injected into the session transcript, and no provider or model is registered or switched.
  • Config is read on each invocation, so edits take effect without a reload.

Install

pi install npm:@peeraponw/pi-moa

Or try without installing:

pi -e npm:@peeraponw/pi-moa

You can also install straight from GitHub:

pi install git:github.com/peeraponw/pi-moa

Configure

Run:

/moa setup

Pick global or project, then edit the JSON in the editor. The default config uses zai/glm-5.2:xhigh and openai-codex/gpt-5.5:xhigh with no aggregator:

{
  "models": [
    { "name": "glm-5.2", "provider": "zai", "model": "glm-5.2", "thinking": "xhigh" },
    { "name": "gpt-5.5", "provider": "openai-codex", "model": "gpt-5.5", "thinking": "xhigh" }
  ]
}

Schema:

  • models (required, at least one entry). Each entry:
    • name (optional): label shown in the output.
    • provider, model (required): model reference, as in /model.
    • thinking (optional): off, minimal, low, medium, high, xhigh, max.
    • maxTokens, temperature (optional).
  • aggregator (optional): same shape as a model entry, minus name. Its answer renders as the final section. Set it to null in a project config to remove a global aggregator.

Config files:

  • global: ~/.pi/agent/moa.json
  • project override: .pi/moa.json, read only when the project is trusted

A project models array replaces the global one wholesale. Project-level aggregator replaces or removes the global aggregator.

Configs from older versions with presets fail validation with an error that names the new schema.

Use

/moa is this migration plan sound?
/moa list
/moa setup
/moa help

/moa <prompt> needs your configured providers to have working auth, the same as running them as your session model.

Reserved words

Prompts whose first word is setup, list, or help are treated as those commands, so such a prompt needs rephrasing.