StagedCraft AI
English | 中文 | Privacy Policy
Generate Conventional Commit messages from all uncommitted Git changes using cloud or local LLM providers. The result is written into the Git commit input box and copied to the clipboard.
Default format:
type(scope): description
Example:
fix(rtc): sync room leave state on exit
How to use
- Open a Git repository in VS Code.
- Review the changes you want to describe. Staged, unstaged, and untracked text files are included automatically; ignored and binary files are excluded.
- Configure the LLM provider and model, then run
StagedCraft AI: Set API Key for providers that require authentication.
- Click the StagedCraft AI button at the top of the Source Control panel, or run
StagedCraft AI: Generate Commit Message from the Command Palette.
- Review the message in the Git commit input box, then commit with your usual workflow.
The extension also copies the message to the clipboard. It never runs git commit or changes the staging area. Existing commit input is replaced without a prompt. If the input changes while the LLM request is running, the extension leaves the newer text untouched and skips copying the generated result.
Localization
The extension UI and runtime messages follow the VS Code display language. Generated commit descriptions use the same language by default. Supported languages:
- English
- Simplified Chinese, Traditional Chinese
- Japanese, Korean
- Spanish, French, German
- Portuguese (Brazil), Russian
Use Configure Display Language from the Command Palette, install or select a language pack, then reload when prompted. Unsupported display languages fall back to English.
To keep the UI language and commit description language separate, set aiCommit.commitLanguage. The default auto follows the VS Code display language. An explicit value only affects the commit description, not settings, commands, or notifications. For example, with an English UI and zh-cn, descriptions are generated in Simplified Chinese.
Output always keeps the type(scope): description shape; type and scope stay English identifiers, and only the description follows the selected commit language.
Configuration
| Setting |
Required |
Description |
aiCommit.provider |
Yes |
AI provider used to generate commit messages. Default: openai-compatible |
aiCommit.baseUrl |
Depends on provider |
Optional API base URL. Leave empty to use the preset endpoint; required for Azure OpenAI |
aiCommit.model |
Yes |
Model ID used for generation, or the Azure OpenAI deployment name |
aiCommit.commitLanguage |
No |
Commit description language. Default: auto; type and scope remain in English |
Provider, Base URL, and model are machine-scoped settings, so workspace configuration cannot redirect authenticated requests. Commit language remains a window-scoped setting and may be configured per workspace.
API key management
Select the target provider, then run StagedCraft AI: Set API Key from the Command Palette. The input is masked and the key is stored separately for each provider in VS Code SecretStorage. Run StagedCraft AI: Clear API Key to remove the key for the currently selected provider.
Cloud providers require a stored key. Ollama and LM Studio only need one when the local server enables Bearer authentication. If a required key is missing when you generate a message, the error notification provides a direct action to store it securely.
Provider presets
| Provider |
Value |
Default Base URL |
API Key |
Protocol |
| Anthropic |
anthropic |
https://api.anthropic.com |
Required |
Messages |
| OpenAI |
openai |
https://api.openai.com/v1 |
Required |
Chat Completions |
| OpenAI Compatible |
openai-compatible |
https://api.openai.com/v1 |
Required |
Chat Completions |
| Google Gemini |
gemini |
https://generativelanguage.googleapis.com/v1beta |
Required |
Generate Content |
| Azure OpenAI |
azure-openai |
None; you must set the resource URL |
Required |
Chat Completions |
| DeepSeek |
deepseek |
https://api.deepseek.com |
Required |
Chat Completions |
| OpenRouter |
openrouter |
https://openrouter.ai/api/v1 |
Required |
Chat Completions |
| Groq |
groq |
https://api.groq.com/openai/v1 |
Required |
Chat Completions |
| xAI |
xai |
https://api.x.ai/v1 |
Required |
Chat Completions |
| Mistral AI |
mistral |
https://api.mistral.ai/v1 |
Required |
Chat Completions |
| Together AI |
together |
https://api.together.xyz/v1 |
Required |
Chat Completions |
| Ollama |
ollama |
http://localhost:11434/v1 |
Optional |
Chat Completions |
| LM Studio |
lm-studio |
http://localhost:1234/v1 |
Optional |
Chat Completions |
Model names are managed by each provider and may change. This extension does not ship a default model. Use a model id available on your account.
Configuration examples
OpenAI Compatible works with any service that implements POST {baseUrl}/chat/completions:
{
"aiCommit.provider": "openai-compatible",
"aiCommit.baseUrl": "https://llm.example.com/v1",
"aiCommit.model": "YOUR_MODEL_ID"
}
Anthropic:
{
"aiCommit.provider": "anthropic",
"aiCommit.model": "YOUR_CLAUDE_MODEL_ID"
}
Google Gemini:
{
"aiCommit.provider": "gemini",
"aiCommit.model": "YOUR_GEMINI_MODEL_ID"
}
For Azure OpenAI, Base URL must point at the resource OpenAI v1 endpoint, and model is the deployment name:
{
"aiCommit.provider": "azure-openai",
"aiCommit.baseUrl": "https://YOUR_RESOURCE.openai.azure.com/openai/v1",
"aiCommit.model": "YOUR_DEPLOYMENT_NAME"
}
Ollama connects to a local service by default and does not require an API key:
{
"aiCommit.provider": "ollama",
"aiCommit.model": "YOUR_LOCAL_MODEL"
}
LM Studio works the same way with provider lm-studio. If a local server requires a Bearer token, select that provider and run StagedCraft AI: Set API Key.
A user-configured aiCommit.baseUrl always overrides the preset URL, which is useful for enterprise proxies, private deployments, or compatible gateways.
Commit language example
Keep the VS Code UI language unchanged while asking the LLM for Simplified Chinese descriptions:
{
"aiCommit.commitLanguage": "zh-cn"
}
Allowed values: auto, en, zh-cn, zh-tw, ja, ko, es, fr, de, pt-br, and ru. Workspace settings follow normal VS Code precedence and can override User settings.
Data and credential safety
See the StagedCraft AI Privacy Policy for complete data-processing and third-party provider disclosures.
Running the command sends the full diff for staged, unstaged, and untracked text changes, together with the system prompt and model id, to the final request URL of the selected provider. Ignored and binary files are excluded. Use this only when allowed by your organization policy, and make sure the Base URL and its operator are trusted.
- API keys are stored per provider in VS Code SecretStorage, are not written to
settings.json, and are not synchronized.
- The extension does not log API keys, Git diffs, request bodies, or raw provider responses.
- Default HTTP endpoints for Ollama and LM Studio point at
localhost only. Do not send sensitive diffs to untrusted remote cleartext HTTP URLs.
- A custom Base URL receives the full included Git diff; the extension cannot verify whether a proxy stores or forwards that data.
MVP limitations
- One repository at a time; in multi-root workspaces the active editor's folder is preferred.
- Non-streaming text generation only; no retries, failover, custom prompts, or custom commit formats.
- Large diffs are not truncated or summarized; requests may fail when Git buffers or model context limits are exceeded.
- Git diff and provider requests time out after 30 seconds.
- Only the single-line Conventional Commit structure is validated; semantics and description language still need human review.
- Amazon Bedrock SigV4, Google Vertex AI OAuth, and cloud workload identity are not supported yet.