Generate Git commit messages from repository changes in VS Code. The extension uses the VS Code Language Model API. It does not use an external API key.
- Choose from 15 commit message styles.
- Write messages in English, Spanish, French, German, Italian, Portuguese, or Japanese.
- Add Gitmoji prefixes when needed.
- Add a message body for changes that affect several files.
- Use recent commits as context for the selected style.
- Generate from staged changes or all tracked and untracked working-tree changes.
- Exclude file paths from the diff that the model receives.
- Compress large diffs to fit the model context.
- Select an available language model or model family.
- VS Code 1.90.0 or later.
- An enabled GitHub Copilot extension with language model access.
- A trusted, file-system-backed Git repository in the workspace.
- Open VS Code.
- Open Extensions with
Ctrl+Shift+XorCmd+Shift+X. - Search for
Git Commit Message Generator. - Select Install.
- Open the Source Control view.
- Stage the files when you want to generate from staged changes.
- Select the sparkle button.
- Review the message in the commit input box.
- Edit or commit the message.
The main command uses staged changes when they exist. Otherwise, it uses all working-tree changes.
Open the Command Palette with Ctrl+Shift+P or Cmd+Shift+P.
| Command | Action |
|---|---|
Git Commit: Generate Commit Message |
Generate from staged changes, or all changes when you do not stage changes. |
Git Commit: Generate Commit Message (Staged Changes) |
Generate only from staged changes. |
Git Commit: Generate Commit Message (All Changes) |
Generate from all working-tree changes. |
Git Commit: Select Commit Style |
Select a commit message style. |
Git Commit: Toggle Gitmojis |
Turn Gitmoji prefixes on or off. |
Git Commit: Select Language Model |
Select an available language model. |
Git Commit: Refresh Available Models |
Refresh the available model list. |
Git Commit: Open Settings |
Open the extension settings. |
Git Commit: Show Logs |
Open the Git Commit Generator output channel. |
The Source Control title bar keeps the generate action inline. Its overflow menu contains staged/all scopes, model selection, style selection, and the Gitmoji toggle.
| Style | Example |
|---|---|
| Conventional Commits | feat: add authentication |
| Angular/Google | feat(auth): add login |
| Atom Editor | :sparkles: Add new feature |
| ESLint | Feat: Add new rule |
| Ember.js | [FEATURE] Add computed property |
| GraphQL | Add user query (feat) |
| Ruby on Rails | [FEATURE] Add authentication |
| Symfony | [Feature] Add console command |
| Bitbucket | JIRA-123: Add feature |
| Docker | builder: fix cache |
| Karma | feat(config): add env support |
| jQuery | Core: Fix selector |
| Linux Kernel | net: fix tcp bug |
| Semantic Versioning | fix: resolve leak (closes #123) |
| Plain | Fix login redirect bug |
Open Settings with Ctrl+, or Cmd+,. Search for Git Commit Generator.
| Setting | Default | Description |
|---|---|---|
gitCommitGenerator.language |
auto |
Select auto, en, es, fr, de, it, pt, or ja for the message language. |
gitCommitGenerator.style |
conventional |
Select the commit message style. |
gitCommitGenerator.useGitmojis |
true |
Add Gitmoji prefixes. |
gitCommitGenerator.includeBody |
true |
Add a body for complex changes. |
gitCommitGenerator.bodyThreshold |
5 |
Set the minimum changed-file count that adds a body. |
gitCommitGenerator.recentCommitsCount |
10 |
Set the number of recent commits used as context. |
gitCommitGenerator.excludeFiles |
["**/package-lock.json", "**/.env*"] |
Set glob patterns for paths excluded from the model diff. |
gitCommitGenerator.modelFamily |
gpt-4o |
Set the preferred language model family. |
✨ feat(auth): add user authentication
✨ feat(api): add rate limits
- Add a Redis rate limiter.
- Set limits for each endpoint.
- Add retry-after headers.
- Add tests.
✨ feat(autenticacion): implementar OAuth2
- Añadir integración con Google OAuth.
- Crear un mecanismo de refresco de tokens.
- Implementar almacenamiento seguro.
- Añadir pruebas.
git clone https://github.com/M1n-74316D65/vscode-git-commit-generator.git
cd vscode-git-commit-generator
bun install
bun run compile
bun run testPress F5 in VS Code to start an Extension Development Host.
Package and verify the release artifact:
bun run package:vsix
bun scripts/verify-vsix.mjsThe verified VSIX is written to artifacts/vsix/git-commit-generator.vsix.
Version tags build the same artifact in CI. Upload that verified file manually to
the Visual Studio Marketplace instead of packaging a second copy.
- The extension reduces large diffs at file, hunk, and line boundaries when the model context cannot hold the full diff.
- The extension requires GitHub Copilot or another language model provider for VS Code.
- The extension is disabled in Restricted Mode and does not support virtual workspaces.
MIT © Git Commit Generator Contributors