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

@mintopia/harmonic

v2.17.0

Published

Queue, run, and review autonomous coding-agent tasks over ACP

Downloads

2,348

Readme

Harmonic

Point Harmonic at your issue tracker and it works through your backlog on its own. Write a spec, break it into tickets, and Harmonic runs the ready ones out to merged code: for each ticket it starts a coding agent, implements the change, has the work reviewed, and merges the branch, handing a ticket back only when it needs a human. You watch a board and a timeline of everything the fleet has run, and step in only when a ticket needs you.

It's built to run alongside Matt Pocock's Skills, which turn a spec into labelled tickets in your tracker; Harmonic is the layer that runs them. It drives agent harnesses (Claude Code, Codex, Copilot, OpenCode) over ACP, so they're interchangeable with no vendor lock-in. You can also queue a one-off task by hand, with a review gate you accept or reject before anything merges.

Full documentation: https://mintopia.github.io/harmonic

Run

Install it from npm once, then run it in the background — that's the recommended way to keep Harmonic on hand:

npm install -g @mintopia/harmonic
harmonic start          # background; logs to ~/.harmonic/harmonic.log

Then open http://localhost:4700. Manage the background server with:

harmonic status         # is it running, and where?
harmonic stop           # shut it down

A global install keeps itself up to date. Harmonic checks npm hourly and, when a newer release is out, shows a banner in the app, then upgrades in place the next time your fleet is idle and relaunches on the new version.

Rather not install? Every command also works through npx:

npx @mintopia/harmonic start

For a quick one-off, run it in the foreground instead and stop it with Ctrl-C:

harmonic serve

Commands

| Command | What it does | | --- | --- | | serve | Run the server in the foreground (Ctrl-C to stop). | | start | Run the server in the background; logs to <data-dir>/harmonic.log. | | install | Install Harmonic as an OS service (systemd or SysV init.d) so it starts on boot. harmonic install --help for platform options. | | uninstall | Remove the OS service and stop it. Leaves the data dir untouched. | | status | Report whether a background server is running (exits non-zero if not). | | stop | Stop the background server. | | help | Show usage. Also --help, or running with no command. |

Options

| Option | Commands | Default | Description | | --- | --- | --- | --- | | --port <n> | serve, start | 4700 | Port to listen on. | | --host <h> | serve, start | 0.0.0.0 | Bind address. 0.0.0.0 is reachable from your network; use 127.0.0.1 for local-only. | | --data-dir <dir> | all | ~/.harmonic | Directory holding the SQLite database and the background log. | | --password <pw> | serve, start | — | Set or update the operator password. Pass an empty value (--password '') to remove it and run ungated. |

Environment

| Variable | Equivalent to | Notes | | --- | --- | --- | | HARMONIC_DATA_DIR | --data-dir | State directory. | | HARMONIC_PASSWORD | --password | Operator password. |

With no password set, Harmonic runs ungated — anyone who can reach the address has full access. Bind to 127.0.0.1, or set a password, before exposing it on your network.

Development

git clone https://github.com/mintopia/harmonic
cd harmonic
npm install
npm run dev        # serve from source (tsx)
npm test           # vitest suite
npm run typecheck

While you work, run the relevant test file with npx vitest run <file>. Before the final test run, use npm run typecheck and npm run lint. Run npm test once when the work is complete. It starts ACP harnesses and covers shared-lock behavior, so it is slower than a focused test.

Architecture decisions are recorded in docs/adr/, product and design ground rules in PRODUCT.md and DESIGN.md.

License

MIT