Skip to content

CanarysAutomations/git-blame-hover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Git Blame Hover

Git blame, exactly when you want it - nowhere else.

Hover over any line of code and instantly see who changed it, when, and why. No gutters. No sidebars. No noise.

✨ Why Git Blame Hover?

Most Git extensions try to turn VS Code into a Git dashboard. Git Blame Hover does one thing β€” and does it quietly.

  • Shows blame only on hover
  • Zero visual clutter
  • Lightweight & fast
  • Works with GitHub, GitLab, Azure Repos, Bitbucket
  • Ideal for large repos & enterprise codebases

πŸ–±οΈ How it works

Just hover your mouse over a line of code.

You’ll see:

  • Author name
  • Commit date
  • Commit message (the β€œwhy”)
  • Commit hash

Move away β†’ it disappears.

That’s it.

🧠 When should you use Git Blame Hover?

Use this extension if you:

  • Only want Git blame when you ask for it
  • Don’t want gutter annotations or overlays
  • Prefer minimal tooling during code reviews
  • Already disabled most GitLens features
  • Work in large or performance-sensitive repositories

πŸš€ Performance-first by design

  • No background Git scans
  • Blame runs only on hover
  • Cached per file & commit
  • No telemetry
  • No network calls
  • Works fully offline

Built to be safe for monorepos and enterprise environments.

πŸ” Enterprise-friendly

  • No data collection
  • No external services
  • Uses local Git only
  • Predictable behavior Safe for locked-down environments.

git-blame-hover-in-action

πŸš€ Advanced git blame with hover tooltips, inline annotations, heat maps, and comprehensive analytics - instant blame information with zero configuration

🎯 What Makes This Different?

Unlike other git blame extensions that clutter your status bar or add inline annotations, Git Blame Hover provides blame information exactly when and where you need it - on hover.

Git Blame Hover ✨ Other Extensions πŸ˜‘
🎯 Hover-based - Info appears only when needed πŸ“Š Status bar clutter - Always visible
🚫 Zero UI clutter - No persistent visual elements πŸ“ Inline annotations - Text everywhere
⚑ Performance optimized - Smart caching & debouncing 🐌 Continuous processing - CPU intensive
🎨 Smart tooltips - Rich formatting with emojis πŸ“‹ Plain text - Basic information
βš™οΈ Fully configurable - Show exactly what you want πŸ”’ Fixed format - Limited customization

✨ Key Features

🎯 Advanced Hover Tooltips

  • Rich markdown tooltips: Detailed blame info with clickable commit links
  • Author avatars: Gravatar integration for visual author identification
  • Platform detection: Direct links to GitHub, GitLab, Bitbucket, Azure Repos
  • File context: Shows file path, line numbers, and commit statistics
  • Error handling: Clear, user-friendly error messages with helpful suggestions

πŸ“ Inline Annotations (Optional)

  • End-of-line annotations: Subtle blame info at line endings
  • Customizable format: Configure what information to show inline
  • Performance aware: Only renders visible lines
  • Toggleable: Enable/disable per preference

πŸ—ΊοΈ Visual Heat Maps

  • Code age visualization: Color-coded lines based on commit age
  • Hot spots identification: Quickly spot frequently changed areas
  • Configurable colors: Customize heat map appearance
  • Performance optimized: Efficient rendering for large files

πŸ“Š Author Analytics & Statistics

  • File contribution stats: See who contributed what percentage
  • Author activity maps: Understand team collaboration patterns
  • Timeline analysis: Oldest and newest commits per file
  • Line ownership: Detailed breakdown by author

⚑ Performance & Caching

  • Advanced caching: Intelligent cache with configurable timeouts
  • Smart debouncing: Prevents excessive git operations
  • File size limits: Configurable limits for large files
  • Loading indicators: Visual feedback during git operations
  • Cancellation support: Respects VS Code's cancellation tokens

πŸ”— Platform Integration

  • Clickable commits: Direct links to commit pages
  • Repository detection: Automatic platform identification
  • Browser integration: One-click commit viewing
  • Multi-platform support: GitHub, GitLab, Bitbucket, Azure DevOps

πŸš€ Getting Started

Installation

  1. Open VS Code
  2. Go to Extensions (Ctrl+Shift+X)
  3. Search for "Git Blame Hover"
  4. Click Install

Note: This extension is published by Canarys Automations. Available on VS Code Marketplace.

Usage

  1. Open any file in a git repository
  2. Hover over any line of code
  3. See instant blame info in a beautiful tooltip!

That's it! No configuration required. πŸŽ‰

Enhanced Hover Tooltip in Action

Hover Tooltip Example

Inline Annotations

Hover In Action

Error Handling

Error Handling Example

Status Bar Toggle

Bottom right corner: [$(git-commit) Blame: On]
Click to toggle On/Off

βš™οΈ Configuration

Core Settings

Setting Default Description
gitBlameHover.enable true Enable/disable the extension
gitBlameHover.showRelativeTime true Show "2 hours ago" vs "1/8/2026"
gitBlameHover.hoverDelay 200 Delay before tooltip appears (ms)
gitBlameHover.enableClickableCommits true Make commit hashes clickable links
gitBlameHover.showLoadingIndicator true Show loading indicator during operations

Tooltip Customization

Setting Default Description
gitBlameHover.showAuthor true Show πŸ‘€ author name
gitBlameHover.showDate true Show πŸ“… commit date
gitBlameHover.showMessage true Show πŸ“ commit message
gitBlameHover.showCommitId true Show #️⃣ commit hash
gitBlameHover.showPlatform true Show 🌐 platform info
gitBlameHover.showAuthorAvatar false Show πŸ–ΌοΈ author avatars (Gravatar)
gitBlameHover.maxCommitMessageLength 100 Max message length (0 = no limit)

Inline Annotations

Setting Default Description
gitBlameHover.enableInlineAnnotations false Show blame info at line endings
gitBlameHover.inlineAnnotationFormat "πŸ‘€ {author} β€’ {timeAgo}" Annotation format template

Heat Maps & Visual Features

Setting Default Description
gitBlameHover.enableHeatMap false Show visual heat map for code age

Performance Settings

Setting Default Description
gitBlameHover.cacheTimeout 300000 Cache timeout in milliseconds (5 min)
gitBlameHover.maxFileSize 1048576 Max file size for processing (1MB)

Example Configuration

{
  "gitBlameHover.enable": true,
  "gitBlameHover.showRelativeTime": true,
  "gitBlameHover.hoverDelay": 150,
  "gitBlameHover.showAuthor": true,
  "gitBlameHover.showDate": true,
  "gitBlameHover.showMessage": true,
  "gitBlameHover.showCommitId": true,
  "gitBlameHover.showPlatform": true,
  "gitBlameHover.showAuthorAvatar": true,
  "gitBlameHover.enableClickableCommits": true,
  "gitBlameHover.maxCommitMessageLength": 80
}

🎨 Customization Examples

Minimal Setup (Author + Time only)

{
  "gitBlameHover.showMessage": false,
  "gitBlameHover.showCommitId": false,
  "gitBlameHover.showPlatform": false,
  "gitBlameHover.showAuthorAvatar": false
}

Full-Featured Setup (All features enabled)

{
  "gitBlameHover.showAuthorAvatar": true,
  "gitBlameHover.enableInlineAnnotations": true,
  "gitBlameHover.enableHeatMap": true,
  "gitBlameHover.enableClickableCommits": true,
  "gitBlameHover.inlineAnnotationFormat": "πŸ‘€ {author} β€’ {timeAgo} β€’ #{hash}",
  "gitBlameHover.maxCommitMessageLength": 0,
  "gitBlameHover.hoverDelay": 100
}

Performance Setup (Large repositories)

{
  "gitBlameHover.hoverDelay": 500,
  "gitBlameHover.maxCommitMessageLength": 50,
  "gitBlameHover.showAuthorAvatar": false,
  "gitBlameHover.enableInlineAnnotations": false,
  "gitBlameHover.enableHeatMap": false,
  "gitBlameHover.cacheTimeout": 600000,
  "gitBlameHover.maxFileSize": 2097152
}

Visual Focus Setup (Annotations + Heat Maps)

{
  "gitBlameHover.enableInlineAnnotations": true,
  "gitBlameHover.enableHeatMap": true,
  "gitBlameHover.inlineAnnotationFormat": "πŸ‘€ {author} β€’ {timeAgo}",
  "gitBlameHover.showAuthorAvatar": true,
  "gitBlameHover.hoverDelay": 150
}

Access via:

  • Command Palette (Ctrl+Shift+P)
  • Status bar button click

🎯 Supported Platforms

Platform Status URL Format
πŸ™ GitHub βœ… Full support github.com
🦊 GitLab βœ… Full support gitlab.com
πŸͺ£ Bitbucket βœ… Full support bitbucket.org
πŸ”΅ Azure Repos βœ… Full support dev.azure.com, visualstudio.com
🏠 Self-hosted βœ… Basic support Shows as "Local/Other"

πŸ“‹ Requirements

  • VS Code: Version 1.90.0 or higher
  • Git: Must be installed and available in PATH
  • Repository: Must be a valid git repository
  • File Size: Files under 1MB (configurable via maxFileSize setting)

πŸ› Known Limitations

  1. Large files: Files exceeding the size limit (default 1MB) are skipped for performance
  2. Binary files: No blame information for binary files
  3. Merge conflicts: Limited info during active merge conflicts
  4. Shallow clones: May show incomplete history information
  5. Cache dependency: Cached results may be stale until cache timeout (5 minutes default)

πŸ“ž Support


Made with ❀️ by Canarys Automations

If you find this extension helpful, please ⭐ star the repository and leave a review on the marketplace!

About

Instant git blame information on hover - lightweight, zero-config, with smart tooltips

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors