Git Commit Message Generator — Free Conventional Commits Tool

Free, private, serverless git commit message generator. Create conventional commit messages from descriptions or diffs — 100% client-side.

🔒 100% Private
Completely Free
🌐 Runs in Browser
📦 Export Ready

Git Commit Message Generator — Free Conventional Commits Tool

Tool Workspace

Ready

Loading tool...

  1. Describe Your Changes — Type a natural language description of what you changed (e.g. 'Fixed login button not responding on mobile') or paste a git diff. The tool automatically detects the commit type and scope from your text.
  2. Select Commit Type — Choose from 11 conventional commit types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert. The tool auto-selects based on keywords in your description.
  3. Add Scope (Optional) — Enter a scope like 'auth', 'api', 'ui', or 'db' to specify which part of the codebase was affected. Auto-detected from your description if possible.
  4. Breaking Changes — Check the breaking change box and provide a description if your commit introduces backwards-incompatible changes.
  5. Generate Messages — Click Generate to create 3-4 message formats: Conventional (type(scope): desc), Emoji (✨ feat: desc), Simple (plain description), and Detailed (with body, breaking change, and footer). Click any message to copy it.

Git Commit Message Generator — Write Better Commits Faster

The Git Commit Message Generator helps you write clean, standardized commit messages following the Conventional Commits specification. Describe your changes in natural language or paste a git diff, and the tool generates properly formatted commit messages in multiple styles — conventional, emoji, simple, and detailed.

Good commit messages are essential for project maintainability, code reviews, automated changelogs, and semantic versioning. This tool makes writing them effortless.

Key Features

  • 11 Commit Types — All standard Conventional Commits types: feat (✨), fix (🐛), docs (📝), style (💄), refactor (♻️), perf (⚡), test (✅), build (📦), ci (🔧), chore (🔨), revert (⏪). Each with its corresponding emoji.
  • Auto Type Detection — The tool analyzes your description and automatically selects the appropriate commit type. Keywords like 'fix', 'bug', 'error' → fix. Keywords like 'add', 'feature', 'implement' → feat. Covers all 11 types.
  • Auto Scope Detection — Detects scope from your description: 'login' → auth, 'button' → ui, 'database' → db, 'endpoint' → api, and more.
  • Diff Parsing — Paste a git diff and the tool extracts file names and line counts (+additions/-deletions) to create a meaningful commit summary.
  • 4 Output Formats — Conventional (type(scope): desc), Emoji (✨ type: desc), Simple (plain text), and Detailed (multi-line with body, BREAKING CHANGE, and footer).
  • Breaking Changes — Toggle breaking change flag to add a ! after the type and include a BREAKING CHANGE footer in the detailed format.
  • Body & Footer — Add optional body text for additional context and footer for issue references (Closes #123, Refs #456).
  • Message History — Last 20 generated messages saved in localStorage. Click any to copy. Clear anytime.
  • 72-Character Limit — Descriptions are automatically trimmed to the recommended 72-character subject line limit.
  • One-Click Copy — Click any generated message to copy it to clipboard instantly.

Conventional Commits Specification

  • feat — A new feature for the user (correlates with MINOR in Semantic Versioning).
  • fix — A bug fix (correlates with PATCH in Semantic Versioning).
  • docs — Documentation-only changes.
  • style — Code formatting, white-space, semicolons — no logic changes.
  • refactor — Code restructuring without adding features or fixing bugs.
  • perf — Performance improvements.
  • test — Adding or updating tests.
  • build — Build system or dependency changes (webpack, npm, pip).
  • ci — CI/CD configuration changes (GitHub Actions, Jenkins).
  • chore — Maintenance tasks, version bumps, dependency updates.
  • revert — Reverting a previous commit.

Use Cases

  • Open Source Contributors — Write commits that match project standards effortlessly.
  • Teams — Ensure consistent commit message formatting across all developers.
  • CI/CD — Generate commits compatible with tools like semantic-release, standard-version, and commitlint.
  • Code Reviews — Clear, descriptive commit messages make PR reviews faster and more effective.
  • Changelogs — Conventional commits enable automated changelog generation.

Privacy

The Git Commit Message Generator processes all text in your browser. No code, diffs, or descriptions are transmitted to any server. Message history is stored in localStorage and can be cleared at any time.

Frequently Asked Questions

What is a conventional commit?

Conventional Commits is a specification for writing standardized commit messages. The format is: type(scope): description. Types include feat (new feature), fix (bug fix), docs, style, refactor, perf, test, build, ci, chore, and revert. This standard enables automated changelogs and semantic versioning.

Does it parse git diffs?

Yes. If you paste a git diff (output from 'git diff'), the tool extracts filenames and line counts (+additions/-deletions) to generate a summary. For natural language descriptions, it detects the commit type and scope automatically from keywords.

What's the difference between the 4 formats?

Conventional: standard type(scope): desc format. Emoji: adds a relevant emoji before the type. Simple: just the cleaned description without type prefix. Detailed: multi-line format with body, footer, and BREAKING CHANGE sections for complex commits.

Is my code or diff data stored?

No. Everything is processed in your browser. The only data stored is your commit message history (last 20 messages) in localStorage for convenience. You can clear this anytime.

What keywords trigger auto-detection?

fix/bug/error → fix, add/feature/implement → feat, refactor/restructure → refactor, doc/readme → docs, style/format/css → style, test/spec → test, perf/optimize/cache → perf, build/webpack → build, ci/pipeline → ci, revert/undo → revert, chore/update/bump → chore.