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

@gethmy/cli

v0.1.11

Published

One front door for Harmony — `hmy` installs and dispatches the setup, the agent daemon and the playbook motor, so a repository needs one command and one update.

Readme

@gethmy/cli

hmy — one front door for Harmony.

Harmony ships three binaries from three packages: the MCP server that configures your client, the agent daemon that runs cards, and the playbook motor that executes a stage. Until this package existed you had to know which package owned the command you wanted, and install two of them by hand. Now there is one install, one update, and one name in every doc.

Install

npm i -g @gethmy/cli
hmy connect

That is the whole setup. hmy connect configures this repository and your client; hmy agent starts the daemon. hmy setup still reaches connect as a deprecated alias, so a pasted command or a CI job keeps working.

On a machine you may not install to, every command has an npx form — npx @gethmy/mcp connect, npx @gethmy/agent run — and both spellings stay supported. Read "Why not npx" below for what the install buys you.

Commands

Connect
  hmy connect [...]            Configure this repository and your client

Agent
  hmy run                      Start the agent daemon
  hmy status | health | doctor | sweep | resume | gc | recover
  hmy merge --card N [--worktree PATH]
  hmy runs list|show|grep | hmy stats | hmy scan-commands [--write]

Playbook motor
  hmy stage run --card ... --stage ... --workspace ... --repo ... --session ...

Pass-through
  hmy agent <args...>          -> harmony-agent
  hmy harness <args...>        -> harmony-harness
  hmy mcp <args...>            -> harmony-mcp

  hmy --version                Every version AND the file that answered
  hmy help

The three pass-through namespaces are not a convenience — they are what keeps this front door from going stale. A subcommand added to @gethmy/agent tomorrow is reachable as hmy agent <that command> without a new hmy.

It re-implements nothing

Each subcommand resolves the owning package's real bin and hands the process over. hmy merge and harmony-agent merge are the same code with the same gates, so there is no second merge policy for anyone to forget to update. Signals are forwarded, so ctrl-c on hmy run reaches the daemon rather than orphaning it, and the child's exit code is yours.

npx is the fallback, not the steady path

npx -y @gethmy/agent@latest is right for a one-off and wrong as a steady path: @latest does not re-resolve. The npx cache serves the build it first installed, so a machine can keep running a months-old daemon and say nothing about it — measured 2026-09-09, when a restart six minutes after @gethmy/agent 1.38.0 published still ran 1.37.0 out of ~/.npm/_npx/<hash>.

For a command that decides whether a pull request merges, that is the wrong trade. Install once, update in one place:

npm i -g @gethmy/cli@latest

hmy --version prints the resolved path beside every version, which is what tells a frozen cache from an install:

@gethmy/cli 0.1.0
  /usr/local/lib/node_modules/@gethmy/cli/dist/cli.js
@gethmy/agent 1.41.1
  /usr/local/lib/node_modules/@gethmy/cli/node_modules/@gethmy/agent/dist/cli.js
...

An existing per-package install keeps working

If @gethmy/agent or @gethmy/harness is already installed globally, it keeps working beside this package; you do not need to remove it. This package does not ship harmony-agent, harmony-harness or harmony-mcp bins of its own: npm would then have two packages claiming one command name, and which build answered would depend on install order — the silent-staleness problem this package exists to end.