Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>LazyGitVSNew to Visual Studio Code? Get it now.
LazyGitVS

LazyGitVS

Preview

lazygitvs

|
1 install
| (0) | Free
A lazygit-inspired, keyboard-first Git workflow in the VS Code SCM sidebar.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

LazyGitVS

LazyGitVS logo

lazygit muscle memory, inside the VS Code Source Control sidebar.

CI Visual Studio Marketplace GitHub release License

LazyGitVS is a keyboard-first Git workflow for VS Code, inspired by lazygit.

It is not a terminal wrapper. It uses VS Code-native surfaces where they are better: SCM sidebar views, QuickPick menus, input boxes, native diffs, and real editors for hunk/line work.

Current preview: 0.1.91

Why this exists

VS Code's built-in Git UI is solid, but it is mouse-heavy and fragmented when you live on the keyboard. Lazygit is fast, coherent, and memorable — but it lives outside the editor.

LazyGitVS brings the good part into VS Code:

  • one Git cockpit in the SCM sidebar
  • lazygit-style panel jumps and command keys
  • native VS Code diffs/editors instead of a fake terminal pane
  • hunk and line staging without leaving the file you are editing

Still preview software. Useful, dogfooded, improving fast. Not pretending to be a mature Git client yet — that would be cheap cosplay.

Install

Marketplace:

Install LazyGitVS

Or from VS Code:

Extensions: Install Extensions
Search: LazyGitVS

From a downloaded VSIX:

code --install-extension lazygitvs-0.1.91.vsix --force

Requirements

  • VS Code ^1.90.0
  • Git on PATH
  • A Git repository opened as the current workspace

Open it

Ctrl+Alt+G

That focuses LazyGitVS in the Source Control sidebar.

Core workflow

Panels

LazyGitVS keeps lazygit's numbered navigation, adapted to VS Code's SCM sidebar:

1  Status
2  Files
3  Branches
4  Commits
5  Stash
6  Conflicts
7  Tags
8  Remotes

Everyday keys

1..8        Jump panels
j/k         Move selection
↑/↓         Move selection
Space       Toggle/action selected item
Enter       Main action
?           Contextual command menu
/           Search/filter
r           Refresh
Esc         Clear filter / back
q           Close sidebar

Files panel

Space       Stage/unstage file
Enter       Open the real file and enter editor HUNK mode
v           Start/clear range selection
Shift+↑/↓   Extend range selection
F           File status filter
c           Commit
w           Commit without hook
A           Amend last commit
C           Commit with body
P           Push menu
p           Pull/fetch menu
s           Stash all
S           Stash options
d           Discard menu
D           Reset/nuke menu

Files use explicit staged/worktree badges instead of raw porcelain soup:

  • S lane: staged/index state
  • U lane: unstaged/worktree state
  • green: staged
  • red: unstaged
  • yellow: untracked
  • blue/error: mixed/conflict states

Editor HUNK and LINE mode

Enter on a changed file opens the actual file editor and enters LazyGitVS HUNK mode. No duplicate fake editor, no terminal textarea, no weird side quest.

j/k, ↑/↓    Move hunk/line selection, wrapping at edges
Space       Stage/unstage selected hunk or line
a           Toggle HUNK/LINE mode
Tab         Toggle unstaged/staged side
d           Discard/unstage selected hunk or line
?           Contextual HUNK/LINE command menu
e           Switch to normal EDIT mode
Esc         Exit HUNK mode back to Files
q           Close LGVS/sidebar

EDIT mode is normal VS Code editing:

normal typing   Edit the file normally
Ctrl+Enter      Return to LGVS HUNK mode on the same file

Hunk/line selection is shown in the editor with highlights and gutter markers. Staged/unstaged visual state is kept separate so you do not get the classic “everything is selected, good luck” diff mush.

What it can do today

  • SCM sidebar Git cockpit with lazygit-style panels
  • real file previews and VS Code diff/editor integration
  • file stage/unstage, stage all, unstage all
  • range selection in Files
  • hunk and line stage/unstage
  • branch, commit, stash, conflict, tag, and remote panels
  • push, pull/fetch, stash, discard, reset, branch, commit, and conflict QuickPick menus
  • lazygit config/keybinding reading where implemented
  • UI dogfood tests in GitHub Actions
  • VSIX packaging as CI artifacts and GitHub Releases

Dangerous actions

LazyGitVS exposes destructive Git operations because hiding them would make it a toy.

These actions require confirmation:

  • force push with lease
  • discard file / hunk / line
  • reset hard
  • reset to commit
  • drop stash
  • 💣 Nuke working tree

Nuke working tree runs:

git reset --hard HEAD
git clean -fd

That discards staged, unstaged, and untracked changes. LazyGitVS cannot undo it. Git is sharp; don't lick the blade.

Known limitations

  • Single-root workspace assumption for now.
  • Git operations use the Git CLI directly.
  • Lazygit config/keybinding parity is partial and incremental.
  • HUNK/LINE mode is VS Code-adapted; it is not a literal terminal UI.
  • Conflict resolution uses VS Code-native files/merge editor; no custom conflict resolver panel yet.
  • Native SCM sidebar scrolling is limited by VS Code public APIs. Numeric jumps update LGVS selection/focus, but in a cramped sidebar VS Code may not visibly scroll collapsed deep panels like 7 Tags / 8 Remotes into view. See docs/known-bugs.md.

Development

npm ci
npm run compile
npm test
npm run dogfood:ui
npm run package:dist

Useful scripts:

npm test              Compile + unit/integration tests
npm run dogfood:ui    Headless VS Code UI dogfood smoke test
npm run package       Local dogfood VSIX build
npm run package:dist  Portable repo-local VSIX in dist/

Default local dogfood builds write to:

../releases/LazyGitVS/lazygitvs-${version}.vsix

Portable CI/release builds write to:

dist/lazygitvs-${version}.vsix

CI and releases

GitHub Actions runs on pushes and pull requests:

  • npm ci
  • npm test
  • npm run package:dist
  • npm run dogfood:ui
  • upload VSIX artifact

Version tags publish release artifacts:

git tag v0.1.91
git push origin v0.1.91

The tag workflow creates a GitHub Release with the VSIX. If VSCE_PAT is configured as a repository secret, it also publishes the same VSIX to the Visual Studio Marketplace.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft