Nuvo Commit
Write commits, not novels. Local-first AI commit message generator.

Features
- 🤖 Multi-Provider Support: Choose from Ollama (local), OpenAI, or Anthropic
- 🔒 Local-First: Run entirely on your machine via Ollama — no cloud APIs required
- ☁️ Cloud Options: Use OpenAI or Anthropic Claude for higher-quality results
- 🔑 Secure Keys: Cloud API keys are stored in VS Code's encrypted secret storage
- 🚀 Fast: Quick commit message generation without leaving VS Code
- ⚙️ Customizable: Configure models, endpoints, timeouts, and behavior
- 📋 Auto Model Detection: Automatically list available models from your provider
Requirements
Installation
- Install the extension from the
VS Code Marketplace.
- Choose your provider:
- Local (recommended): install Ollama (
brew install ollama on macOS, or see
ollama.ai).
- Cloud: get an API key from OpenAI or Anthropic.
- Configure the extension (see Configuration).
- Start generating commit messages!
Usage
- Stage your changes (
git add .). If nothing is staged, Nuvo Commit falls back
to your working-directory changes.
- Open the Command Palette (
Cmd+Shift+P / Ctrl+Shift+P).
- Run Nuvo Commit: Generate Commit Message.
- Review and accept the suggested message.
Selecting a model
- Run Nuvo Commit: Select Model.
- Pick from the discovered models, or choose "Enter manually…".
- The selection is saved to your settings.
Tip: For Ollama, the model list is fetched automatically from your local instance.
Setting an API key (cloud providers)
API keys are stored securely per cloud provider — not in settings.json.
- Run Nuvo Commit: Set API Key.
- If Ollama is active, choose OpenAI or Anthropic.
- Paste your key into the masked input (leave it empty to clear that provider's key).
If you previously set nuvoCommit.apiKey in settings, it is migrated into secure
storage automatically and removed from settings.json on first activation.
Configuration
Run Nuvo Commit: Settings to configure only the selected provider's model,
endpoint, and API key. Provider-specific settings are also available in VS Code
Settings (Cmd+,) under Nuvo Commit:
| Setting |
Default |
Description |
nuvoCommit.autoAccept |
true |
Skip the approval dialog and fill the commit message directly. |
nuvoCommit.autoCommit |
false |
Run git commit automatically after accepting. |
nuvoCommit.maxDiffChars |
12000 |
Maximum diff characters sent to the model; larger diffs are truncated. |
nuvoCommit.provider |
ollama |
AI provider: ollama, openai, or anthropic. |
nuvoCommit.ollama.endpoint |
Ollama URL |
Ollama API endpoint. |
nuvoCommit.ollama.model |
qwen3:4b |
Ollama model identifier. |
nuvoCommit.openai.endpoint |
"" |
OpenAI endpoint. Leave empty to use the default OpenAI endpoint. |
nuvoCommit.openai.model |
gpt-4o-mini |
OpenAI model identifier. |
nuvoCommit.anthropic.endpoint |
"" |
Anthropic endpoint. Leave empty to use the default Anthropic endpoint. |
nuvoCommit.anthropic.model |
claude-3-5-sonnet-20241022 |
Anthropic model identifier. |
nuvoCommit.requestTimeoutMs |
30000 |
Milliseconds to wait for a provider response before aborting. |
Deprecated fallback settings nuvoCommit.apiKey, nuvoCommit.endpoint, and
nuvoCommit.model are kept for upgrades. New configurations should use the
provider-specific settings above.
Example configurations
Ollama (local):
{
"nuvoCommit.provider": "ollama",
"nuvoCommit.ollama.endpoint": "http://localhost:11434/api/generate",
"nuvoCommit.ollama.model": "qwen3:4b"
}
OpenAI (cloud): set the key via Nuvo Commit: Set API Key, then:
{
"nuvoCommit.provider": "openai",
"nuvoCommit.openai.endpoint": "",
"nuvoCommit.openai.model": "gpt-4o-mini"
}
Anthropic (cloud): set the key via Nuvo Commit: Set API Key, then:
{
"nuvoCommit.provider": "anthropic",
"nuvoCommit.anthropic.endpoint": "",
"nuvoCommit.anthropic.model": "claude-3-5-sonnet-20241022"
}
Custom OpenAI-compatible endpoint:
{
"nuvoCommit.provider": "openai",
"nuvoCommit.openai.endpoint": "http://localhost:1234/v1/chat/completions",
"nuvoCommit.openai.model": "local-model"
}
Development
npm install # Install dependencies
npm run compile # Compile TypeScript
npm run watch # Compile in watch mode
npm run lint # Lint sources
npm run format # Format with Prettier
npm run test:unit # Run Jest unit tests
npm run test:coverage # Run unit tests with coverage
Debugging
- Open the project in VS Code.
- Press F5 to launch the extension in a new Extension Development Host window.
Testing
See TESTING.md for detailed testing instructions.
Publishing
See PUBLISHING.md for the release and publishing guide.
Changelog
See CHANGELOG.md.
License
MIT