AI Git Commit Assistant
AI Git Commit Assistant is a VS Code extension that analyzes local Git changes with the VS Code Language Model API and generates practical release artifacts directly in the editor.
Features
- Analyze either staged changes (
git diff --staged) or all changes since HEAD (git diff HEAD).
- Summarize changed behavior and affected files.
- Detect potential breaking changes.
- Select a Conventional Commit type:
feat, fix, refactor, docs, style, perf, test, chore, or ci.
- Generate a Conventional Commit title.
- Generate a pull request description.
- Suggest a semantic version bump from the current
package.json version.
- Generate changelog markdown.
- Score commit-message quality and provide follow-up suggestions.
- Create a Git commit from staged files.
AI Provider
The extension uses vscode.lm, the VS Code Language Model API. It does not require its own API key.
Users authenticate through whichever VS Code extension exposes a language model, such as GitHub Copilot or another compatible provider. The first available chat model is used by default.
Usage
- Open a Git repository in VS Code.
- Stage the files you want to commit, or switch the assistant to
HEAD mode.
- Open the assistant using one of these options:
- Run
AI Git Commit Assistant: Open from the Command Palette.
- Press
Ctrl+Alt+G on Windows/Linux or Cmd+Alt+G on macOS.
- Click
AI Commit in the bottom status bar.
- Click the Git commit icon in the Source Control view title bar.
- Select a language model from the
Model dropdown, or keep Auto model. The dropdown always includes Auto model and Local fallback (no AI), then lists only usable user-facing models reported by VS Code.
- Select
Staged or HEAD.
- Click
Generate.
- Review the generated summary, breaking changes, version suggestion, commit title, PR description, and changelog.
- Use
Copy, Commit, Generate PR, or Generate Changelog.
The Commit button only commits staged files. If you generated analysis in HEAD mode, stage the intended files before committing.
Generate PR now lets you choose the commit list source:
Auto tries unpushed commits first, then the current branch relative to the detected base branch, then the last 10 commits.
Unpushed uses only commits that have not been pushed for the current branch.
Branch vs base uses commits between the current branch and the detected base branch.
Last 10 uses the latest 10 commits on the current branch.
Custom lets you choose a source branch and a target branch with searchable branch inputs. The source branch defaults to the current branch.
You can also include or exclude commits individually from the PR Commits checklist before generating the PR description.
Use the in-panel settings button to manage assistant settings such as the default target branch for Custom PR commit selection.
The settings modal can store AI Git Commit Assistant config in either global VS Code settings or workspace settings.
The selected PR commits mode is also remembered the next time you open the assistant.
Large ranges are automatically trimmed before sending them to the language model.
If a provider returns a token, timeout, or 403 error for a selected model, choose another model from the Model dropdown or sign in again to that provider. Auto model can try available providers and then use local fallback if none respond.
Codex Chat can work in VS Code without being exposed through the VS Code Language Model API. If no provider responds through vscode.lm, the assistant generates a local fallback commit message from the Git diff.
Internal Copilot utility models exposed by VS Code, such as copilot-utility, are skipped by Auto mode and hidden from the dropdown because they can reject normal extension prompts.
Settings
| Setting |
Default |
Description |
aiGitCommitAssistant.defaultPrCommitMode |
auto |
Default PR commit mode used when opening the assistant if no previous selection has been saved. |
aiGitCommitAssistant.defaultTargetBranch |
empty |
Default target branch used for Custom PR commit selection when no target branch is chosen. |
aiGitCommitAssistant.diffMode |
staged |
Default diff mode, either staged or head. |
aiGitCommitAssistant.maxDiffCharacters |
45000 |
Maximum diff characters sent to the language model. |
aiGitCommitAssistant.modelVendor |
empty |
Optional language model vendor filter, such as copilot. |
aiGitCommitAssistant.modelId |
empty |
Optional exact language model ID to use by default. The in-panel Model dropdown overrides this for the workspace. |
aiGitCommitAssistant.modelFamily |
empty |
Optional language model family filter. |
If the configured model filter returns no models, the extension falls back to the first available VS Code chat model.
Semantic Version Rules
- Breaking change: major bump, such as
1.4.2 to 2.0.0.
feat: minor bump, such as 1.4.2 to 1.5.0.
fix: patch bump, such as 1.4.2 to 1.4.3.
- Other commit types: no version bump unless a breaking change is detected.
The current version is read from the workspace package.json. If no version is found, the assistant uses 0.1.0 as a fallback.
Development
npm install
npm run check
npm run compile
Open this folder in VS Code and press F5 to launch an Extension Development Host, then run AI Git Commit Assistant: Open.
Packaging
npm run package