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

catmit

v0.2.5

Published

AI-powered commit message generator. Supports OpenAI, Anthropic, Gemini, and Ollama. Generate, commit, and push in one click.

Downloads

1,232

Readme

CatMit — AI Commit Message Generator

Generate conventional commit messages with AI. One click in VS Code, one command in the terminal.

CatMit reads your staged git changes, sends them to your chosen AI provider (OpenAI, Anthropic Claude, Google Gemini, NVIDIA Build, or Ollama), and generates clean, standardized commit messages. Available as a VS Code / Windsurf extension and a CLI tool.

VS Code Marketplace npm Open VSX License: MIT

Features

  • Generate commit messages from staged diffs using AI
  • Multiple AI providers — OpenAI, Anthropic, Google Gemini, NVIDIA Build, Ollama (local)
  • Bring Your Own Key — use your own API keys, stored securely in the OS keychain
  • 6 commit formats — Conventional, Angular, Karma, Emoji/Gitmoji, Semantic, Simple
  • One-command push — stage, generate, commit, and push in a single step
  • Amend support — regenerate and replace the last commit message
  • VS Code integration — cat paw button in Source Control, works in dark and light mode
  • Polished CLI — React + Ink terminal UI with interactive setup, spinners, and status messages

VS Code Extension

Quick Start

  1. Install CatMit from the VS Code Marketplace
  2. Open the Command Palette (Ctrl+Shift+P) and run Catmit: Set API Key
  3. Set your provider in Settings > search "catmit.provider"
  4. Open the Source Control tab — click the cat paw icon to generate a commit message

Commands

| Command | Description | |---------|-------------| | Catmit: Generate Commit Message | Auto-stages changes, generates a message, and fills the SCM input box | | Catmit: Stage, Commit & Push | Full pipeline — stage, generate, commit, and push to remote | | Catmit: Amend Last Commit Message | Regenerates and amends the previous commit message | | Catmit: Set API Key | Securely store your API key in the OS keychain |

Settings

| Setting | Default | Description | |---------|---------|-------------| | catmit.provider | (none) | AI provider: openai, anthropic, gemini, nvidia, or ollama | | catmit.model | (auto) | Override the default model for the selected provider | | catmit.format | conventional | Commit format: conventional, angular, karma, emoji, semantic, simple | | catmit.maxLength | 72 | Maximum subject line length | | catmit.includeBody | auto | Include a commit body: auto, always, never | | catmit.includeBullets | auto | Bullet-point summary in body: auto, always, never | | catmit.maxBullets | 5 | Maximum number of bullet points in the commit body (1–20) | | catmit.ollamaUrl | http://localhost:11434 | Ollama server URL (for local models) | | catmit.language | en | Commit message language |

CLI

Install

npm install -g catmit

Setup

catmit setup

This walks you through selecting a provider, model, and API key. The API key is stored in your OS keychain (Windows Credential Manager, macOS Keychain, or Linux Secret Service).

Usage

# Generate a commit message from staged changes
catmit

# Generate and auto-commit
catmit --commit

# Stage all, generate, commit, and push in one step
catmit push

# Regenerate the last commit message
catmit amend

# Regenerate and apply the amend
catmit amend --apply

# Use a specific provider or format
catmit -p anthropic -f emoji

# Cap the body to 3 bullet points
catmit --max-bullets 3

# List available providers and default models
catmit models

CLI Options

catmit [generate]          Generate a commit message (default command)
  -p, --provider <name>    AI provider (openai, anthropic, gemini, nvidia, ollama)
  -m, --model <name>       Override model
  -f, --format <format>    Commit format (conventional, angular, karma, emoji, semantic, simple)
  -b, --max-bullets <n>    Maximum number of body bullet points
  -c, --commit             Auto-commit with the generated message

catmit push                Stage all, generate, commit, and push
catmit amend               Regenerate last commit message
  -a, --apply              Apply the new message to the last commit
catmit setup               Interactive provider and API key setup
catmit models              List providers and default models

Persisting settings

CLI flags only apply to a single invocation. To persist any setting, drop a .catmitrc.json in your repo root (shared with the team) or in your home directory (global):

{
  "format": "conventional",
  "maxLength": 72,
  "maxBullets": 3,
  "language": "en"
}

Environment variables also work: CATMIT_PROVIDER, CATMIT_MODEL, CATMIT_FORMAT, CATMIT_MAX_BULLETS, CATMIT_LANGUAGE, OLLAMA_URL.

Supported Providers

| Provider | Default Model | API Key Env Var | |----------|---------------|-----------------| | OpenAI | gpt-4o-mini | OPENAI_API_KEY | | Anthropic | claude-sonnet-4-20250514 | ANTHROPIC_API_KEY | | Google Gemini | gemini-2.5-flash | GOOGLE_API_KEY | | NVIDIA Build | nvidia/llama-3.1-nemotron-70b-instruct | NVIDIA_API_KEY | | Ollama (local) | llama3.2 | (none needed) |

You can override the model with -m or the catmit.model setting.

Commit Formats

| Format | Example | |--------|---------| | conventional | feat(auth): add OAuth2 login flow | | angular | feat(auth): add OAuth2 login flow | | karma | feat(auth): add OAuth2 login flow | | emoji | :sparkles: add OAuth2 login flow | | semantic | feat: add OAuth2 login flow | | simple | Add OAuth2 login flow |

Security

  • API keys are stored in the OS keychain, not in plaintext config files
  • VS Code extension uses SecretStorage (OS-level encryption)
  • CLI uses @github/keytar for native keychain access
  • No --api-key CLI flag — keys are never exposed in shell history or process listings
  • .catmitrc.json is gitignored and only stores non-sensitive settings (provider, model, format)
  • Environment variables (OPENAI_API_KEY, NVIDIA_API_KEY, etc.) are supported as an alternative

Configuration Priority

Settings are resolved in this order (highest priority first):

  1. CLI flags (-p, -m, -f)
  2. OS Keychain (API key)
  3. Environment variables
  4. .catmitrc.json (project directory, then home directory)
  5. VS Code settings (for the extension)
  6. Defaults

Requirements

  • Node.js 18+
  • Git installed and available in PATH
  • An API key from one of the supported providers (or Ollama running locally)

License

MIT