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

@mychiefmind/ai-maestro

v0.6.18

Published

Conduct a roster of AI coding agents against a work board.

Readme


AI Maestro turns AI-assisted coding from improvised chat sessions into a managed delivery process. Instead of one developer prompting one AI, a portfolio of specialized AI agents works a visible board of tasks — each task routed to the right agent and the right (cost-appropriate) model, executed in isolation, and quality-gated before it lands. The result: AI development that is trackable, parallelizable, and safe to hand off — the difference between hiring a freelancer and running a team.

The AI Maestro new-project demo: an arcade-style walkthrough titled "You're the Maestro" — install, answer a few questions, review the plan, then build one ticket at a time

👉 Try the step-by-step demo — a click-through walkthrough of setting up a new project, no install required.

AI Maestro runs software delivery as an orchestra of AI agents instead of a single chat session. The idea in three sentences:

| # | The idea | | :--: | --- | | 1 | You keep a board of epics and tickets, bounded by a project plan. | | 2 | Every ticket declares which agents work it (a pipeline like plan → build → qa → merge) and which model each stage runs on. | | 3 | An orchestrator picks the next unblocked ticket, runs it through that pipeline in an isolated git worktree, gates it, and lands it. The default is one ticket per run; optional swarm mode continuously replenishes a bounded lane pool. |

It's the distilled, product-neutral version of a system I've been running across a multi-repo portfolio for months. This repo shares the structure so you can adopt the same way of working.

How it flows

AI Maestro flow: the orchestrator reads board/data.json, picks the next unblocked ticket, and runs it through a plan → build → qa → delivery gate → merge pipeline inside an isolated git worktree, with every stage on the ticket's effective model; it then lands and archives the ticket — one ticket per run, you review before starting the next

Capabilities

AI Maestro is more than a ticket runner. The board is the control plane for planning, safe parallel delivery, evidence, and integrations — while the project remains a normal Git repository that you own.

| Capability | Use it for | Start here | | --- | --- | --- | | Plan and board | Turn a product goal into scoped requirements, epics, dependencies, and testable tickets. | Project plan → /plan-update | | Specialist delivery pipeline | Route each ticket through planning, implementation, independent QA, delivery approval, and merge. | /orchestrator | | TPM | Get an evidence-backed readiness call, recover from delivery drift, and judge project health. | Delivery control → tpm | | Lanes and Swarm | Run safe independent work in parallel, then continuously replenish a bounded delivery pool. | Swarm mode | | Web dashboard | Manage one or many projects visually: board, operations, plan, roster, usage, and reports. | Web dashboard | | Specs and public APIs | Safely read or update ticket specs and integrate with stable board, plan, spec, and registry APIs. | Public APIs | | Usage and value reporting | Attribute agent and application usage to tickets, models, providers, and projects. | Usage reporting |

Delivery control: when the board needs a decision

Most tickets can flow directly through planning, implementation, QA, and delivery. When the board and repository state disagree — or a release needs an explicit readiness call — run $tpm in Codex or /tpm in Claude. It is the evidence-driven delivery-control skill, paired with the tpm agent stage. It does not write product code, review its own implementation, merge, deploy, or silently clean up work.

| Use it when | TPM checks | TPM returns | | --- | --- | --- | | A high-risk or cross-team ticket must be ready before build work starts | Acceptance criteria, dependencies, expected PR, verification command, and repository reality | Proceed with the next stage, or one concrete blocker | | A swarm starts, recovers, or has merge/lane contention | Board health, active worktrees, agent state, maestro swarm status, and safe lanes | A pool-wide proceed/hold decision — not a TPM agent per healthy lane | | A worktree, branch, PR, or board status is messy or stale | Ownership, commits, merge state, QA/delivery evidence, and drift | Resume, Finish landing, Blocked, or Owner decision required | | You need an honest delivery snapshot | Current board, worktrees, branches, PRs, and gate evidence | A qualitative project judgment plus the next highest-leverage action |

For an explicit per-ticket checkpoint, put tpm first in that ticket's plan:

"agent_plan": ["tpm", "pe", "backend", "qa", "merge"]

TPM produces a short, evidence-backed report rather than a status narrative:

| Scope | Done / evidence | Missing | Blocker / owner | Next | | --- | --- | --- | --- | --- | | Project judgment — Healthy / At risk / Blocked | Facts that support the judgment | Unmet gates or unknowns | Concrete issue and owner, or — | One highest-leverage action | | Active ticket — ID, title, stage | Completed criteria, revision, checks | Specific remaining criterion or gate | Exact blocker and owner, or — | One next stage/action | | Other affected ticket or lane | Evidence, or — | What it needs | Blocker and owner, or — | Next action |

The judgment is qualitative on purpose: no invented percentages, no “almost done,” and no claim that a ticket is complete merely because a branch or PR exists. A ticket is done only after its applicable acceptance, verification, QA, delivery, merge, and board-reconciliation gates complete.

Swarm mode

Swarm mode keeps a bounded pool of agents busy on the board, continuously and safely. It is off by default; turn it on per project:

maestro swarm enable --agents 10 --worktrees 5 --wave-minutes 30
maestro swarm status
maestro swarm disable

Then run $swarm in Codex or /swarm in Claude. The session you run it in is the single coordinator. Every wave it:

| Step | What happens | | --- | --- | | Schedule | Starts only tickets that maestro lanes next says can run together — no overlapping files, dependencies met. | | Staff | Delegates each stage to the right specialist: planning, implementation, independent QA, delivery approval, and repair. | | Gate | No change lands without QA by an agent that did not write it, then the delivery gate. | | Split stale work | A ticket past its size budget is checkpointed and split into smaller tickets, never discarded. | | Land | Approved PRs merge one at a time. Automatic merge stays off until a real exclusive merge lock exists, so PRs wait for you. | | Report | Each wave reports lanes, gate queues, merges, blockers, and target vs. actual capacity. |

--agents is a target, not a promise: the pool never exceeds what your agent host can actually run, and the TPM makes one pool-wide proceed/hold call at startup and after recovery. Details: docs/SWARM.md.

Why work this way

| Principle | What it buys you | | --- | --- | | The board is the source of truth, not the chat. | Work survives context resets, handoffs, and parallel sessions because it lives in board/data.json, not in a conversation you'll lose. | | The right agent and model per task. | A one-line CSS fix and a database migration should not run on the same model or the same prompt. Tickets route themselves. | | Pipelines, not heroics. | Every ticket flows through its configured agent pipeline, followed by the required review and delivery gates. Those gates are structural, not something you remember to do. | | Isolated by construction. | Each ticket runs in its own git worktree, so parallel work never collides and a bad branch never dirties main. | | Reusable skills. | Git branch conventions, worktree cleanup, landing a change, catching up a stale checkout, validating the board — packaged once, used everywhere. |

The Agile advantage

AI Maestro is an Agile delivery process adapted for a solo operator — one human conducting AI agents across one or many projects. The delivery principles map directly:

| Agile principle | How AI Maestro delivers it | | --- | --- | | Deliver working software frequently | A ticket is one independently shippable outcome, and the orchestrator lands exactly one per run — continuous small increments, not big-bang merges. | | Working software is the measure of progress | A ticket isn't done until it passes an independent QA gate and is archived with verification evidence. The board never claims progress the code can't back up. | | Continuous attention to technical excellence | Review and delivery gates are structural pipeline stages, not rituals you have to remember. | | Simplicity — maximize the work not done | Delivery-hygiene rules keep the board to shippable outcomes; specs exist only when a ticket needs more than its description. | | Welcome changing priorities | Kanban-style pull, no sprint to protect: reorder or re-scope the backlog any time, and the next run simply picks the new top eligible ticket. | | Transparency and sustainable pace | A glance at the board always shows the true state, and the one-ticket-per-run loop puts a human checkpoint between every increment. |

The team ceremonies that assume a room full of people — stand-ups, sprint planning, sprint reviews — are deliberately replaced by that between-ticket checkpoint: you review each landed increment before conducting the next. See docs/METHOD.md for the full mapping.

What's in the box

| Piece | What it is | | --- | --- | | board/ | The board + project-plan formats (board.schema.json, plan.schema.json) and this repo's own workboard. A runnable example board ships in starters/orchestrated-project/board/ instead — that's what setup seeds a new project from, never this one's. | | agents/ | A generic agent roster: orchestrator, tpm, principal-engineer, backend, frontend, devops, technical-writer, qa, principal-delivery | | skills/ | Reusable skills — the /project-plan, /plan-update, /orchestrator, /tpm, and optional /swarm entry points, plus board hygiene, release gate, security review, and the git/worktree basics | | render/ | sync.mjs — generates native Claude Code and Codex files from one config + context; --all --registry <file> does it across every project in a registry | | starters/ | Two starter capsules: full orchestrated project, or a lightweight single-area one | | bin/cli.mjs | The maestro CLI — setup, sync, validation, board/plan writes, and the triggered dev → PR → reviewer pipeline | | scripts/registry.mjs | The shared registry format behind maestro drift and sync --all — see Managing several projects | | docs/ | The method, model-routing policy, and a getting-started guide |

Quickstart

Two ways in — pick one:

| Path | What it is | Command | | --- | --- | --- | | 1 — Instant Setup with npx | Run the questionnaire yourself, then do the first steps. | npx @mychiefmind/ai-maestro setup | | 2 — Hands-Free Onboarding with an AI coding agent | Paste one prompt in Claude Code or Codex; the agent runs setup and fills things in for you. | (the prompt is below) |

Starting from an empty folder, or showing someone else how this works? The new-project demo walks the whole path in plain language, written for a complete beginner — install, answer a few questions about your project, review the generated epics and dependency-ordered tickets, then run the orchestrator.

Path 1 — Instant Setup with npx

One command in your project — no clone, no install:

cd ~/code/my-app     # your project
npx @mychiefmind/ai-maestro setup # asks about your project; Enter accepts every default

setup asks for your project brief — outcome, users, stack, constraints, and how to run and test it — then copies the kit into ./maestro/, writes your config.json + context.md from those answers, runs git init if the folder isn't a repo yet, renders native Claude Code and Codex agents & skills at your repo root, checks the board, and asks if you'd like to open the visual board (say no and nothing is left running). The six project-brief questions default to propose one, which hands those decisions to the agents and has them show you what they chose; the project name and work areas have concrete defaults.

Now open the repo in Claude Code or Codex and run /project-plan — it writes the project plan first (goal, scope, deliverables, use cases, functional and non-functional requirements), stops for your review, then turns it into epics and dependency-ordered tickets that each trace back to a plan item. Approve them, then run /orchestrator; it picks up the first unblocked ticket and runs it — and refuses anything the plan doesn't cover. (Plain language works too: "plan the project", "run the board".)

Path 2 — Hands-Free Onboarding with an AI coding agent

Prefer not to answer the questionnaire yourself? Open your project in Claude Code, Codex, or another compatible agentic tool and paste this prompt — it runs setup with answers drawn from your real codebase, then plans a board for you to review:

Add AI Maestro — the AI-agent orchestration kit — to this project.

1. From the repo root, run setup non-interactively, filling each answer
   from the ACTUAL codebase (README, package manifests, configs) — not
   guesses. Show me the answers before you run it:

   npx @mychiefmind/ai-maestro setup --yes --no-board \
     --name "<project name>" --areas "<areas, e.g. frontend,backend,infra>" \
     --outcome "<what this project does>" --users "<who it's for>" \
     --stack "<languages, frameworks, database, hosting>" \
     --constraints "<real conventions and guardrails>" \
     --run "<real dev command>" --test "<real test command>"

   This vendors the kit into ./maestro/ and renders Claude files into ./.claude/
   plus Codex skills/subagents into ./.agents/ and ./.codex/ at the repo root.
   It must NOT touch my application code.

2. Then plan the work: propose a few real starter tickets based on
   near-term work you can see (TODOs, missing tests, rough edges), keep
   every ticket status "todo", and validate the board.

3. Report back: the answers you used, the agent roster, the proposed
   tickets, and whether I should commit maestro/ or gitignore it.

Do NOT start executing tickets. Stop after planning so I can review —
then I'll run /orchestrator myself.

First steps after setup

Open your project in Claude Code or Codex and run these once, in order:

| Step | Do this | Why | | :--: | --- | --- | | 1 | Run:/project-plan | Writes the project plan from your brief — goal, scope, deliverables, use cases, functional and non-functional requirements — and proposes an answer for anything you left as propose one. It stops for your review; nothing is implemented. | | 2 | Review the plan; fill in what's thin with /plan-update or the board's Plan tab | The plan reports a completeness percentage and says which sections are missing. It's the contract every later agent works from — and the scope boundary the orchestrator enforces. | | 3 | Approve it; /project-plan then writes 3-6 epics and 5-15 dependency-ordered tickets, each tracing to a plan item | A ticket that traces to nothing is out of scope by definition, and won't run. | | 3b | Large project only: group the epics under 2-6 initiatives | Optional, and most projects skip it. Use it when the project holds several outcomes that are each independently worth shipping and each need multiple epics. | | 4 | Commit the approved starting point, then run:/orchestrator | The first commit gives worktrees a stable base; the orchestrator then builds one ticket per run. |

Going further

Adopting this into an existing codebase, tuning models and areas, alternative layouts, and troubleshooting: docs/GETTING-STARTED.md.

Already set up and a new version is out? npx @mychiefmind/ai-maestro@latest update refreshes the kit in maestro/ and re-renders — your config, brief, and board are kept (details).

Running several projects? The web dashboard shows them all in one local browser tab.

How the levels nest

Project plan   the boundary — nothing outside it may run
└── Initiative an independently valuable outcome, delivered by several epics   ← optional
    └── Epic   a demonstrable delivery outcome, made of tickets
        └── Ticket  the executable, independently verifiable unit

Initiatives are optional and most projects do not need them. Reach for them only when a project holds several independently valuable outcomes that each need multiple epics — then each one gets its own outcome, boundary, metrics, and its own slice of the plan's requirements. A ticket never stores an initiative; it derives one through its epic, and a trace that crosses initiatives is refused. A project that defines none behaves exactly as it did before the layer existed.

The core idea in one ticket

{
  "id": "T-014",
  "epicId": "e2",
  "name": "Add rate limiting to the public API",
  "area": "backend",
  "priority": "P1",
  "swag": "M",
  "status": "todo",
  "depends_on": ["T-011"],
  "agent_plan": ["pe", "backend", "qa", "merge"],  // the pipeline
  "model": "sonnet"                                  // the model to run it on
}

The orchestrator reads that and does the rest: it won't touch T-014 until T-011 is done; when it does, it runs a principal-engineer plan, hands the plan to the backend agent in a fresh worktree, gates through QA, then merges and archives.

How it sits in your project

After setup, AI Maestro is a sidecar — the tooling lives in maestro/ and never touches your application code, and the generated agents land at your repo root so the coding tool discovers them.

my-app/
├── src/  …                    ← your real code (untouched)
├── maestro/                   ← the kit + your settings
│   ├── config.json            ← project name, areas, models   (setup writes this)
│   ├── context.md             ← the brief every agent reads    (setup writes it from your answers)
│   ├── board/data.json        ← epics + tickets (edit here or in the web dashboard)
│   └── custom/                ← optional: YOUR agents & skills (never touched by an update)
│       ├── agents/*.md
│       └── skills/*/SKILL.md
├── .claude/                   ← GENERATED — Claude agents & skills
├── CLAUDE.md                  ← GENERATED — Claude project guidance
├── .agents/skills/            ← GENERATED — Codex skills
├── .codex/agents/             ← GENERATED — Codex custom subagents
└── AGENTS.md                  ← GENERATED — Codex project guidance

You'll need git, Node.js 18+, and an agentic coding tool that can run subagents (Claude Code, Codex, or compatible). Setup is the single command from the Quickstart — then, from your coding tool at the repo root, run /project-plan, approve the plan, and run /orchestrator.

Keep your own agents/skills in one place. Drop custom agents in maestro/custom/agents/ and skills in maestro/custom/skills/<name>/SKILL.md. sync merges them into every enabled runtime target (overriding a kit file of the same name), and maestro/custom/ is the one folder an update never touches — so unlike hand-editing generated runtime files, they survive both re-renders and kit upgrades. They don't need listing in config.json: roster/skills selects which kit agents you take; your own are always included.

Keep the kit out of your project's git? npx setup vendors a plain folder — commit it or ignore it. A cloned kit brings its own .git, so either rm -rf maestro/.git or gitignore maestro/. Both variants, plus the shared-kit and vendored layouts, are in 👉 docs/GETTING-STARTED.md.

Web dashboard

@mychiefmind/ai-maestro-web-ui (Maestro) is the visual side of AI Maestro: a local web dashboard that listens on your own machine only. Each project keeps its own maestro/ folder.

One project — run it inside the project (the folder that has ./maestro):

npx @mychiefmind/ai-maestro-web-ui

Many projects in one place — make an empty folder your Maestro Hub and run the same command there. It sets the folder up, installs what it needs, and opens the dashboard:

mkdir ~/maestro-hub && cd ~/maestro-hub
npx @mychiefmind/ai-maestro-web-ui   # first time
npm start                            # every time after

Then click Add board and pick each project folder, or run npx ai-maestro-web-ui add <path>. Maestro Hub opens at http://maestro.localhost:3021.

AI Maestro web dashboard — one project's board with readiness cards and Kanban columns

All projects: one operations view of in-flight, eligible, blocked, and in-review tickets across every registered project

  • Board per project, with epics, specs, plan, and archive editing
  • An all-projects operations view: in flight, eligible, blocked, and in review
  • Token usage, reports and docs, project plan, and roster
  • Light and dark themes; works on phones

Usage reports separate runtime from inference provider and combine exact Codex counters with a privacy-safe application ledger for provider calls such as DeepSeek; see docs/USAGE.md.

Token usage is recorded automatically. maestro sync adds Claude Code Stop, SubagentStop and SessionEnd hooks to .claude/settings.json (your own hooks are kept) that record count-only records — no prompts or paths — into the untracked board/.usage-pending.jsonl, so your checkout stays clean; maestro usage commit folds them into the committed board/usage.jsonl (merge=union). The hooks never block a session. Turn it off with "usage": { "record": false } in config.json and re-run maestro sync; see automatic recording.

It reads and writes project data only through AI Maestro's public APIs (board, plan, spec, registry, and usage exports), with locking — see docs/PUBLIC-DATA-API.md.

GitHub · npm

Status

Early and evolving — the structure is battle-tested; the packaging is new. Issues and ideas welcome. See CONTRIBUTING.md.

License

MIT — see LICENSE.