BranchNotes
AI-powered branch change summaries using GitHub Copilot
BranchNotes is a VS Code extension that automatically generates intelligent summaries of your Git branch changes using GitHub Copilot's AI capabilities. Get instant insights into what you've changed, why, and how your code has evolved.
✨ Features
- 🤖 AI-Powered Summaries: Uses GitHub Copilot to generate human-readable summaries of your branch changes
- 📊 Real-time Updates: Automatically refreshes when you make file changes
- 🔍 Detailed Analysis: Shows file-by-file changes with additions/deletions
- 💾 Smart Caching: Caches summaries to avoid redundant AI requests
- ⚙️ Configurable: Customize summary detail level, file exclusions, and refresh behavior
- 🌳 Tree View: Clean, organized display in the Source Control panel
🚀 Getting Started
Prerequisites
- GitHub Copilot: This extension requires GitHub Copilot to be installed and authenticated
- Git Repository: Must be working in a Git repository
- VS Code: Version 1.85.0 or higher
Installation
- Install from VS Code Marketplace (coming soon)
- Or install from VSIX:
code --install-extension branchnotes-1.0.0.vsix
Quick Start
- Open a Git repository in VS Code
- Switch to a feature branch (not main/master)
- Look for "Branch Notes" in the Source Control panel
- Click "Generate Summary" or wait for automatic generation
📋 Usage
Automatic Mode
- BranchNotes automatically detects when you're on a feature branch
- Generates summaries when files change (configurable debounce)
- Updates in real-time as you work
Manual Mode
- Use Command Palette:
BranchNotes: Generate Branch Summary
- Click refresh button in the Branch Notes panel
- Right-click in Source Control panel
Viewing Summaries
- Overview: High-level summary of all changes
- Statistics: File counts, additions, deletions
- File Details: Click on files to open and see specific changes
⚙️ Configuration
{
"branchnotes.enabled": true,
"branchnotes.baseBranch": "main",
"branchnotes.autoRefresh": true,
"branchnotes.summaryLevel": "detailed",
"branchnotes.maxFilesPerSummary": 20,
"branchnotes.excludePatterns": [
"node_modules/**",
"*.lock",
"dist/**",
"build/**"
],
"branchnotes.debounceMs": 2000
}
Configuration Options
Setting |
Description |
Default |
enabled |
Enable automatic branch notes generation |
true |
baseBranch |
Default base branch to compare against |
"main" |
autoRefresh |
Automatically refresh notes when files change |
true |
summaryLevel |
Level of detail: brief , detailed , comprehensive |
"detailed" |
maxFilesPerSummary |
Maximum files to include in a single summary |
20 |
excludePatterns |
File patterns to exclude from analysis |
See above |
debounceMs |
Debounce time for file change detection |
2000 |
🎯 Use Cases
Code Reviews
- Generate summaries for pull request descriptions
- Understand changes before reviewing
- Get context on large refactoring changes
Daily Standups
- Quick overview of what you accomplished
- Share progress with your team
- Identify completed features
Documentation
- Automatically document feature development
- Track evolution of code changes
- Maintain change logs
Learning & Development
- Understand what changed in unfamiliar codebases
- Learn from AI-generated explanations
- Review your own coding patterns
🔧 Commands
Command |
Description |
branchnotes.generateSummary |
Generate branch summary |
branchnotes.refreshSummary |
Refresh current summary |
branchnotes.clearCache |
Clear cached summaries |
branchnotes.showSettings |
Open BranchNotes settings |
🐛 Troubleshooting
Common Issues
"No language models available"
- Ensure GitHub Copilot is installed and authenticated
- Check that you have an active Copilot subscription
"Not a Git repository"
- Make sure you're in a Git repository
- Initialize Git with
git init
if needed
"No changes found"
- Switch to a feature branch (not main/master)
- Make sure you have uncommitted or committed changes
Summaries not updating
- Check if
autoRefresh
is enabled
- Try manually refreshing with the refresh button
- Clear cache if summaries seem stale
- Use
excludePatterns
to skip large generated files
- Adjust
debounceMs
to reduce frequency of updates
- Set
summaryLevel
to brief
for faster generation
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
# Clone the repository
git clone https://github.com/sudeepghosh/branchnotes.git
cd branchnotes
# Install dependencies
npm install
# Open in VS Code
code .
# Press F5 to run extension in development mode
📝 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
- Built with VS Code Extension API
- Powered by GitHub Copilot
- Inspired by the need for better code change understanding
Happy coding with BranchNotes! 🚀