BranchScope
A modern, high-performance Git commit graph visualization for VS Code.
Built as an open-source replacement for the abandoned Git Graph extension.
✨ Features
🌳 Interactive Commit Graph
- Canvas-rendered visual graph of your entire Git history
- Smooth bezier, straight, or angular branch lines
- Color-coded branches with persistent lane assignment
- Handles repositories with 10,000+ commits at 60fps
🔍 Smart Search & Filter
- Filter commits by message, author, hash, file, or date range
- Real-time highlighting of matching commits
- "Jump to commit" with hash autocomplete
🏷️ Branch Management
- Show/hide local and remote branches
- Visual branch filter sidebar
- See which branch is currently checked out
📋 Commit Details
- Click any commit to see full details
- View changed files, diff stats, and inline diffs
- Copy commit hash with one click
⚡ Git Operations (Right-Click)
- Checkout any commit or branch
- Create branch from any point in history
- Cherry-pick commits
- Revert commits
- Reset (soft / mixed / hard)
- View on GitHub/GitLab/Bitbucket (auto-detects remote)
🎨 Native VS Code Feel
- Automatically adapts to your dark or light theme
- Uses VS Code fonts, colors, and UI patterns
- Keyboard shortcut:
Ctrl+Shift+G / Cmd+Shift+G
- Virtual scrolling — only renders what's visible
- Lazy loading — fetches commits as you scroll
- High-DPI display support for crisp rendering on Retina screens
📦 Installation
From VS Code Marketplace
- Open Extensions view (
Ctrl+Shift+X / Cmd+Shift+X)
- Search for "BranchScope"
- Click Install
From VSIX
# Download the latest .vsix from Releases
code --install-extension branchscope-x.x.x.vsix
From Source
git clone https://github.com/NIHAR-SARKAR/branchscope.git
cd branchscope
npm install
npm run build
# Press F5 in VS Code to launch Extension Development Host
🚀 Usage
Open the Graph
- Command Palette:
Ctrl+Shift+P → "BranchScope: Open Graph"
- Keyboard Shortcut:
Ctrl+Shift+G / Cmd+Shift+G
- Source Control Panel: Click the BranchScope icon in the SCM title bar
Navigate the Graph
- Scroll to move through history
- Click a commit to select it and view details
- Double-click a commit to checkout immediately
- Shift+click a second commit to select a range for comparison
- Ctrl/Cmd + scroll to zoom in and out
- Middle-drag to pan the canvas
Interact with Commits
- Right-click any commit dot to access the full context menu:
- Checkout, create branch, cherry-pick, revert, reset
- Copy hash, view on remote, compare with previous
Search & Filter
- Type in the top search bar to filter commits in real time
- Toggle branch visibility in the left sidebar
⚙️ Settings
| Setting |
Default |
Description |
branchscope.defaultShowRemoteBranches |
true |
Show remote branches when opening the graph |
branchscope.dateFormat |
"relative" |
Date format: relative, iso, or short |
branchscope.graphStyle |
"bezier" |
Branch line style: bezier, straight, or angular |
branchscope.commitLimit |
500 |
Number of commits to load initially |
branchscope.zoomLevel |
1.0 |
Default zoom level (0.5 to 2.0) |
Open settings with Ctrl+, and search for "BranchScope".
🖼️ Screenshots
Main graph view with branch lanes and commit details
Right-click context menu with Git operations
Search and branch filtering
🛠️ Requirements
- VS Code 1.85.0 or later
- Git installed and available in your system PATH
- A Git repository opened in your workspace
🤝 Contributing
Contributions are welcome! Here's how to get started:
# 1. Fork and clone
git clone https://github.com/NIHAR-SARKAR/branchscope.git
cd branchscope
# 2. Install dependencies
npm install
# 3. Run tests
npm test
# 4. Start development
npm run watch
# Press F5 in VS Code to launch the Extension Development Host
Development Guidelines
- Follow the existing TypeScript strict mode configuration
- Write tests for any new parser or layout logic
- Keep the Canvas renderer lean — no heavy DOM operations
- Ensure VS Code theme compatibility for all UI colors
Reporting Issues
Found a bug or have a feature request? Open an issue and include:
- VS Code version
- Git version (
git --version)
- Steps to reproduce
- Screenshots (if applicable)
📋 Roadmap
- [x] Interactive canvas-based commit graph
- [x] Right-click Git operations
- [x] Search and filter
- [x] Branch show/hide
- [x] Virtual scrolling & lazy loading
- [ ] Commit range comparison with diff view
- [ ] File history mode (
git log --follow)
- [ ] Stash visualization
- [ ] Tag management (add, delete, annotate)
- [ ] Merge conflict preview
- [ ] Export graph as PNG/SVG
- [ ] Custom color palettes
📄 License
MIT © BranchScope Contributors
🙏 Acknowledgements
BranchScope was inspired by the community need for a modern, open-source Git graph viewer after the original Git Graph extension was discontinued. Built with gratitude for the open-source community.
Note: BranchScope is a completely independent implementation. It does not share code with the original Git Graph extension.