Git GlanceSuper lightweight, clean, and fun inline Git blame for Visual Studio Code. 💡 Why Git Glance?Full-fledged Git extensions are feature-packed, but they can often feel heavy, clutter your editor, or slow down file navigation. Git Glance was crafted for developers who only want the essential information directly in their flow:
No bloat, no complex menus, and zero background clutter. Just a clean, modern, and fun glance at your code's history. 🏎️ Comparison: Git Glance vs. Heavy Git Suites
✨ Features
📸 Visual PreviewDefault Inline Style (with Profile Picture / Avatar):
Available Visual Presets (
|
| Preset | Preview (Your Commits) | Preview (Other Authors) |
|---|---|---|
default |
(avatar) You, 3 days ago: Add JWT middleware |
(avatar) Wahyu Ridiansyah, 3 days ago: Add JWT middleware |
minimalist |
· You, 3d ago — Add JWT middleware |
· Wahyu Ridiansyah, 3d ago — Add JWT middleware |
playful |
👀 You, 3 days ago • 🚀 Add JWT middleware |
👀 Wahyu Ridiansyah, 3 days ago • 🚀 Add JWT middleware |
terminal |
// git:You @ 7a8f3b2 (3d) "Add JWT middleware" |
// git:Wahyu Ridiansyah @ 7a8f3b2 (3d) "Add JWT middleware" |
github |
@You, 3d ago: Add JWT middleware |
@Wahyu Ridiansyah, 3d ago: Add JWT middleware |
breadcrumb |
› You › 3d ago › Add JWT middleware |
› Wahyu Ridiansyah › 3d ago › Add JWT middleware |
bento |
⚡ You │ ⏱️ 3d ago │ 💬 Add JWT middleware |
⚡ Wahyu Ridiansyah │ ⏱️ 3d ago │ 💬 Add JWT middleware |
comment |
/* by You, 3d ago: Add JWT middleware */ |
/* by Wahyu Ridiansyah, 3d ago: Add JWT middleware */ |
custom |
Personalized via gitGlance.format |
Personalized via gitGlance.format |
Interactive Hover Card:
### Git Glance
👤 Author: Wahyu Ridiansyah <wahyu@example.com>
📅 Date: 3 days ago (25/09/2026 14:10)
🔖 Commit: 7a8f3b2
> Add JWT middleware
---
[📋 Copy Hash] • [🔍 Details] • [🌐 Open in Browser]
⌨️ Available Commands
Access these commands anytime from the VS Code Command Palette (Cmd + Shift + P on macOS, Ctrl + Shift + P on Windows/Linux):
| Command | Description |
|---|---|
Git Glance: Toggle Inline Blame |
Quickly toggle inline annotations on or off. |
Git Glance: Toggle Avatar |
Quickly toggle avatar profile pictures / initials badges on or off. |
Git Glance: Sign in to GitHub for Avatars |
Sign in with VS Code's GitHub account so photos load in private repositories. |
Git Glance: Copy Commit Hash |
Copies the commit SHA of the current line to the clipboard. |
Git Glance: Show Commit Details |
Opens an interactive QuickPick showing full commit details and actions. |
Git Glance: Open Commit on Remote |
Opens the current commit page in your default browser. |
Git Glance: Show Log |
Opens the Git Glance output channel (git path used, errors). |
⚙️ Configuration & Customization
Open VS Code Settings (Cmd + , or Ctrl + ,) and search for Git Glance:
| Setting | Default | Description |
|---|---|---|
gitGlance.enabled |
true |
Enable or disable inline annotations globally. |
gitGlance.preset |
"default" |
Choose a preset style (default, minimalist, playful, terminal, github, breadcrumb, bento, comment), or select "custom" to design your own format freely. |
gitGlance.showAvatar |
true |
Display profile picture / avatar next to inline annotation. |
gitGlance.avatarSource |
"remote" |
"remote" downloads photos (see Privacy); "initials" uses local initials badges only. |
gitGlance.maxMessageLength |
60 |
Shorten the inline commit message to this many characters (0 = no limit). |
gitGlance.remote |
"" |
Remote used for "Open in Browser" links. Empty = origin, or the first remote if there is no origin. |
gitGlance.commitUrlTemplate |
"" |
Custom URL template overriding auto-detection for web commit links (e.g. for custom/internal Git servers). Available tokens: ${host}, ${path}, ${sha}, ${shortSha}, ${project}, ${repo}. Use it when the remote host is an SSH alias (for example git@github-work:org/repo) or a self-hosted server Git Glance can't recognise. |
gitGlance.useIgnoreRevsFile |
true |
Skip commits listed in the repository's .git-blame-ignore-revs file. |
gitGlance.format |
"${author}, ${time}: ${message}" |
Custom template for inline annotation (used when preset is "custom"). |
gitGlance.uncommittedFormat |
"${author}, ${time}: ${message}" |
Custom template for uncommitted lines (used when preset is "custom"). |
gitGlance.dateStyle |
"relative" |
Style for dates: "relative" (e.g. 3 days ago), "short", or "absolute". |
gitGlance.hoverDateFormat |
"DD/MM/YYYY HH:mm" |
Format for the exact commit timestamp shown in hover card tooltip. |
gitGlance.delay |
100 |
Debounce delay in milliseconds before fetching git blame on cursor movement. |
gitGlance.showHover |
true |
Show interactive hover card when moving cursor over the annotation. |
gitGlance.prefix |
"👀 " |
Prefix emoji or text token (available as ${prefix} in custom format). |
Custom Format Tokens (gitGlance.format):
When gitGlance.preset is set to "custom", you can freely compose your own line format with these tokens:
| Token | Description | Example |
|---|---|---|
${author} |
Commit author name | Wahyu Ridiansyah |
${email} |
Commit author email with brackets | <wahyu@example.com> |
${authorEmail} |
Raw author email | wahyu@example.com |
${time} |
Relative or styled commit date | 3 days ago |
${date} |
Formatted short date | Sep 25, 2026 |
${isoDate} |
Full date & timestamp | 2026-09-25 14:10 |
${message} |
Commit subject message | Add JWT middleware |
${hash} / ${shortHash} |
Short commit SHA (7 characters) | 7a8f3b2 |
${fullHash} |
Full 40-character commit SHA | 7a8f3b2... |
${prefix} |
Custom prefix string/emoji | 👀 |
For uncommitted lines (gitGlance.uncommittedFormat), ${author}, ${message}, ${prefix}, ${time}, ${date}, and ${isoDate} are supported.
Hover Date Format Tokens (gitGlance.hoverDateFormat):
Customize the exact timestamp displayed in the hover card tooltip using these tokens:
| Token | Description | Example |
|---|---|---|
DD / D |
Day of month (2-digit / 1-digit) | 25, 5 |
MM / M |
Month number (2-digit / 1-digit) | 09, 9 |
YYYY / YY |
Year (4-digit / 2-digit) | 2026, 26 |
HH / H |
24-hour format (2-digit / 1-digit) | 14, 9 |
hh / h |
12-hour format (2-digit / 1-digit) | 02, 2 |
mm / m |
Minutes (2-digit / 1-digit) | 10, 5 |
ss / s |
Seconds (2-digit / 1-digit) | 05, 5 |
A / a |
AM/PM or am/pm | PM, pm |
MMM / MMMM |
Month name (short / full) | Sep, September |
ddd / dddd |
Weekday name (short / full) | Fri, Friday |
[...] |
Escaped literal text | [at] HH:mm → at 14:10 |
🩺 Troubleshooting
Nothing shows on the current line? Run Git Glance: Show Log. It lists the git executable in use and any error from git.
- git not found: Git Glance uses the same git as VS Code. Install git, or set
git.pathin your settings. - "dubious ownership" in the log: run
git config --global --add safe.directory <repo path>. - Initials instead of a teammate's photo: the log says why.
(no GitHub token)→ runGit Glance: Sign in to GitHub for Avatars, or clone over HTTPS so git stores a token.no account linked to this commit's email→ the teammate has to add that email to their GitHub account (Settings → Emails).
🔒 Privacy
Git Glance has no telemetry and needs no account. Blame data never leaves your machine.
With gitGlance.avatarSource set to "remote" (the default), author photos are looked up in the background:
- GitHub noreply emails (
123+user@users.noreply.github.com): the photo is downloaded fromgithub.com/<user>.png. - GitHub and GitHub Enterprise: the GitHub API is asked for the repository's recent commit authors, then for the blamed commit (repository name and commit SHA are sent). Private repositories need a token. Git Glance uses, without asking: your GitHub sign-in in VS Code, or the token git already uses for HTTPS (
git credential fillwith prompts disabled; the token is only sent to that same GitHub host). If neither exists, Git Glance offers to sign in and shows initials until then. - GitLab: the GitLab instance is asked for the photo of the account with the author's email.
- Bitbucket Cloud, Gitea, Forgejo, Codeberg: the host's API is asked which account made the commit (public repositories only).
- Gravatar: the MD5 hash of the author's email is sent.
Set gitGlance.avatarSource to "initials" to make no network requests, or turn avatars off with gitGlance.showAvatar.
🚀 Installation
Option 1: Install from VS Code Marketplace (Recommended)
Install directly from the Visual Studio Marketplace or from within VS Code:
- Open the Extensions view in VS Code (
Cmd + Shift + Xon macOS,Ctrl + Shift + Xon Windows/Linux). - Search for
Git Glance. - Click Install.
Or install directly via CLI:
code --install-extension ridiansyah.git-glance
Option 2: Install from VSIX (Local Release)
Download the latest git-glance-x.x.x.vsix from GitHub Releases or build it locally, then:
code --install-extension git-glance-1.4.0.vsix
Or via VS Code UI: Extensions view (Cmd+Shift+X) ➔ ... menu at top right ➔ Install from VSIX... ➔ Select the .vsix file.
Option 3: Build & Run from Source
- Clone the repository:
git clone https://github.com/ridiansyah/git-glance.git cd git-glance - Install dependencies:
pnpm install - Open in VS Code and press
F5(or runLaunch Git Glancein the Run & Debug view). A new Extension Development Host window will launch with Git Glance active!
🛠️ Development & Contributing
Contributions, bug reports, and feature requests are very welcome! Please read our Contributing Guide to get started.
Development Scripts:
# Compile bundle with esbuild
pnpm run compile
# Watch mode for rapid local iteration
pnpm run watch
# Run TypeScript type check
pnpm run lint
# Run built-in unit tests
pnpm test
# Package into a release .vsix file
pnpm run package:vsix
Community & Standards:
- Contributing Guide — How to propose changes and submit PRs.
- Changelog — Full release history.
- Code of Conduct — Our community guidelines.
- Security Policy — How to report security vulnerabilities.
- Agent & Architectural Standards — Technical guidelines and conventions.
📄 License
This project is licensed under the MIT License. Made with ❤️ for a cleaner, faster coding experience.