Back to Projects
February 25, 2026
Developer Tooling · VS Code ExtensionPublished on Visual Studio Marketplace

Git Navigator

Git Navigator is a VS Code extension published on the Visual Studio Marketplace as "Git Navigator Pro". It surfaces day-to-day git and GitHub work in a single, opinionated sidebar panel: a staged/unstaged Changes view with per-file and bulk actions, an inline commit input with Ctrl+Enter, a one-click pull-then-push Sync, a branch switcher backed by VS Code's QuickPick, and a webview-rendered commit graph with colour-coded lanes, paginated history, and rich metadata per row. Pull request creation runs through VS Code's built-in GitHub OAuth, so users never need to manage a personal access token. File-system watchers on `.git/index` and `.git/HEAD` keep the panel in sync when you also work from the terminal, and a status-bar branch indicator stays visible at all times.

Role and Focus

Built and published a VS Code extension that consolidates day-to-day git work into a single sidebar panel, including a custom webview-rendered commit graph and OAuth-based PR creation.

Git Navigator

Tech Stack

Core

TypeScriptVS Code Extension APIesbuildNode.js

Sidebar UI

QuickPickTree ViewStatus Bar ItemWebviews

Git Workflows

Init / Link Remote / CloneStage / Unstage / DiscardInline CommitSync (pull-then-push)Branch Switcher

Commit Graph

SVG Lane RenderingPaginated HistoryBranch / Tag RefsRelative Date Formatting

GitHub Integration

VS Code GitHub OAuthPull Request CreationAuto-detected owner/repo

Reactivity

.git/index Watcher.git/HEAD WatcherStatus Bar Branch Indicator

Key Highlights

  • Published on the Visual Studio Marketplace as "Git Navigator Pro" with a 5-star rating; built in TypeScript and bundled with esbuild.
  • Implemented a custom commit graph in a webview — colour-coded branch lanes with SVG connectors, paginated 50-at-a-time history, and per-row commit metadata.
  • Used VS Code's built-in GitHub OAuth for PR creation so users never need to handle a PAT, with `owner/repo` auto-detected from the configured remote.