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

@fridzema/cmt

v1.1.1

Published

AI-powered conventional commits from unstaged changes. Fast.

Readme

@fridzema/cmt

AI-powered conventional commits from unstaged git changes.

CI npm version

Install

npm install -g @fridzema/cmt

First Run

On first run with no config, cmt opens a setup wizard:

Welcome to @fridzema/cmt!

Get your OpenRouter API key at: https://openrouter.ai/keys

? OpenRouter API key: ••••••••••••••••••

Config saved. Ready to commit!

Config is saved to your platform's app-data directory:

  • macOS: ~/Library/Application Support/@fridzema/cmt/config.json
  • Linux: ~/.config/@fridzema/cmt/config.json
  • Windows: %APPDATA%\@fridzema\cmt\config.json

After setup, your original commit task runs immediately — no second invocation needed.

Usage

# Group unstaged changes into logical commits and auto-commit (default)
cmt

# Single combined commit for all changes
cmt --all

# Open interactive TUI to review, edit, or skip groups before committing
cmt --review

# Use a specific OpenRouter model for this run
cmt --model openai/gpt-4o

How It Works

  1. Reads git diff (unstaged) and git status
  2. Sends diff + context to OpenRouter AI
  3. AI groups related changes into logical conventional commits
  4. All groups are committed automatically by default
  5. With --review: opens an interactive TUI where you can navigate groups, edit subjects, skip individual commits, then confirm

Flags

| Flag | Description | | ---------------- | ------------------------------------------------- | | --all | Single combined commit instead of topic groups | | --review | Open interactive TUI to review/edit before commit | | --model <slug> | OpenRouter model slug for this invocation | | --version | Print version | | --help | Show help |

Default Model

anthropic/claude-sonnet-4.6 via OpenRouter. Override per-run with --model.

To change the default permanently, edit your config file and update the model field.

Dependencies

| Package | Purpose | | ------------------- | ---------------------------------------------------------------- | | commander | CLI argument parsing and help generation | | openai | HTTP client pointed at OpenRouter (same API, different base URL) | | simple-git | Git operations: diff, status, stage, commit | | @inquirer/prompts | Interactive prompts for wizard and confirmation | | env-paths | Platform-appropriate config directory (macOS/Linux/Windows) | | zod | Runtime validation of AI JSON responses | | picocolors | Terminal color output |

FAQ

The AI returned invalid JSON. cmt retries once automatically. If it fails again, it exits with an error — try again or use --all for a simpler prompt.

My diff is too large. Diffs over 50 KB are truncated before sending to the AI. For large repos, use --all for a single commit.

I already staged some changes. cmt works on unstaged changes only. Run git reset HEAD to unstage, then run cmt.

Can I use a different AI provider? No — OpenRouter is locked. Use --model to switch models within OpenRouter's catalog: openrouter.ai/models.