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

@lizzy_o3o/commit-coach

v0.3.4

Published

AI-powered CLI for commit and PR message coaching

Downloads

685

Readme

commit-coach

AI-powered CLI for generating high-signal commit messages and pull request summaries from git diff.

npm version License: MIT Node.js >= 18

Why commit-coach?

  • Keeps commit messages consistent without forcing templates.
  • Works with AI when available and falls back to deterministic heuristics.
  • Multi-provider LLM support: OpenAI, Groq, Ollama, Gemini, DeepSeek, Mistral, OpenRouter.
  • Supports Korean and English output.

Install

Global install

# npm
npm install -g @lizzy_o3o/commit-coach

# pnpm
pnpm add -g @lizzy_o3o/commit-coach

# yarn
yarn global add @lizzy_o3o/commit-coach

# bun
bun add -g @lizzy_o3o/commit-coach

Run without installing

npx @lizzy_o3o/commit-coach --help
# or
pnpx @lizzy_o3o/commit-coach --help

Available aliases

After install, these commands are all equivalent:

commit-coach --help
ccoach --help
ccm --help

cc is also registered but may conflict with clang on macOS. Prefer ccm.

Quick Start

# 1) install
npm install -g @lizzy_o3o/commit-coach

# 2) first-time setup (choose provider, API key, model, language)
ccm init

# 3) generate commit message
git add .
ccm msg

# 4) generate PR summary
ccm pr --base main

Usage

ccm msg — Commit message

Generate one recommended commit message from staged changes.

ccm msg
ccm msg --lang ko
ccm msg --style conventional --max 72
ccm msg --verbose

ccm pr — PR summary

Generate PR title/body from branch diff.

ccm pr --base main
ccm pr --lang en
ccm pr --verbose

PR summaries include file-level change highlights:

## 변경 요약
- src/app/page.tsx: ContentRow 제거, footer 텍스트 변경

ccm init — Setup wizard

Interactive setup for first-time use. This is the recommended entry point.

ccm init          # local config
ccm init -g       # global config
ccm init --defaults  # skip wizard, use defaults

The wizard walks you through:

  1. Scope — local (.commit-coach.json) or global (~/.commit-coach.json)
  2. Provider — openai, groq, ollama, gemini, deepseek, mistral, openrouter, or custom
  3. API key — skipped for ollama (runs locally)
  4. Model — fetched from provider API, or enter manually
  5. Languageko / en

ccm config:set — Update config

ccm config:set language ko
ccm config:set provider groq
ccm config:set model llama-3.3-70b-versatile
ccm config:set apiKey gsk_...
ccm config:set -g language en    # update global config

ccm hook:install — Git hook

Install a prepare-commit-msg hook that shows recommendations on every commit.

ccm hook:install

Supported Providers

| Provider | API key required | Notes | |---|---|---| | OpenAI | Yes | Default provider | | Groq | Yes | Fast inference | | Ollama | No | Local, no API key needed | | Gemini | Yes | Google AI | | DeepSeek | Yes | | | Mistral | Yes | | | OpenRouter | Yes | Access 300+ models | | Custom | Yes | Any OpenAI-compatible API via baseURL |

Configuration

Precedence

  1. built-in defaults
  2. global config: ~/.commit-coach.json
  3. local config: ./.commit-coach.json

Local overrides global.

Example config

{
  "language": "ko",
  "commitStyle": "conventional",
  "maxSubjectLength": 72,
  "scopes": ["core", "api", "web", "docs"],
  "provider": "groq",
  "model": "llama-3.3-70b-versatile",
  "apiKey": "gsk_..."
}

AI vs Fallback

  • If a provider and API key are configured, AI output is used.
  • If not, commit-coach falls back to local heuristics.
  • Use --verbose to see which mode was used.

You can also set API key via environment variable (fallback):

export OPENAI_API_KEY="your-key"

CI / Automation

msg/pr require config to exist. In CI, either:

# option 1: create config non-interactively
ccm init --defaults

# option 2: skip the config check
COMMIT_COACH_SKIP_ONBOARDING=1 ccm msg

# option 3: disable branding/animation
COMMIT_COACH_BRAND=0 COMMIT_COACH_ANIMATE=0 ccm msg

Global Options

ccm --no-brand msg               # hide banner
ccm --theme sunset config:init   # change brand theme

Contributing

Contributions are welcome.

git clone https://github.com/reeseo3o/commit-coach.git
cd commit-coach
npm install
npm run test && npm run typecheck && npm run build
  1. Fork the repository
  2. Create a feature branch
  3. Add/update tests
  4. Run npm run test && npm run typecheck && npm run build
  5. Open a pull request

Security

  • Never commit secrets (API keys, credentials, .env values).
  • Keep local credentials out of tracked files.
  • .commit-coach.json is in .gitignore by default.

License

MIT — see LICENSE