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

vibemit

v0.1.2

Published

AI-generated Git commit messages using a local LLM via Ollama

Downloads

313

Readme

vibemit

Tests

AI-generated Git commit messages using a local LLM via Ollama.

How It Works

  1. Reads your staged diff via git diff --staged
  2. Sends the diff to a local Ollama model with a carefully tuned prompt
  3. Parses the response into 3 distinct commit message candidates
  4. Presents an interactive selection menu
  5. Commits with the selected message (or copies/prints based on flags)

The model runs locally — no data leaves your machine.

Prerequisites

  • Node.js >= 20
  • Ollama installed and running
  • A pulled model (default: qwen3:8b)
# Install Ollama
brew install ollama        # macOS
curl -fsSL https://ollama.com/install.sh | sh  # Linux

# Start the server and pull the default model
ollama serve
ollama pull qwen3:8b

Install

npm install -g vibemit

Or run directly:

npx vibemit

Usage

Stage your changes, then run:

git add -p
vibemit

vibemit reads your staged diff, generates 3 commit message candidates using a local LLM, and lets you pick one interactively.

Flags

| Flag | Short | Description | |---|---|---| | --model <name> | | Ollama model to use (default: qwen3:8b) | | --intent <text> | | High-priority intent guidance for commit wording | | --conventional | | Conventional Commit format (type(scope): subject) | | --body | | Include subject + body (1-3 bullet points) | | --max-diff-lines <number> | | Max staged diff lines sent to model (default: 1500) | | --dry-run | -d | Print selected message, do not commit | | --clipboard | -c | Copy selected message to clipboard, do not commit | | --yes | -y | Auto-select the first option (skip prompt) | | --add-rule <text> | -r | Add a persistent rule | | --rules | | Print saved rules | | --clear-rules | | Delete all saved rules |

Examples

# Basic usage
vibemit

# Conventional commits with a body
vibemit --conventional --body

# Dry run with clipboard copy
vibemit -d -c

# Auto-select first option (for scripting)
vibemit -y

# Use a different model
vibemit --model llama3.2:3b

# Increase diff context for large commits
vibemit --max-diff-lines 2500

# Provide explicit commit intent
vibemit --intent "Initial scaffold for vibemit CLI with Ollama integration"

# Add a custom rule
vibemit --add-rule "Use lowercase for subject line"
vibemit --add-rule "Always mention the affected component"

# View and clear rules
vibemit --rules
vibemit --clear-rules

Flag Combinations

| Flags | Behavior | |---|---| | (none) | Select message, then git commit | | --dry-run | Print only, no commit | | --clipboard | Copy only, no commit | | --dry-run --clipboard | Print and copy, no commit | | --yes | Auto-select first, then commit | | --yes --dry-run | Auto-select first, print only |

Rules

vibemit supports persistent rules that are included in every prompt. Rules are stored per-repo when inside a Git repository, with a global fallback.

Storage locations:

  • Per-repo: .git/vibemit.json
  • Global fallback: ~/.config/vibemit/config.json
# Add rules
vibemit -r "Use lowercase for subject line"
vibemit -r "Always mention the affected component"

# View rules
vibemit --rules

# Clear all rules
vibemit --clear-rules

Development

git clone https://github.com/williamgrosset/vibemit.git
cd vibemit
npm install
npm run build
node dist/cli.js

Watch mode:

npm run dev

License

MIT