# Generate Commit Messages
Generate descriptive commit messages automatically based on your staged git changes. Kilo Code analyzes your staged files and creates conventional commit messages that follow best practices.
:::info
This feature only analyzes **staged changes**. Make sure to stage your files using `git add` or via `VS Code` interface before generating commit messages.
:::
## How It Works
The git commit message generator:
- Analyzes only your **staged changes** (not unstaged or untracked files)
- Uses AI to understand the context and purpose of your changes
- Creates descriptive commit messages that explain what was changed and why following the [Conventional Commits](https://www.conventionalcommits.org/) (by default, customizable)
## Using the Feature
### Generating a Commit Message
1. Stage your changes using `git add` or the VS Code git interface
2. In the VS Code Source Control panel, look for the `Kilo Code` logo next to the commit message field
3. Click the logo to generate a commit message
The generated message will appear in the commit message field, ready for you to review and modify if needed.
### Conventional Commit Format
By default, generated messages follow the Conventional Commits specification:
```
():
```
Common types include:
- `feat`: New features
- `fix`: Bug fixes
- `docs`: Documentation changes
- `style`: Code style changes (formatting, etc.)
- `refactor`: Code refactoring
- `test`: Adding or updating tests
- `chore`: Maintenance tasks
## Configuration
### Customizing the Commit Template
You can customize how commit messages are generated by modifying the prompt template:
1. Open Settings by clicking the gear icon → `Prompts`
2. Find the "Commit Message Generation" section
3. Edit the `Prompt` template to match your project's conventions
The default template creates conventional commit messages, but you can modify it to:
- Use different commit message formats
- Include specific information relevant to your project
- Follow your team's commit message conventions
- Add custom instructions for the AI
### API Configuration
You can configure which API profile to use for commit message generation:
1. In the `Prompts` settings, scroll to "API Configuration"
2. Select a specific profile or use the currently selected one
:::tip
Consider creating a dedicated [API configuration profile](/features/api-configuration-profiles) with a faster, more cost-effective model specifically for commit message generation.
:::
## Best Practices
### Staging Strategy
- Stage related changes together for more coherent commit messages
- Avoid staging unrelated changes in a single commit
- Use `git add -p` for partial file staging when needed
### Message Review
- Always review generated messages before committing
- Edit messages to add context the AI might have missed
- Ensure the message accurately describes the changes
### Custom Templates
- Tailor the prompt template to your project's needs
- Include project-specific terminology or conventions
- Add instructions for handling specific types of changes
## Example Generated Messages
Here are examples of messages the feature might generate:
```
feat(auth): add OAuth2 integration with Google
Implement Google OAuth2 authentication flow including:
- OAuth2 client configuration
- User profile retrieval
- Token refresh mechanism
```
```
fix(api): resolve race condition in user data fetching
Add proper error handling and retry logic to prevent
concurrent requests from causing data inconsistency
```
```
docs(readme): update installation instructions
Add missing dependency requirements and clarify
setup steps for new contributors
```
## Troubleshooting
### No Staged Changes
If the button doesn't appear or generation fails, ensure you have staged changes:
```bash
git add
# or stage all changes
git add .
```
### Poor Message Quality
If generated messages aren't helpful:
- Review your staging strategy - don't stage unrelated changes together
- Customize the prompt template with more specific instructions
- Try a different AI model through API configuration
### Integration Issues
The feature integrates with VS Code's built-in git functionality. If you encounter issues:
- Ensure your repository is properly initialized
- Check that VS Code can access your git repository
- Verify git is installed and accessible from VS Code
## Related Features
- [API Configuration Profiles](/features/api-configuration-profiles) - Use different models for commit generation
- [Settings Management](/features/settings-management) - Manage all your Kilo Code preferences