✨ Features
- 🤯 Generate commit messages from staged diffs or a combined unstaged diff that now includes untracked files and handles binary reads safely.
- 🧠 Include branch name and recent commits (when enabled) in the AI prompt for richer context.
- 🗺️ Support multi-language commit messages.
- 😜 Support adding Gitmoji.
- 🛠️ Support custom system prompt.
- 📝 Support Conventional Commits 2.0.0 (optimized for AI workflows).
📦 Installation
- Search for "AI Commit" in VSCode and click the "Install" button.
- Install it directly from the Visual Studio Code Marketplace.
Note
Make sure your node version >= 16
🤯 Usage
- Ensure that you have installed and enabled the "AI Commit" extension.
- In VSCode settings, locate the "ai-commit" configuration options and configure them as needed.
- Make changes in your project and add the changes to the staging area (git add).
- (Optional) If you want to provide additional context for the commit message, type it in the Source Control panel's message input box before clicking the AI Commit button.
- Next to the commit message input box in the "Source Control" panel, click the "AI Commit" icon button. After clicking, the extension will generate a commit message (considering any additional context if provided as well as branch and recent commits context) and populate it in the input box. You can commit either staged changes or rely on the unstaged/working copy diff that now includes untracked files.
- Review the generated commit message, and if you are satisfied, proceed to commit your changes.
Note
If the code exceeds the maximum token length, consider adding it to the staging area in batches.
⚙️ Configuration
Note Use USE_GITMOJI to toggle Gitmoji output. To fully customize the behaviour, provide SYSTEM_PROMPT (see prompt/with_gitmoji.md and prompt/without_gitmoji.md).
In the VSCode settings, locate the "ai-commit" configuration options and configure them as needed:
| Configuration |
Type |
Default |
Required |
Notes |
| AI_PROVIDER |
string |
openai |
Yes |
Select AI provider: openai, gemini, or poe. Azure OpenAI also uses openai. |
| OPENAI_API_KEY |
string |
None |
Conditional |
Required when AI_PROVIDER is openai (OpenAI or Azure). Get a key. |
| OPENAI_BASE_URL |
string |
None |
Optional |
Set when using Azure OpenAI or a custom endpoint, e.g. https://{resource}.openai.azure.com/openai/deployments/{model}. |
| OPENAI_MODEL |
string |
gpt-4o |
Optional |
Change via the Show Available OpenAI Models command. |
| AZURE_API_VERSION |
string |
None |
Conditional |
Required only when OPENAI_BASE_URL targets Azure OpenAI. |
| OPENAI_TEMPERATURE |
number |
0.7 |
Optional |
Controls randomness (0-2). Lower values are more deterministic; higher values are more creative. |
| GEMINI_API_KEY |
string |
None |
Conditional |
Required when AI_PROVIDER is gemini. Get a key. |
| GEMINI_MODEL |
string |
gemini-2.0-flash-001 |
Optional |
Gemini model selection is currently configuration-only. |
| GEMINI_TEMPERATURE |
number |
0.7 |
Optional |
Controls randomness (0-2). Lower values are more focused; higher values are more creative. |
| POE_API_KEY |
string |
None |
Conditional |
Required when AI_PROVIDER is poe. Get a key. |
| POE_MODEL |
string |
Claude-Sonnet-4.5 |
Optional |
Select via the Show Available Poe Models command after authenticating. |
| POE_TEMPERATURE |
number |
0.7 |
Optional |
Controls randomness (0-2) for Poe chats. |
| REASONING_MODE |
string |
balanced |
Optional |
Single control for all providers: auto, fast, balanced, deep. Overrides map to provider-specific knobs. |
| AI_COMMIT_LANGUAGE |
string |
English |
Optional |
Supports 19 languages (see setting for the full list). |
| USE_GITMOJI |
boolean |
true |
Optional |
Include Gitmoji in generated commit messages. Set to false to disable. |
| AI_COMMIT_SYSTEM_PROMPT |
string |
None |
Optional |
Override the default prompt; leave blank to use the built-in template. |
| AI_COMMIT_SYSTEM_APPEND |
string |
None |
Optional |
Additional text to append to the system prompt for generating commit messages. |
| ENABLE_RECENT_COMMITS_CONTEXT | boolean | true | Optional | Include a short list of recent commits in the AI prompt. Disable to keep prompts focused on the current diff only. |
⌨️ Local Development
You can use Github Codespaces for online development:

Alternatively, you can clone the repository and run the following commands for local development:
$ git clone https://github.com/bermudi/ai-commit-bermudi.git
$ cd ai-commit-bermudi
$ pnpm install
$ pnpm package
Fork built with ⚡ esbuild for blazing fast builds.
🤝 Contributing
Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub Issues to get stuck in to show us what you’re made of.

💗 All Thanks To Our Contributors

🔗 Links
Credits
📝 License
This project is MIT licensed.
--- END OF FILE README.md ---