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

@meowshed/meow-scm

v0.8.1

Published

Checks a commit message against the convention the repository declares in .meowpaw/profile.toml and against a ban on crediting a tool, before the message is used, and reports an undeclared convention as undeclared, never as met. Distributed as a Pi packag

Readme


reader: someone installing or running meow-scm on Pi answers: what meow-scm provides, what it adds to a session and how to install it kind: reference describes: [@meowshed/[email protected]]

@meowshed/meow-scm

Checks a commit message against the convention the repository declares in .meowpaw/profile.toml and against a ban on crediting a tool, before the message is used, and reports an undeclared convention as undeclared, never as met. Distributed as a Pi package.

Install it

pi install npm:@meowshed/meow-scm

The paw executable ships with @meowshed/meow-core alone (REQ-4612): this package's launchers run their subcommands through it, so install the core package beside this one for the binary-backed checks. Without it, every check reports unrun and lets the command through.

pi install npm:@meowshed/meow-core   # carries the binary the launchers run

Installing from this repository's checkout is the development install: it loads the package in place and runs no lifecycle script.

Declare your convention

Put it under [commits] in .meowpaw/profile.toml at the repository's root:

[commits]
subject_limit = 72
trailers = ["Signed-off-by"]
may_name = ["Ada Lovelace <[email protected]>"]

[commits.types]
feat = "minor"
fix = "patch"
docs = "none"

Each type says what it means for a release: major, minor, patch or none. The subject limit is 72 where you don't declare one, and every trailer you name must appear on every message. may_name lists each person, as Name <address>, who agreed to be named in a trailer, and meow-scm convention prints the list.

What it costs you The

program is a native binary shipped inside the unit, so it needs nothing installed on the machine. On a machine the unit carries no binary for, the check reports the message as unchecked and exits 3.

The sign-off records the route

Where a message carries Signed-off-by trailers, the check compares the first with the commit's author as git reports it, and refuses one naming anybody else, because the chain starts with the author's own statement. Each later sign-off names someone the change passed through, so it is a trailer naming a person, and passes only where it names the author or someone may_name lists. Where git reports no author, the check says the sign-off wasn't compared.

A trailer names a person when its value has the form Name <address>, such as Co-authored-by, Reviewed-by or Acked-by. Three trailers record where something came from and are exempt: Signed-off-by naming the author, Cherry-picked-from and Fixes.

The sign-off route and the person rule read only the message's last paragraph, because git reads trailers from there, and they match a key in any case. The check for a trailer the convention requires still reads every line after the subject, with the key as you declared it.

Read a subcommand's help

meow-scm --help lists the subcommands, and meow-scm <subcommand> --help names what it determines, what you read to reach the same answer without the tool, and the first word of each kind of line it prints. A test holds each subcommand's output to those words.