Paste a git diff. Get a clean Conventional Commits message — type, scope, subject, body, and two alternatives. Run git diff --staged in your terminal and paste the output below.
Frequently asked questions
What is a Conventional Commits message?
A Conventional Commits message follows the format `type(scope)?: subject`, with an optional body and optional `BREAKING CHANGE:` footer. Standard types are feat, fix, refactor, docs, chore, test, perf, style, build, and ci. The format is widely used because tools like semantic-release can read it to auto-generate changelogs and bump version numbers.
Do I need to install anything?
No. Paste your `git diff` (or `git diff --staged`) output here in the browser. There's no CLI to install, no IDE extension, and no API key required. Run the diff command in your terminal, copy the output, and paste it.
Can I use this with VS Code, IntelliJ, or other IDEs?
Yes — copy the diff from your IDE's Git panel or terminal, paste it here, then copy the generated message back into your IDE's commit dialog. Tinkr is browser-based on purpose, so it works alongside any IDE without an extension.
How do I get the diff to paste?
Run `git diff --staged` in your terminal to see only the changes you've staged for commit, or `git diff` for unstaged changes. Copy the entire output and paste it into the textarea. The tool reads added/removed lines and file paths to build the message.
What if my diff covers multiple unrelated changes?
Split it into separate commits. Conventional Commits is one logical change per commit, which keeps your history readable and your changelog meaningful. Use `git add -p` to stage hunks selectively, generate a message for each set, and commit them separately.
How does the tool detect breaking changes?
It looks for signals in the diff: removed exports, changed function signatures, renamed env variables, modified database schema columns, or removed CLI flags. Internal refactors that don't change a public contract are not marked breaking, even if they touch a lot of lines.
Which AI model is used?
Google Gemini 2.5 Flash by default, with automatic fallback to Gemini 2.5 Flash-Lite when the primary model is overloaded. Both produce structured JSON output via Gemini's responseSchema feature, which is why the format is consistent every time.
Is it free? Are there usage limits?
Yes, free. Each IP address can generate 20 commit messages per 24 hours. No signup, no tracking ads. For CI/CD integration or higher-volume use, a paid API tier is on the roadmap.