AutoCommit with AI

🤖 AI-powered automatic git commits - Generate meaningful commit messages using AI.
📦 Install from VS Code Marketplace
✨ What's New in v2.2.0
📁 Commit Whole Directory Feature
- 🗂️ Directory Commit - Right-click any folder in Explorer → "AutoCommit: Commit Directory"
- 🔄 Multi-File Commit - Commits all changed files (staged, unstaged, untracked) in a directory with a single AI-generated message
- 📊 Aggregated Diff - Combines all file changes into one diff for better AI context
- 🤖 Smart Messages - AI generates meaningful commit messages describing all changes
🦙 llama.cpp Integration
- 🏠 Local LLM - Uses llama.cpp server on Build PC for fast, private AI
- 📦 GGUF Model - Supports Gemma 2B quantized model (gemma-2-2b-it-Q4_K_M.gguf)
- ⚡ Provider Priority - local-model (llama.cpp) → Gemini → OpenAI → GitHub Copilot → Template
✨ What's New in v2.1.1
🎯 Custom Editor Support - Office Viewer & Preview Mode
- 📊 Office Viewer Support - Alt+A now works for
.xlsx, .xls, .csv, .docx, .md (preview)
- 🔄 Git Extension API - Auto-detects changes in custom editor files
- 🤖 AI for Binary Files - Generates commit messages using file metadata
- 🗑️ Deleted File Support - Alt+A detects and commits deleted files
- 🔧 Status Bar Fix - No longer stuck on "Auto-pulling..."
✨ What's New in v2.1.0
🚀 Git Push/Pull/Sync Integration
This major release adds comprehensive Git remote operations with intelligent error handling:
- 📤 Push Changes -
Alt+Shift+P to push commits to remote
- 📥 Pull Changes -
Alt+Shift+L to pull from remote
- 🔄 Sync Command - One-click pull + push operation
- ⚠️ Conflict Detection - Line-by-line conflict analysis with exact line numbers
- 🔧 Auto Recovery - Automatic retry after pulling newer commits
- 📊 Status Bar Buttons - Quick access to Push (☁️↑), Pull (☁️↓), Sync (🔄)
🛠️ Additional Features
- 📁 File Delete/Rename Auto-Commit - Automatic commits when files are deleted or renamed
- 🔄 Multi-Repository Support - Auto-detect and work with multiple git repos
- ⏱️ Copilot Timeout Protection - 15s timeout prevents hangs
- 🔒 Concurrent Commit Prevention - File-level locks avoid race conditions
- ⚡ Git Info Caching - 60s cache reduces subprocess calls by 80%
✨ What's New in v2.0.0
- ⌨️ Simple Keybinding -
Alt+A for quick AI commit
- 📊 GZIP Compression - Automatic compression for large diffs (>10KB)
- 🔄 Queue Polling - Async server processing with status tracking
- 📝 Multi-line Commits - Support for commit body/description
- 🔒 Memory Leak Prevention - Comprehensive resource cleanup
- 📁 File Logging - Persistent logs with automatic rotation (5MB, 3 files)
- 🔐 Privacy-Compliant - Only GitHub username collected
- ⚡ Condensed Logging - 80% reduction in log file size
🚀 Quick Start
1. Install the Extension
From Marketplace:
- Open VS Code Extensions (
Ctrl+Shift+X)
- Search "copilot autocommit"
- Click Install
From VSIX:
- Download
copilot-autocommit-2.1.1.vsix
Ctrl+Shift+P → "Extensions: Install from VSIX..."
- Select the downloaded file
Open Settings (Ctrl+,) and search for "autocommit":
{
"autocommit.serverUrl": "http://localhost:5000",
"autocommit.enabled": false
}
Note: The default server URL is pre-configured for your private network. If the server is unavailable, the extension will automatically fall back to GitHub Copilot.
3. Start Using
Manual Commit (Recommended):
- Make changes to your file
- Save with
Ctrl+S
- Press
Alt+A to commit with AI message
Auto-Commit Mode:
- Set
autocommit.enabled: true
- Every save automatically commits with AI message
📋 Commands
| Command |
Keybinding |
Description |
AutoCommit: Commit Current File with AI |
Alt+A |
Commit current file with AI-generated message |
AutoCommit: Commit Directory |
Right-click |
Commit all changes in a folder (Explorer context menu) |
AutoCommit: Push Changes |
Alt+Shift+P |
Push commits to remote repository |
AutoCommit: Pull Changes |
Alt+Shift+L |
Pull changes from remote repository |
AutoCommit: Sync Changes |
- |
Pull then push in one operation |
AutoCommit: Show Menu |
- |
Open options menu |
⚙️ Configuration
| Setting |
Default |
Description |
autocommit.enabled |
false |
Auto-commit on every save |
autocommit.useAI |
true |
Use AI for commit messages |
autocommit.serverUrl |
http://localhost:5000 |
AI server URL |
autocommit.serverTimeout |
60000 |
Server request timeout (ms) |
autocommit.queueTimeout |
120000 |
Queue polling timeout (ms) |
autocommit.autoPush |
false |
Auto-push after commit |
autocommit.autoPull |
false |
Auto-pull before commit |
autocommit.pushBranch |
current |
Branch to push to (current/main/master) |
autocommit.pullBranch |
current |
Branch to pull from (current/main/master) |
autocommit.enableCompression |
true |
GZIP for large diffs |
autocommit.compressionThresholdKB |
10 |
Compression threshold (KB) |
autocommit.logLevel |
info |
Logging level: error, warn, info, debug |
autocommit.enableNotifications |
true |
Show commit notifications |
autocommit.excludePatterns |
[...] |
Files to exclude from auto-commit |
🔌 Provider Architecture
The extension uses a 4-tier fallback system:
┌─────────────────────────────────────────────────────────────┐
│ Alt+A Triggered │
└─────────────────────────┬───────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ Tier 1: llama.cpp (Build PC Server) │
│ • Local Gemma 2B model via llama.cpp │
│ • Fast, private, no API costs │
│ • Server: http://localhost:8080/completion │
└─────────────────────────┬───────────────────────────────────┘
▼ (if unavailable)
┌─────────────────────────────────────────────────────────────┐
│ Tier 2: Cloud APIs (Gemini/OpenAI) │
│ • Google Gemini (free tier available) │
│ • OpenAI GPT-3.5 (paid) │
└─────────────────────────┬───────────────────────────────────┘
▼ (if unavailable)
┌─────────────────────────────────────────────────────────────┐
│ Tier 3: GitHub Copilot (Client-side) │
│ • Uses local Copilot installation │
│ • Requires Copilot subscription │
└─────────────────────────┬───────────────────────────────────┘
▼ (if unavailable)
┌─────────────────────────────────────────────────────────────┐
│ Tier 4: Template Fallback │
│ • Uses configured message template │
│ • Always works - no dependencies │
└─────────────────────────────────────────────────────────────┘
📊 Status Bar
| Icon |
Meaning |
$(git-commit) AutoCommit |
Ready - Click to commit |
$(cloud-upload) Push |
Push commits to remote |
$(cloud-download) Pull |
Pull changes from remote |
$(sync) Sync |
Pull and push together |
$(sync~spin) Processing... |
Operation in progress |
$(check) Success |
Operation completed |
$(warning) Warning |
Minor issue occurred |
$(error) Error |
Operation failed |
🔍 Troubleshooting
No AI Messages Generated
- Check
autocommit.useAI is true in settings
- Verify
autocommit.serverUrl is correct
- Open Output Channel (
View → Output → select "AutoCommit") for errors
Commit Fails
- Ensure file is in a git repository
- Check git user.name and user.email are configured:
git config user.name "Your Name"
git config user.email "your@email.com"
- Check Output Channel for detailed error messages
Extension Not Responding
- Reload VS Code window (
Ctrl+Shift+P → "Reload Window")
- Check for errors in Developer Tools (
Help → Toggle Developer Tools)
📝 Example Commit Messages
Generated by AI:
feat(auth): add JWT token validation middleware
- Implements token verification for protected routes
- Adds automatic token refresh on expiry
- Includes rate limiting per user
fix(api): handle null pointer in user profile endpoint
Adds defensive null check before accessing nested user.profile
object to prevent runtime errors when profile is not initialized.
📁 Log Files
Logs are stored in:
- Windows:
%APPDATA%/autocommit-vscode/autocommit.log
- macOS:
~/Library/Application Support/autocommit-vscode/autocommit.log
- Linux:
~/.config/autocommit-vscode/autocommit.log
Features:
- Automatic rotation at 5MB
- Keeps 3 backup files
- Condensed format option (80% size reduction)
🤝 Contributing
Contributions welcome! Please see our GitHub repository.
📄 License
MIT License - see LICENSE for details.
🙏 Credits
Built with ❤️ by Granite River Labs
Happy Committing! 🚀