Stop writing
boring commit messages.

Your diff already says what changed. Boring Commit turns your staged changes into a conventional commit message.
Local or cloud. Written in Rust. Go do something interesting instead.

Typing demo: git add, bcommit generating a conventional commit message with Ollama, then Committed

Psst… it's boring on purpose!

01 — The loop

Three steps.
No thinking required.

S.01

Stage

Nothing staged, nothing happens. Obviously. git add -p, then run.

S.02

Generate

Your diff plus instructions.md go into the model. Watch the spinner.

S.03

Decide

Ship it, fix it in $EDITOR, roll again, or walk away.

02 — Providers

Pick a model.
Any model.

ollamalocalhost:11434Local · qwen2.5-coder:3b, no key
openaiapi.openai.com/v1Hosted · key verified first
groqapi.groq.com/openai/v1Hosted · key verified first
claudeapi.anthropic.com/v1Hosted · key verified first
geminigenerativelanguage…/openaiHosted · key verified first
openrouteropenrouter.ai/api/v1Hosted · key verified first

Configured with bcommit config, switched with bcommit model. Models are checked against /models before anything is saved. Prompt: sysprompt show / edit / reset / path — loaded every run from ~/.config/bcommit/instructions.md.

03 — Privacy

Your diff
stays yours.

P.01

Offline option

Ollama runs on-device over /api/chat with no API key. Pull once with ollama pull qwen2.5-coder:3b — diffs never leave your machine.

P.02

Keys stay local

API keys live in ~/.config/bcommit/config.json. Blank input keeps the existing key; entries are verified before saving.

P.03

Review gate

Nothing commits until you say so. Edits are previewed and confirmed; --yes exists for CI but is never the default.

Models can misread a diff. Always review the message before choosing Commit.

04 — Reference

Setup once.
Then forget the flags.

Quickstart

From zero to first commit

One line to install. Two minutes, then it disappears into your workflow.

# install (macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/iamprasadraju/Boring-Commit/main/scripts/install.sh | sh

# install (Windows PowerShell)
irm https://raw.githubusercontent.com/iamprasadraju/Boring-Commit/main/scripts/install.ps1 | iex

# configure
bcommit config

# daily use
git add -p
bcommit

Commands

Nine verbs, no flags to memorize

Everything is a noun-verb pair. --yes is the only flag.

bcommit               # generate (default)
bcommit config        # provider + model + key
bcommit model         # switch active model
bcommit model remove  # delete a saved model
bcommit sysprompt     # show prompt
bcommit sysprompt edit
bcommit sysprompt reset
bcommit sysprompt path
bcommit --yes         # auto-commit

Default prompt

The house rules

Only the message is printed. No fences, no commentary.

type(scope): subject
feat fix chore docs style
refactor test perf build ci revert
Subject: imperative, at most 72 chars
Body: optional, wrapped at 100

Download Boring Commit

paste this in terminal

or

Download for macOS

Apple Silicon · macOS 13 or later · checksum on the release page