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 — not in settings.json.
- Run Nuvo Commit: Set API Key.
- Paste your key into the masked input (leave it empty to clear a stored 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
Configure 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.endpoint |
Ollama URL |
API endpoint. Leave empty for cloud providers to use their defaults. |
nuvoCommit.requestTimeoutMs |
30000 |
Milliseconds to wait for a provider response before aborting. |
nuvoCommit.model |
qwen3:4b |
Model identifier passed to the provider. |
The deprecated nuvoCommit.apiKey setting is kept only for one-time migration —
use the Set API Key command instead.
Example configurations
Ollama (local):
{
"nuvoCommit.provider": "ollama",
"nuvoCommit.endpoint": "http://localhost:11434/api/generate",
"nuvoCommit.model": "qwen3:4b"
}
OpenAI (cloud): set the key via Nuvo Commit: Set API Key, then:
{
"nuvoCommit.provider": "openai",
"nuvoCommit.endpoint": "",
"nuvoCommit.model": "gpt-4o-mini"
}
Anthropic (cloud): set the key via Nuvo Commit: Set API Key, then:
{
"nuvoCommit.provider": "anthropic",
"nuvoCommit.endpoint": "",
"nuvoCommit.model": "claude-3-5-sonnet-20241022"
}
Custom OpenAI-compatible endpoint:
{
"nuvoCommit.provider": "openai",
"nuvoCommit.endpoint": "http://localhost:1234/v1/chat/completions",
"nuvoCommit.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