vibemit
v0.1.2
Published
AI-generated Git commit messages using a local LLM via Ollama
Downloads
313
Maintainers
Readme
vibemit
AI-generated Git commit messages using a local LLM via Ollama.
How It Works
- Reads your staged diff via
git diff --staged - Sends the diff to a local Ollama model with a carefully tuned prompt
- Parses the response into 3 distinct commit message candidates
- Presents an interactive selection menu
- Commits with the selected message (or copies/prints based on flags)
The model runs locally — no data leaves your machine.
Prerequisites
# 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:8bInstall
npm install -g vibemitOr run directly:
npx vibemitUsage
Stage your changes, then run:
git add -p
vibemitvibemit 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-rulesFlag 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-rulesDevelopment
git clone https://github.com/williamgrosset/vibemit.git
cd vibemit
npm install
npm run build
node dist/cli.jsWatch mode:
npm run devLicense
MIT
