Generate concise Git commit messages from your VS Code changes with your existing local Codex or Claude CLI, then write the result directly into VS Code's native Source Control input box.
You're already investing in Codex or Claude Code. Why pay for Copilot or Cursor just for commit message generation?
This extension leverages your existing AI subscription to bring the same AI-powered commit message workflow directly to VS Code.
Zero additional cost. Zero complexity. Just works.
- Open the Source Control view.
- Stage changes if you want the message to use only staged diffs.
- Click
Generate Commit Messagein the Source Control title bar. - Review or edit the generated message.
- Commit with VS Code as usual.
You can also open the Generate Git Message activity bar icon to choose provider, model, output language, commit templates, CLI paths, timeout, and debug logging.
The extension reads staged changes first. If nothing is staged, it falls back to the working tree diff and tells you before generating.
The default prompt follows Conventional Commits: it asks the selected CLI to analyze the diff, choose an accurate type and optional scope, keep the description under 72 characters, add a body only when useful, and mark breaking changes with ! or a BREAKING CHANGE footer.
Common settings:
generateGitMessage.provider:codexorclaude.generateGitMessage.model: Codex model.generateGitMessage.claudeModel: Claude model.generateGitMessage.outputLanguage:en,zh, orzh-Hant(defaults tozh).generateGitMessage.commitTemplateEn: English commit template. Use{{diff}}where the Git diff should be inserted.generateGitMessage.commitTemplateZh: Simplified Chinese commit template. Use{{diff}}where the Git diff should be inserted.generateGitMessage.commitTemplateZhHant: Traditional Chinese commit template. Use{{diff}}where the Git diff should be inserted.generateGitMessage.debugLogging: writes diagnostics to theGenerate Git Messageoutput channel.
CLI settings:
generateGitMessage.codexPath: defaults tocodex.generateGitMessage.claudePath: defaults toclaude.generateGitMessage.timeoutMs: defaults to50000.
- The extension only fills the commit message box. It never commits for you.
- Existing SCM input text is overwritten by the generated message.
- Multi-repository workspaces are supported with a repository picker.
- If the selected CLI is missing, times out, or returns empty output, the SCM input is left unchanged.
npm run package:vsixbuilds a local VSIX file.npm run publish:vscepublishes to the Visual Studio Marketplace.npm run publish:openvsxpublishes to Open VSX, which helps editors like Cursor and some other VS Code forks discover the extension.

