|
1 | 1 | # Universal Commit Assistant |
2 | 2 |
|
3 | | -[](https://marketplace.visualstudio.com/items?itemName=gianged.universal-commit-assistant) |
4 | | -[](https://marketplace.visualstudio.com/items?itemName=gianged.universal-commit-assistant) |
5 | | -[](https://marketplace.visualstudio.com/items?itemName=gianged.universal-commit-assistant) |
6 | | - |
7 | | -Universal AI-powered commit message generator supporting multiple providers and languages directly in VS Code. |
8 | | - |
9 | | -## ✨ Features |
10 | | - |
11 | | -- **🤖 Multiple AI Providers**: Support for OpenAI, Anthropic, Gemini, Mistral, DeepSeek, Ollama, LM Studio, and OpenRouter |
12 | | -- **🌍 Multi-Language Support**: Generate commit messages in 8 languages (English, Chinese, Spanish, French, Russian, Japanese, Korean, Vietnamese) |
13 | | -- **⚡ Source Control Integration**: One-click button directly in VS Code's source control panel |
14 | | -- **🎯 Flexible Context**: Choose to include staged changes only or both staged and unstaged changes |
15 | | -- **📝 Multiple Message Styles**: Conventional commits, concise, detailed, or custom prompts |
16 | | -- **🔒 Secure API Key Storage**: API keys are stored securely using VS Code's secret storage |
17 | | -- **🏠 Offline Support**: Works with local models (Ollama, LM Studio) for privacy-conscious users |
18 | | -- **⚙️ Highly Configurable**: Customize temperature, system prompts, token limits, and more |
19 | | -- **🎛️ API Key Management**: Built-in commands to view API key status and clear stored keys |
20 | | -- **📊 Usage Analytics**: Optional usage tracking (no sensitive data collected) |
21 | | - |
22 | | -## 🤖 Supported Providers |
23 | | - |
24 | | -| Provider | Models | Type | Notes | |
25 | | -|----------|--------|------|-------| |
26 | | -| **OpenAI** | GPT-5, GPT-5-mini, GPT-4.1, GPT-4o | Cloud | Latest GPT-5 with enhanced reasoning | |
27 | | -| **Anthropic** | Claude 4 Opus, Claude 4 Sonnet, Claude 3.5 Haiku | Cloud | Claude 4 with extended thinking | |
28 | | -| **Google Gemini** | Gemini 2.5 Flash, Gemini 2.5 Pro, Gemini 2.0 Flash | Cloud | Latest 2.5 series with thinking | |
29 | | -| **Mistral** | Mistral Small Latest, Mistral Large | Cloud | European AI provider | |
30 | | -| **DeepSeek** | deepseek-chat, deepseek-reasoner | Cloud | DeepSeek-V3.1 with thinking mode | |
31 | | -| **Ollama** | Llama 3.2, CodeLlama, Qwen, etc. | Local | Privacy-focused, offline | |
32 | | -| **LM Studio** | Any compatible model | Local | User-managed local server | |
33 | | -| **OpenRouter** | 100+ models | Proxy | Access to multiple providers | |
34 | | - |
35 | | -## 🚀 Installation |
36 | | - |
37 | | -1. **Install from VS Code Marketplace**: |
38 | | - - Open VS Code |
39 | | - - Go to Extensions (`Ctrl+Shift+X`) |
40 | | - - Search for "Universal Commit Assistant" |
41 | | - - Click Install |
42 | | - |
43 | | -2. **Configure your AI provider**: |
44 | | - - Open Settings (`Ctrl+,`) |
45 | | - - Search for "Universal Commit Assistant" |
46 | | - - Select your preferred provider |
47 | | - - Add API key when prompted (for cloud providers) |
48 | | - - For local providers (Ollama/LM Studio), ensure the server is running |
49 | | - |
50 | | -3. **Start using**: |
51 | | - - Make changes to your code |
52 | | - - Click the ✨ button in the Source Control panel |
53 | | - - Let AI generate your commit message! |
54 | | - |
55 | | -## 📖 Usage |
56 | | - |
57 | | -### Basic Usage |
58 | | -1. Make changes to your code |
59 | | -2. Stage your changes (optional - extension works with unstaged changes too) |
60 | | -3. Click the **"Generate Universal Commit Message"** button (✨) in the source control panel |
61 | | -4. Review and edit the generated message if needed |
62 | | -5. Commit your changes |
63 | | - |
64 | | -### Advanced Usage |
65 | | -- **Custom Prompts**: Define your own prompt templates for specific project needs |
66 | | -- **Multi-language**: Generate commit messages in your preferred language |
67 | | -- **Message Styles**: Choose from conventional (with type prefix), concise (short, no prefix), detailed (multi-line), or custom formats |
68 | | -- **Temperature Control**: Adjust AI creativity from deterministic (0) to very creative (2) |
69 | | -- **Provider Switching**: Easily switch between different AI providers based on your needs |
70 | | -- **API Key Management**: Use command palette to view API key status or clear all stored keys |
71 | | -- **Context Control**: Choose to include only staged changes or both staged and unstaged changes |
72 | | - |
73 | | -### Detailed Message Style |
74 | | - |
75 | | -When using the **"detailed"** message style, the extension generates comprehensive multi-line commit messages with: |
76 | | - |
77 | | -- **Structured format** with title, description, and bullet points |
78 | | -- **Detailed explanations** of what was changed and why |
79 | | -- **Bold formatting** for section headers and key points |
80 | | -- **Bullet point summaries** of specific improvements |
81 | | - |
82 | | -**Example output:** |
83 | | -``` |
84 | | -fix: Handle date parsing and display in Excel export |
| 3 | +[📦 VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=gianged.universal-commit-assistant) • [⭐ Rate & Review](https://marketplace.visualstudio.com/items?itemName=gianged.universal-commit-assistant&ssr=false#review-details) • [🐛 Report Issues](https://github.com/gianged/universal-commit-assistant/issues) |
85 | 4 |
|
86 | | -This commit addresses issues with date handling in the Excel export functionality. |
| 5 | +**Stop writing commit messages manually.** Let AI generate perfect commit messages for you instantly, with support for 8 AI providers and 8 languages, directly in VS Code. |
87 | 6 |
|
88 | | -- **Improved Date Parsing:** Introduced a TryParseDate helper method to robustly parse various date string formats |
89 | | -- **Correct Excel Date Formatting:** Modified export logic to explicitly handle DateTime values with "yyyy-mm-dd" format |
90 | | -- **Updated Data Model:** Changed date-related properties from string to DateTime? for better type accuracy |
| 7 | +![Demo GIF placeholder - showing the extension in action] |
91 | 8 |
|
92 | | -These changes improve the reliability and accuracy of date representation in exported reports. |
93 | | -``` |
| 9 | +## Why Universal Commit Assistant? |
| 10 | + |
| 11 | +🚀 **Save Time**: Generate commit messages in seconds instead of minutes |
| 12 | +🎯 **Always Consistent**: Follow conventional commit standards automatically |
| 13 | +🌍 **Your Language**: Support for 8 languages including English, Chinese, Spanish, French, Russian, Japanese, Korean, Vietnamese |
| 14 | +🔒 **Privacy First**: Use local AI models (Ollama, LM Studio) or secure cloud providers |
94 | 15 |
|
95 | | -**To enable:** Go to Settings → Extensions → Universal Commit Assistant → Set "Message Style" to "detailed" |
| 16 | +## Quick Start |
96 | 17 |
|
97 | | -## ⚙️ Configuration |
| 18 | +1. **Install** → Search "Universal Commit Assistant" in VS Code Extensions |
| 19 | +2. **Configure** → Choose your AI provider and add API key (or setup local model) |
| 20 | +3. **Generate** → Click the ✨ button in Source Control panel |
98 | 21 |
|
99 | | -Access settings via `File > Preferences > Settings`, then search for "Universal Commit Assistant": |
| 22 | +That's it! Your commit messages will be professionally written and consistent. |
100 | 23 |
|
101 | | -### Core Settings |
102 | | -- **Provider**: Choose your AI provider (`openai`, `anthropic`, `gemini`, `mistral`, `deepseek`, `ollama`, `lmstudio`, `openrouter`) |
103 | | -- **Include Unstaged**: Whether to include unstaged changes in analysis |
104 | | -- **Message Style**: `conventional` (with type prefix: feat:, fix:), `concise` (short, no prefix), `detailed` (multi-line with explanations), or `custom` |
105 | | -- **Language**: Select from 8 supported languages |
106 | | -- **Temperature**: Control AI creativity (0-2, default: 0.3) |
107 | | -- **Max Tokens**: Maximum length for generated messages (100-500, default: 200) |
| 24 | +## Smart Commit Generation |
108 | 25 |
|
109 | | -### Provider-Specific Settings |
110 | | -Each provider has its own configuration options for models and endpoints: |
| 26 | +- **Context-Aware**: Analyzes your actual code changes to understand what you did |
| 27 | +- **Multiple Styles**: Choose from conventional commits, concise format, or detailed explanations |
| 28 | +- **Flexible Context**: Works with staged changes, unstaged changes, or both |
| 29 | +- **Customizable**: Adjust AI creativity, message length, and add custom prompts |
111 | 30 |
|
112 | | -**Cloud Providers:** |
113 | | -- **OpenAI**: Latest models include gpt-5, gpt-5-mini, gpt-4.1 (specialized coding), gpt-4o-mini (default) |
114 | | -- **Anthropic**: Latest models include claude-4-opus, claude-4-sonnet, claude-3-5-haiku-20241022 (default) |
115 | | -- **Gemini**: Latest models include gemini-2.5-flash, gemini-2.5-pro, gemini-1.5-flash (default) |
116 | | -- **Mistral**: Models include mistral-small-latest (default), mistral-large |
117 | | -- **DeepSeek**: deepseek-chat (default, fast general purpose), deepseek-reasoner (thinking mode for complex tasks) |
118 | | -- **OpenRouter**: Access to 100+ models via proxy service including latest releases |
| 31 | +## AI Provider Options |
119 | 32 |
|
120 | | -**Local Providers:** |
121 | | -- **Ollama**: Default model llama3.2, configurable base URL (default: http://localhost:11434) |
122 | | -- **LM Studio**: Default model llama-3.1-8b-instruct, configurable base URL (default: http://localhost:1234) |
| 33 | +Choose the provider that fits your needs and budget: |
123 | 34 |
|
124 | | -### Command Palette Commands |
125 | | -- `Universal Commit Assistant: Open Settings` - Quick access to extension settings |
126 | | -- `Universal Commit Assistant: Show API Key Status` - View which providers have API keys configured |
127 | | -- `Universal Commit Assistant: Clear All API Keys` - Remove all stored API keys from VS Code secrets |
| 35 | +### ☁️ Cloud Providers (API Key Required) |
| 36 | +| Provider | Best For | Latest Models | |
| 37 | +|----------|----------|---------------| |
| 38 | +| **OpenAI** | General purpose | GPT-5, GPT-4.1, GPT-4o | |
| 39 | +| **Anthropic** | Code understanding | Claude 4 Opus, Claude 4 Sonnet | |
| 40 | +| **Google Gemini** | Fast responses | Gemini 2.5 Flash, Gemini 2.5 Pro | |
| 41 | +| **Mistral** | European compliance | Mistral Small, Mistral Large | |
| 42 | +| **DeepSeek** | Cost-effective | DeepSeek-V3.1 Chat & Reasoner | |
| 43 | +| **OpenRouter** | Access to 100+ models | Meta Llama, Claude, GPT, and more | |
128 | 44 |
|
129 | | -## 🔧 Requirements |
| 45 | +### 🏠 Local Providers (Privacy First) |
| 46 | +| Provider | Best For | Setup | |
| 47 | +|----------|----------|-------| |
| 48 | +| **Ollama** | Complete privacy | Install Ollama + download models | |
| 49 | +| **LM Studio** | Easy local setup | Download LM Studio + any model | |
130 | 50 |
|
131 | | -- **VS Code**: 1.104.0 or higher |
132 | | -- **Git**: Repository with changes to commit |
133 | | -- **API Key**: Required for cloud providers (OpenAI, Anthropic, Gemini, Mistral, DeepSeek, OpenRouter) |
134 | | -- **Local Server**: Required for local providers (Ollama, LM Studio) |
| 51 | +## Configuration Made Simple |
135 | 52 |
|
136 | | -## 🛠️ Development |
| 53 | +Access via `Settings` → `Extensions` → `Universal Commit Assistant`: |
137 | 54 |
|
138 | | -### Setup |
139 | | -```bash |
140 | | -# Clone the repository |
141 | | -git clone https://github.com/gianged/universal-commit-assistant.git |
142 | | -cd universal-commit-assistant |
| 55 | +### Essential Settings |
| 56 | +- **Provider**: Select your preferred AI service |
| 57 | +- **Message Style**: |
| 58 | + - `conventional` → feat: add new feature |
| 59 | + - `concise` → add new feature |
| 60 | + - `detailed` → Multi-line with explanations |
| 61 | + - `custom` → Your own template |
| 62 | +- **Language**: Choose from 8 supported languages |
| 63 | +- **Include Unstaged**: Analyze uncommitted changes too |
143 | 64 |
|
144 | | -# Install dependencies |
145 | | -npm install |
| 65 | +### AI Behavior |
| 66 | +- **Temperature**: Control creativity (0 = consistent, 2 = creative) |
| 67 | +- **Max Tokens**: Message length limit (100-500) |
| 68 | +- **Custom Prompt**: Override default instructions |
146 | 69 |
|
147 | | -# Compile TypeScript |
148 | | -npm run compile |
| 70 | +## Example Outputs |
149 | 71 |
|
150 | | -# Launch Extension Development Host |
151 | | -# Press F5 in VS Code to open Extension Development Host |
152 | | -# Or use Ctrl+Shift+P and run "Debug: Start Debugging" |
| 72 | +**Conventional Style:** |
153 | 73 | ``` |
| 74 | +feat: add user authentication with JWT tokens |
154 | 75 |
|
155 | | -### Available Scripts |
156 | | -```bash |
157 | | -npm run compile # Compile TypeScript |
158 | | -npm run watch # Watch mode for development |
159 | | -npm run package # Build production bundle using webpack |
160 | | -npm run vscode:prepublish # Pre-publish build step |
161 | | -npm run semantic-release # Automated release (CI/CD) |
162 | | -npm run release:dry-run # Test release process |
| 76 | +Implement secure login system with password hashing and session management |
163 | 77 | ``` |
164 | 78 |
|
165 | | -### Project Structure |
| 79 | +**Detailed Style:** |
166 | 80 | ``` |
167 | | -src/ |
168 | | -├── extension.ts # Entry point |
169 | | -├── types/index.ts # TypeScript interfaces |
170 | | -├── providers/ # AI provider implementations |
171 | | -│ ├── baseProvider.ts # Abstract base class |
172 | | -│ ├── aiProviderFactory.ts # Factory pattern |
173 | | -│ └── *Provider.ts # Individual providers |
174 | | -├── services/ # Business logic |
175 | | -│ ├── gitCommitService.ts # Main workflow |
176 | | -│ ├── gitService.ts # Git operations |
177 | | -│ └── secretManager.ts # API key management |
178 | | -└── utils/ |
179 | | - └── configurationManager.ts # Settings management |
| 81 | +feat: implement user authentication system |
| 82 | +
|
| 83 | +This commit introduces a comprehensive authentication system for the application. |
| 84 | +
|
| 85 | +**Key Changes:** |
| 86 | +- Added JWT token-based authentication |
| 87 | +- Implemented password hashing with bcrypt |
| 88 | +- Created user session management |
| 89 | +- Added login/logout endpoints |
| 90 | +
|
| 91 | +**Benefits:** |
| 92 | +- Improves application security |
| 93 | +- Enables user-specific features |
| 94 | +- Follows industry best practices |
180 | 95 | ``` |
181 | 96 |
|
182 | | -## 🤝 Contributing |
| 97 | +## Commands |
183 | 98 |
|
184 | | -We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details. |
| 99 | +Access these via Command Palette (`Ctrl+Shift+P`): |
185 | 100 |
|
186 | | -### Commit Convention |
187 | | -This project uses [Conventional Commits](https://www.conventionalcommits.org/) for automated versioning and changelog generation: |
| 101 | +- **Generate Universal Commit Message** → Main functionality |
| 102 | +- **Show API Key Status** → Check which providers are configured |
| 103 | +- **Clear All API Keys** → Remove stored credentials |
| 104 | +- **Open Settings** → Quick access to configuration |
188 | 105 |
|
189 | | -```bash |
190 | | -feat: add support for new AI provider |
191 | | -fix: resolve temperature validation issue |
192 | | -docs: update installation instructions |
193 | | -``` |
| 106 | +## Multi-Language Support |
194 | 107 |
|
195 | | -### Development Workflow |
196 | | -1. Fork the repository |
197 | | -2. Create a feature branch (`git checkout -b feat/amazing-feature`) |
198 | | -3. Make your changes following the commit convention |
199 | | -4. Push to your branch (`git push origin feat/amazing-feature`) |
200 | | -5. Open a Pull Request |
| 108 | +Generate commit messages in your preferred language: |
| 109 | +- 🇺🇸 English (default) |
| 110 | +- 🇨🇳 Chinese (Simplified) |
| 111 | +- 🇪🇸 Spanish |
| 112 | +- 🇫🇷 French |
| 113 | +- 🇷🇺 Russian |
| 114 | +- 🇯🇵 Japanese |
| 115 | +- 🇰🇷 Korean |
| 116 | +- 🇻🇳 Vietnamese |
201 | 117 |
|
202 | | -## 📄 License |
| 118 | +## Requirements |
203 | 119 |
|
204 | | -This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 120 | +- **VS Code**: Version 1.104.0 or higher |
| 121 | +- **Git Repository**: With changes to commit |
| 122 | +- **AI Provider**: API key (cloud) or running server (local) |
205 | 123 |
|
206 | | -## 🙏 Acknowledgments |
| 124 | +## Privacy & Security |
207 | 125 |
|
208 | | -- Thanks to all AI providers for their excellent APIs |
209 | | -- VS Code team for the robust extension platform |
210 | | -- Contributors and users who make this project better |
| 126 | +- **Secure Storage**: API keys stored in VS Code's encrypted secret storage |
| 127 | +- **No Data Retention**: Your code never leaves your machine with local providers |
| 128 | +- **Optional Analytics**: Usage tracking can be disabled (no sensitive data collected) |
| 129 | +- **Open Source**: Full transparency with MIT license |
211 | 130 |
|
212 | | -## 📊 Release Process |
| 131 | +## Need Help? |
213 | 132 |
|
214 | | -This project uses [semantic-release](https://github.com/semantic-release/semantic-release) for automated versioning and publishing: |
| 133 | +- 📖 **Documentation**: See configuration examples above |
| 134 | +- 🐛 **Issues**: [Report bugs on GitHub](https://github.com/gianged/universal-commit-assistant/issues) |
| 135 | +- 💡 **Feature Requests**: [Suggest improvements](https://github.com/gianged/universal-commit-assistant/issues) |
| 136 | +- ⭐ **Rate & Review**: Help others discover this extension |
215 | 137 |
|
216 | | -- **Commits** trigger automated analysis |
217 | | -- **Versions** are bumped automatically based on commit types |
218 | | -- **Changelog** is generated automatically |
219 | | -- **Publishing** to VS Code Marketplace is automated |
220 | | -- **GitHub Releases** are created automatically |
| 138 | +## License |
| 139 | + |
| 140 | +MIT License - see [LICENSE](LICENSE) file for details. |
221 | 141 |
|
222 | 142 | --- |
223 | 143 |
|
224 | | -**Made with ❤️ for the developer community** |
| 144 | +**Made with ❤️ for developers who value their time** |
| 145 | + |
| 146 | +*Save hours every week on commit messages. Install now and never write another commit message manually.* |
0 commit comments