Commit Ngin is an AI-powered CLI tool that analyzes your staged Git diff and generates high-quality commit message suggestions.
You simply choose 1, 2, or 3, and Commit Ngin automatically performs the commit for you.
It also supports chat-based refinement, allowing you to customize or regenerate messages before committing.
Commit Ngin uses Groq for inference.
You must have:
Create one at:
https://console.groq.com/keys
This directory stores:
- Your Groq API key
- Optional commit message template
- Previous commits (used for style learning)
Do NOT commit this directory.
- Uses Groq LLMs (currently
openai/gpt-oss-120b) - Generates three commit message suggestions
- Auto-commits after selecting 1 / 2 / 3
- Chat mode for refining commit messages
- Press Enter for regenerating suggestions
- Zero configuration after initialization
- Optional commit message template support
- Learns style from previous commits
npm install -g commit-nginVerify installation:
commit-ngin --versionRun:
commit-ngin --initYou will be prompted for:
- Project description
- Groq API key
- Optional commit message template
After initialization, ensure:
.commit.ngin/
is added to your .gitignore.
Stage files:
git add .Run Commit Ngin:
commit-nginThe CLI will:
- Read your staged diff
- Generate 3 commit messages
- Prompt you for a choice
- Automatically commit using your selection
| Input | Action |
|---|---|
| 1 / 2 / 3 | Auto-commit using selected suggestion |
| Enter | Regenerate suggestions |
| Custom text | Chat with the AI to improve suggestions |
| q | Quit |
$ git add src/
$ commit-ngin
Suggestions:
[1] feat: add validation to session manager
[2] refactor: simplify user auth flow
[3] fix: correct null handling in token parser
User selects:
[INPUT]: 1
CLI performs:
git commit -m "feat: add validation to session manager"
SUCCESS !!!
Thanks for using ⊂(◉‿◉)つ
User types:
make it more formal
AI generates improved suggestions.
User presses Enter:
AI regenerates new variations.
- Reads diff from:
git diff --staged - Sends diff + context to Groq LLM
- LLM returns exactly 3 JSON-formatted suggestions
- User selects → CLI commits
- Commit stored locally for style inference
Clone:
git clone https://github.com/0xv1shal/commit-ngin
cd commit-nginInstall:
npm installBuild:
npm run buildTest globally:
npm link
commit-ngincommit-ngin/
├─ src/
│ ├─ index.ts
│ ├─ ai_manager.ts
│ ├─ ui_manager.ts
│ ├─ file_manager.ts
│ └─ ...
├─ dist/
├─ package.json
└─ tsconfig.json
Issues and PRs welcome:
https://github.com/0xv1shal/commit-ngin/issues
ISC License.