Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Git KeizuNew to Visual Studio Code? Get it now.
Git Keizu

Git Keizu

numlia-vs

|
280 installs
| (0) | Free
A modern git history graph for VS Code — view all your branches in one interactive graph and act on them directly: checkout, merge, rebase, cherry-pick, stash, and git worktree support. One of the few git extensions with built-in worktree management. Actively maintained successor to Git Graph.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Git Keizu for Visual Studio Code

View your Git history as a graph, and do common Git actions directly from it

GitHub release vscode installs open-vsx downloads

Git Keizu is a fast, focused git history graph for Visual Studio Code. View all your branches, commits, stashes, and tags in one interactive visual graph — and perform git actions (checkout, merge, rebase, cherry-pick, stash) and manage git worktrees directly from it, without ever opening a terminal.

An actively maintained fork of Git Graph (MIT, 2019), intentionally kept focused on the essentials. If the core graph experience is what you're after, this is for you.

Screenshots

Graph view — all branches, tags, stashes, and uncommitted changes in one visual graph. Merge commits are dimmed by default to keep the important commits easy to spot: Graph overview

Commit actions — right-click any commit to checkout, cherry-pick, revert, merge, reset, or add a tag, without ever opening a terminal: Commit actions

Worktree at a glance — branches with a linked worktree show a distinct icon right on the graph label. Hover to see the worktree path in a tooltip: Worktree icons

Worktree actions — right-click any worktree branch to open a terminal there, copy its path, or remove it — all without leaving the graph: Worktree actions

Create worktree from commit — right-click any commit and choose "Create Worktree Here..." to spin up a new branch + worktree at that point in history; the path auto-fills as you type the branch name: Create worktree

Branch filter — narrow the graph to one or more branches with a multi-select dropdown: Branch filter

2-commit comparison — Ctrl/Cmd+click a second commit to see all changes between the two: 2-commit comparison

Features

  • Graph View: See all your branches, tags, stash entries, and uncommitted changes in one visual graph. The menu bar and column headers stay fixed as you scroll, so controls are always within reach in long histories.
  • Commit display order: Choose how commits are sorted in the graph — Date (default, by committer date), Topological (same-branch commits appear consecutively), or Author Date. Set the global default in settings (git-keizu.repository.commits.order); override per repository via the table header right-click context menu. The current order is indicated with a checkmark.
  • Muted merge commits: Merge commits are shown with dimmed text (commit message, date, author, and hash) by default, making non-merge commits easier to spot in a busy history. Branch labels always render at full opacity regardless of mute state. Non-ancestor commits can also be muted via settings (git-keizu.repository.commits.mute.*).
  • Author Filter: A multi-select dropdown in the toolbar lets you filter commits by author — select one or more names to show only their commits, or choose "Show All" to clear the filter. The author list covers all authors reachable from HEAD (not just the currently loaded commits), so no one is missed even in long histories.
  • Commit Details: Click on a commit to see what changed and view diffs for any file. A loading indicator appears immediately when you click, and the diff data loads in parallel for faster response. The panel height adjusts to your viewport size, and the view only scrolls enough to bring the panel into view — no jarring auto-center on every click. Parent hashes are clickable links that jump straight to the parent commit's details.
  • Open File from commit details: Each file entry in the commit details panel shows an "Open File" icon on hover (not shown for deleted files); clicking it opens the working-tree copy in VS Code in preview mode. Right-clicking any file row also opens a context menu with the same "Open File" option — works in both Tree View and List View (available even for deleted files). If the file has since been renamed, Git Keizu resolves the new path automatically via git rename tracking — if the file cannot be found, an error dialog is shown. Use git-keizu.openNewTabEditorGroup to choose which editor group the file opens in.
  • File View Toggle: Switch between Tree View (folder hierarchy) and List View (flat alphabetical list of full paths) in the commit details panel; the chosen mode is saved per repository.
  • Branch filter: A multi-select dropdown in the toolbar lets you filter the graph to one or more branches simultaneously; selecting no individual branch returns to "Show All" (all branches visible).
  • Branch Actions: Right-click to create, checkout, delete, rename, merge, or rebase branches. The Create Branch dialog includes a "Check out" checkbox (on by default) to automatically switch to the new branch after creation. The Merge dialog exposes "Squash Commits" and "No Commit" options in addition to the existing "No Fast Forward" checkbox. When deleting a local branch, an optional checkbox lets you also delete the corresponding remote branch in one step. The Rename Branch dialog includes an "Update upstream tracking" checkbox (on by default) — renaming updates git's tracking config so the branch follows the new remote name, and for branches that have never been pushed the remote is also configured so Push works immediately after rename.
  • Remote Branch Actions: Right-click a remote branch label to delete it on the remote, merge it into the current branch, or check it out as a new local branch.
  • Worktree Support: Create, manage, and remove git worktrees directly from the graph. Branches with a linked worktree show a distinct icon; hover the label to see the worktree path. Right-click any local branch to create a worktree (default path ../repo-branchname, with path-unsafe characters such as / normalized to - — e.g. feature/x → ../repo-feature-x; consecutive unsafe characters collapse to a single -; an "Open Terminal" checkbox is included whose default state is configurable via git-keizu.dialog.createWorktree.openTerminal); right-click a worktree branch to open a terminal there, copy its path, or remove it — the Remove Worktree dialog includes an "Also delete branch" checkbox (safe git branch -d) so you can clean up the branch in the same step (the main worktree cannot be removed). Right-click any commit to create a new branch + worktree at that point — the path field auto-fills as you type the branch name (applying the same path normalization), and the "Open Terminal" checkbox follows the same git-keizu.dialog.createWorktree.openTerminal setting.
  • Tag Actions: Add, delete, and push tags directly from the graph
  • Commit Actions: Checkout, cherry-pick, revert, or reset to any commit. The Cherry-pick dialog now includes "Record Origin" and "No Commit" checkboxes; merge-commit cherry-picks also show a parent selector
  • Stash Support: Stash entries appear in the graph with a distinct visual style; right-click to apply, pop, drop, or create a branch from a stash
  • Uncommitted Changes Actions: Right-click the Uncommitted Changes row to stash, reset (Mixed/Hard), or clean untracked files
  • Configurable dialog defaults: Set the initial checkbox state for Merge ("No Fast Forward", "Squash Commits", "No Commit"), Cherry-pick ("Record Origin", "No Commit"), Stash ("Include Untracked"), Create Worktree ("Open Terminal"), and Remove Worktree ("Also delete branch") dialogs via git-keizu.dialog.* settings — your preferred options are pre-selected each time a dialog opens
  • Pull/Push for current branch: Right-click the currently checked-out branch to run git pull or git push directly from the graph — Push uses --set-upstream origin HEAD so it works for newly created branches without any extra terminal steps
  • Fetch with automatic prune: The Fetch button runs git fetch --prune — stale remote-tracking references are cleaned up automatically on every fetch
  • SCM Panel Button: Open the Git Keizu graph directly from the VS Code Source Control panel title bar; the repository is selected automatically based on the active SCM provider. Button position (Inline or More Actions menu) is configurable
  • Keyboard Shortcuts: Configurable shortcuts for Find (Ctrl/Cmd+F), Refresh (Ctrl/Cmd+R), Scroll to HEAD (Ctrl/Cmd+H), and Scroll to Stash (Ctrl/Cmd+S, Shift to go backward); each can be rebound or disabled in settings
  • Arrow key commit navigation: With a commit's detail panel open, navigate between commits using Arrow keys — no modifier for table order, Ctrl/Cmd for branch-tracking (parent/child on the same branch), and Ctrl/Cmd+Shift to cross to an alternative branch or merge source; disabled in comparison mode
  • Commit Search: Press Ctrl/Cmd+F to open a search bar with regex mode, case-sensitive mode, match counter (N of M), and prev/next navigation
  • 2-Commit Comparison: Ctrl/Cmd+click a second commit to compare it with the selected commit; the panel header shows "Displaying all changes from [older] to [newer]" in chronological order, file diffs always show old→new regardless of which commit was selected first, and comparison state is preserved when switching VS Code tabs
  • Combined branch/remote labels: Local and remote branches on the same commit merge into a single pill label — [main | origin]. Right-clicking either part opens the appropriate context menu.
  • Scroll position restore: When you switch away from the Git Keizu tab and return, the graph scrolls back to where you left off. The position is saved whenever a user action (clicking a commit, toggling a filter, etc.) triggers a state save; passively scrolling without any action does not trigger a save.
  • Smooth refresh: Git operations update the graph in the background without blanking the view or losing your scroll position
  • Auto load more commits: Commits load automatically as you scroll to the bottom of the list — no manual button press needed (configurable)
  • Dropdown overflow handling: Long branch and repository names are truncated with an ellipsis; hover to see the full name in a tooltip
  • Avatar Support: Optionally fetch commit author avatars from GitHub, GitLab, or Gravatar
  • Multi-Repository: Support for multiple Git repositories in one workspace
  • Configurable: Customize graph colors, style, date format, and more

Extension Commands

Command Description
Git Keizu: View Git Keizu (git log) Open the Git Keizu graph view
Git Keizu: Clear Avatar Cache Clear all cached commit author avatars

Extension Settings

All settings are under the git-keizu.* namespace.

General

Setting Default Description
dateFormat Date & Time Date format: Date & Time, Date Only, or Relative
dateType Author Date Date type: Author Date or Commit Date
fetchAvatars false Fetch commit author avatars from GitHub, GitLab, or Gravatar
graphColours (12 colours) Colours used on the graph (HEX or RGB array)
graphStyle rounded Graph line style: rounded or angular
initialLoadCommits 300 Number of commits to initially load
loadMoreCommits 100 Number of additional commits to load at a time
loadMoreCommitsAutomatically true Automatically load more commits when scrolling to the bottom
openNewTabEditorGroup Active Editor group for "Open File" in commit details: Active, Beside, One–Nine
maxDepthOfRepoSearch 0 Maximum depth of subfolders to search for repositories
showCurrentBranchByDefault false Show only the current branch when the graph is opened
showStatusBarItem true Show a Status Bar item to open Git Keizu
showUncommittedChanges true Show uncommitted changes row in the graph
tabIconColourTheme colour Tab icon theme: colour or grey
sourceCodeProviderIntegrationLocation Inline SCM title bar button position: Inline or More Actions

Keyboard Shortcuts (keyboardShortcut*)

Setting Default Description
...Find CTRL/CMD + F Keyboard shortcut for Find (UNASSIGNED to disable)
...Refresh CTRL/CMD + R Keyboard shortcut for Refresh (UNASSIGNED to disable)
...ScrollToHead CTRL/CMD + H Keyboard shortcut for Scroll to HEAD (UNASSIGNED to disable)
...ScrollToStash CTRL/CMD + S Keyboard shortcut for Scroll to Stash (UNASSIGNED to disable)

Dialog Defaults (dialog.*)

Setting Default Description
dialog.merge.noFastForward true Default state of "Create a new commit even if fast-forward is possible" (Merge)
dialog.merge.squashCommits false Default state of "Squash Commits" checkbox (Merge)
dialog.merge.noCommit false Default state of "No Commit" checkbox (Merge)
dialog.cherryPick.recordOrigin false Default state of "Record Origin" checkbox (Cherry-pick)
dialog.cherryPick.noCommit false Default state of "No Commit" checkbox (Cherry-pick)
dialog.stashUncommittedChanges.includeUntracked false Default state of "Include Untracked" checkbox (Stash Uncommitted Changes)
dialog.createWorktree.openTerminal true Default state of "Open Terminal" checkbox (Create Worktree)
dialog.removeWorktree.deleteBranch true Default state of "Also delete branch" checkbox (Remove Worktree)

Commit Ordering (repository.commits.order)

Setting Default Description
repository.commits.order date Commit sort order: date (committer date), topo (topological, same-branch consecutive), or author-date

Per-repository override is available via the table header right-click context menu.

Commit Muting (repository.commits.mute.*)

Setting Default Description
...mergeCommits true Display merge commits with reduced opacity
...commitsThatAreNotAncestorsOfHead false Display non-ancestor-of-HEAD commits with reduced opacity

Security

Git Keizu has undergone a full security audit and remediation (27 issues fixed):

  • Shell injection eliminated — all git commands use child_process.spawn() exclusively; exec() has been removed entirely
  • Git binary validation — the configured git.path is validated to be an absolute path pointing to a git executable, preventing arbitrary command execution via a malicious .vscode/settings.json
  • Commit hash validation — every operation that accepts a commit hash validates the format before passing it to git
  • Repository path validation — all messages from the webview are checked against the registered repository list, preventing commands from running against arbitrary directories
  • Path traversal prevention — file path arguments are checked for .. sequences
  • SSRF protection — avatar fetch requests are restricted to an allowlist of known domains (GitHub, GitLab, Gravatar)
  • XSS fixes — commit parent hashes, avatar data URIs, and other dynamic values are properly HTML-escaped before insertion into the webview

Installation

Search for git-keizu in Extensions, or install from:

  • VS Code Marketplace
  • Open VSX Registry

Contributing & Support

The codebase has been modernized from its 2019 origins: async/await throughout, ES2020 targets, a Vitest test suite, and oxlint/oxfmt for consistent style.

Bug reports and feedback via GitHub Issues are welcome. This is a personal project maintained in spare time — responses and fixes are not guaranteed, but reports are appreciated.

Acknowledgements

A big thank you to the original author, mhutchie, for creating this amazing extension.

Thanks also to asispts for carrying the project forward — stripping it down to the essentials and keeping it focused on what matters most.

License

MIT — see LICENSE.

Not affiliated with or endorsed by the original Git Graph or neo-git-graph projects.

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