Random Commit Message Generator
GeneratorsEverything runs locally in your browser — nothing is uploaded
For demos, screen recordings, test fixtures or padding an empty repository, typing ten commit messages by hand is tedious and prone to repetition. This tool produces them in Conventional Commits style — `type(scope): description` — across feat, fix, docs, style, refactor, perf, test, build, ci, chore and revert, with an optional scope, an optional body line and an optional breaking-change marker. The marker adds `!` to the header and, in the footer, a line `BREAKING CHANGE: …` in capitals (lower case or a hyphen means many tools will not recognise it). Set a seed and the same batch comes back.
Features
- Conventional Commits format: type(scope): description
- Eleven commit types to choose from
- Optional scope; whitespace becomes a hyphen
- One to twenty messages per run, grouped one by one
- Optional one-line body
- ⚠️ BREAKING CHANGE as an all-caps footer, with ! in the header
- A seed reproduces the same batch exactly
- Uses a cryptographic random source, never Math.random
How to use
- Choose a commit type (feat, fix, …)
- Add a scope if you want one, such as auth or ui
- Set the count and tick body or breaking change as needed
- Copy the rows you want, or generate another batch
FAQ
- Why must BREAKING CHANGE be upper case?
- By the Conventional Commits convention, a breaking change goes in the footer as `BREAKING CHANGE: …` (all capitals, one space). Semantic versioning and changelog generators match that literal, so lower case `breaking change` or the hyphenated `breaking-change` is not recognised — no error, the release just quietly fails to be marked major. The `!` in the header is there so readers who skip the footer still see it.
- How does the seed work?
- Enter any string and the same batch is reproducible, which is handy for recordings, docs and bug reports where you want the previous run back. Leave it empty to use a cryptographic source that differs every time. Note this is a reproducible pseudo-random generator; it is not for secrets, but commit messages are not secrets anyway.
- Can it write descriptions in other languages?
- Yes. Descriptions follow the interface language: a Chinese page gives Chinese descriptions, an English page English ones, a Japanese page Japanese ones. The type token and brackets stay English, because they are the Conventional Commits keywords and translating them would break recognition.
Related tools
Branch Generator
WebTurn an issue title into a git branch name like feat/123-add-login: type prefix, separator, issue number and length limit. Chinese titles become pinyin.
.gitignore Generator
WebGenerate a .gitignore from language, framework, editor and OS templates. Sections are merged and duplicates removed. Runs entirely in your browser.
Random Picker
TextPaste a list and draw a few entries at random, using the browser’s cryptographic random source, with optional deduplication and list ordering.
UUID Generator
GeneratorsGenerate a column of UUID v4, v7, ULID, NanoID or MongoDB ObjectId values, one per line, ready to paste into a spreadsheet. Runs in your browser.
Lorem Ipsum
GeneratorsGenerate placeholder text as Latin lorem ipsum, English sentences, Chinese or Japanese filler, in paragraphs, sentences or words — all in your browser.
Mock Data
GeneratorsDescribe your fields once and get realistic mock records, exportable as JSON, CSV, TSV, SQL, XML, YAML or TOML. All generated in your browser.