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

@alcanivorax/git-msg

v0.1.3

Published

A Git-native CLI that suggests conventional commit messages from staged changes.

Readme


git-msg removes the pause before git commit. Stage your changes, run git msg, and get a clear commit message you can use, edit, or cancel — without leaving the terminal.

No AI. No config. No editor.

Install

npm i -g @alcanivorax/git-msg

Usage

Stage your changes as usual, then run:

git add .
git msg

You'll see something like:

Suggested commit message:

  feat(auth): add user authentication

[e]dit  [u]se  [c]ancel

Press a single key — no Enter required.

| Key | Action | | --- | ------------------------------------ | | u | Commit with the suggested message | | e | Edit the message inline, then commit | | c | Abort |

Inline editing

Pressing e opens a prompt with the message pre-filled:

Edit commit message:
> feat(auth): add user authentication

Edit it like any shell input. Enter commits. Ctrl+C cancels. No vim, no $EDITOR.

Message format

Suggestions follow the Conventional Commits format:

<type>(<scope>): <verb> <object>

The scope is included when the staged files share a clear module or directory. It is omitted when changes span multiple unrelated areas.

Examples:

feat(auth): add user authentication
fix(api): handle null response in user validation
feat(auth): implement JWT token refresh
refactor: remove legacy payment module
test(auth): add login flow tests
chore: update eslint config
docs: update contributing guide
ci: update node version matrix

How messages are generated

git-msg reads your staged changeset and derives the message from three sources:

File metadata

  • Git status codes (A, M, D, R, C) determine the verb — add, remove, rename, etc.
  • File paths determine the scope and object — src/auth/login.ts → scope auth
  • Change size (insertions vs. deletions) refines the verb for modification-only changes

Diff content

  • Newly declared symbols (functions, classes, types, interfaces) are extracted and used as the commit object — validateUserEmailuser email
  • Fix/error keywords in added lines (error, bug, crash, invalid, etc.) promote the type to fix
  • Test framework patterns (describe, it, expect) promote the type to test
  • New package imports are detected for context

Classification

  • Files are classified into categories (code, tests, docs, config, build, ci, styles) and the dominant category maps to a commit type
  • When signals conflict, higher-confidence signals win — fix patterns beat a generic feat, all-deletes become refactor

No AI. No AST parsing. No network calls. The tool runs entirely offline and produces a deterministic result for a given set of staged files.

Options

git msg [options]

  -h, --help     Show help
  -v, --version  Show version

License

MIT