commitfmt

Crates.iocommitfmt
lib.rscommitfmt
version0.0.1
created_at2025-09-30 04:11:29.825904+00
updated_at2025-09-30 04:11:29.825904+00
descriptionA git commit message formatter
homepage
repositoryhttps://github.com/jfernandez/commitfmt
max_upload_size
id1860583
size26,041
Jose Fernandez (jfernandez)

documentation

README

commitfmt

A git commit message formatter written in Rust.

Features

  • Enforces subject line length (default: 50 chars)
  • Wraps body lines (default: 72 chars)
  • Preserves git comments and diffs
  • Works seamlessly with editors like nvim
  • Configurable via .commitfmt.toml

Installation

cargo install commitfmt

Or build from source:

cargo install --path .

Usage

Format from stdin

cat commit.txt | commitfmt

Format a file in-place

commitfmt COMMIT_EDITMSG

Use with nvim

Add to your git config:

git config --global core.editor "nvim"

Then use with a git hook in .git/hooks/commit-msg:

#!/bin/sh
commitfmt "$1"

Custom config

Create .commitfmt.toml in your project:

subject_max_length = 50
body_max_line_length = 72

How it works

  • Subject lines longer than the max length have overflow words moved to the body
  • Body lines longer than max are wrapped at word boundaries
  • Lines starting with # (git comments/diffs) are preserved
  • Intentional line breaks in the body are maintained

License

MIT

Commit count: 0

cargo fmt