CommitLLM
Privacy by design. You choose the exact AI API endpoint (OpenAI-Compatible: OpenAI, Neuralwatt, Ollama, etc), specify the API key, and you're good to go.
Generate conventional commit messages from staged Git diffs using any OpenAI-compatible API.
Features
- Privacy-focused — No telemetry. Your diffs go only to your chosen endpoint. Use local models for complete privacy.
- One-click commit message generation — Click the sparkle icon in the Source Control panel or press
Ctrl+Shift+Alt+G (Cmd+Shift+Alt+G on Mac)
- Streaming responses — Watch the commit message appear character-by-character in the SCM input box
- Any OpenAI-compatible provider — Works with OpenAI, Neuralwatt, Ollama, LM Studio, Groq, Together AI, and more
- Conventional Commits by default — Follows the
type(scope): description format
- Customizable templates — Choose between conventional, freeform, or write your own prompt
- Secure API key storage — API keys are stored in VSCode's encrypted secret storage
Requirements
- VSCode 1.118.0 or later
- A Git repository open in your workspace
- Staged changes ready to commit
- An API key for your chosen AI provider
Setup
- Install the extension
- Open Settings (
Ctrl+,) and search for "CommitLLM"
- Set your provider's Base URL (default:
https://api.openai.com/v1)
- Set your Model name (default:
gpt-4o)
- Run the command "CommitLLM: Set API Key" and enter your API key
Using Ollama (Local Models)
- Install Ollama and pull a model (e.g.,
ollama pull llama3)
- Start Ollama with the OpenAI-compatible endpoint:
OLLAMA_ORIGINS=* ollama serve
- In CommitLLM settings:
- Base URL:
http://localhost:11434/v1
- Model:
llama3 (or whichever model you pulled)
- API Key: any non-empty string (Ollama doesn't validate it)
Usage
- Stage your changes in Git
- Click the $(git-commit) CommitLLM status bar item, or press
Ctrl+Shift+Alt+G
- The AI-generated commit message streams into the SCM input box
- Edit if needed, then commit as usual
Extension Settings
| Setting |
Default |
Description |
commitllm.baseUrl |
https://api.openai.com/v1 |
API base URL |
commitllm.model |
gpt-4o |
Model name |
commitllm.maxTokens |
4096 |
Max tokens in response |
commitllm.temperature |
0.1 |
Sampling temperature (0–2) |
commitllm.maxDiffLength |
100000 |
Max diff characters to send |
commitllm.timeout |
60 |
Request timeout in seconds |
commitllm.promptTemplate |
conventional |
Message style: conventional, freeform, or custom |
Supported Providers
CommitLLM works with any OpenAI-compatible API. Pre-configured presets include:
| Provider |
Type |
| OpenAI |
Cloud |
| Google Gemini |
Cloud |
| Ollama Cloud |
Cloud |
| OpenCode Go |
Cloud |
| OpenCode Zen |
Cloud |
| Groq |
Cloud |
| Together AI |
Cloud |
| Fireworks FirePass |
Cloud |
| Chutes AI |
Cloud |
| NanoGPT |
Cloud |
| Neuralwatt |
Cloud |
| Ollama (Local) |
Local |
| LM Studio |
Local |
| Custom |
Any endpoint |
Known Issues
- Large diffs are truncated to avoid exceeding context windows
- Requires staged changes; unstaged changes are ignored
Privacy
CommitLLM is designed with privacy as a core principle:
- You control the destination — Diffs are sent only to the API endpoint you configure. We don't intercept, redirect, or store your data.
- No telemetry — The extension itself doesn't collect usage data, metrics, or analytics.
- Local-first option — Use Ollama or LM Studio for complete privacy. Your code never leaves your machine.
Your diff data flows exactly where you specify — nothing more, nothing less.
Release Notes
0.2.0
- Added: Neuralwatt provider — Built-in preset with direct model-list fetching from Neuralwatt's API (bypasses models.dev);
-fast variants auto-disable reasoning
- Fixed: Settings no longer auto-opens on first Generate when the extension is already configured — onboarding only fires for genuinely unconfigured installs
- Fixed: Test button now surfaces real provider errors — typo'd models show "Model 'X' not found" instead of a false "OK"; raw error messages from the provider are shown verbatim
- Fixed: Context display rounds cleanly (e.g.
1M instead of 1.04856M) and updates immediately when clicking a model in the autocomplete dropdown
0.1.0
- Fixed: API key not saved when only the key field is edited — the Save button now enables on key-only changes, preventing the "Test green but Generate 401" cycle after workspace switches
- Fixed: Settings panel no longer auto-opens on every new workspace — removed the stuck
settingsPanelOpen globalState restore logic
- Fixed: Test button now validates auth against the real Generate endpoint — probes
POST /chat/completions instead of GET /models, eliminating false positives
- Fixed: Chosen prompt template now persists correctly across workspace switches
- Added: Friendly error messages with "Open Settings" action for missing/invalid config
- Added: Diagnostic logging to the CommitLLM output channel at generate time
- Refactored: Settings webview split into separate HTML/CSS/JS files — retires template-literal escaping hazards, adds proper CSP
0.0.1
Initial release with:
- OpenAI-compatible API support
- Streaming commit message generation
- Conventional Commits formatting
- Multiple provider support (OpenAI, Ollama, etc.)
License
MIT
| |