Git Jet
JetBrains Git, 1:1, inside VS Code. Git Jet is the most faithful recreation of the Git workflow of WebStorm,
IntelliJ IDEA, PyCharm and the other JetBrains IDEs. It is not "inspired by" them: its logic is ported from the
IDE's own open-source Git plugin, so the Commit tool window with changelists, the Log with its graph, the branches
popup, interactive rebase, shelve, the Push dialog and the three-way merge window behave the way you know — same
actions, same dialogs, same shortcuts, with the look of the New UI.
Preview. Git Jet is a pre-release: feedback and bug reports are very welcome in
GitHub Issues.
Git Jet is an independent open-source project, not affiliated with or endorsed by JetBrains. WebStorm,
IntelliJ IDEA and JetBrains are trademarks of JetBrains s.r.o., used here only to describe the experience the
extension recreates.

Feature tour
Changes grouped by changelist, per-file and per-hunk inclusion checkboxes, amend, sign-off, commit message
history and inspections (subject length, blank line, spelling), before-commit checks and Commit and Push — all in
a side tool window instead of the Source Control view.

The Log tab with the commit graph, branch/user/date/path filters, text and hash search, commit details and the
changed files, plus context menus for checkout, cherry-pick, revert, reset, rebase, tags and more. Console,
Stash and Working Trees tabs live next to it.

main ▾ in the Commit window or the status bar opens the branches popup: Recent, Local, Remote and Tags as a
searchable tree, with Checkout, New Branch from…, Compare, Merge, Rebase onto, Push, Rename and Delete.

Push dialog
Review the outgoing commits and files per repository before pushing, set the upstream, push tags and force
push (always --force-with-lease). Rejected pushes offer Merge or Rebase and retry.

Interactive rebase
Reorder, reword, squash, fixup, drop and edit commits in the Rebasing Commits dialog, then continue, skip or
abort from the Commit window while the rebase is in progress.

Merge conflicts
The Conflicts dialog lists every conflicted file (Accept Yours / Accept Theirs / Merge…), and the three-pane
Merge Revisions window applies non-conflicting changes automatically, with per-chunk accept arrows and
annotations.

Diff viewer
Side-by-side diff with inclusion checkboxes for partial commits, three-way comparison for merge commits and
directory comparisons.

Shelf and stash
Shelve changes (IDE-style patches that survive branch switches) or stash them; unshelve / unstash with a preview,
optionally shown together in one tab.

Pull Requests (GitHub)
The Pull Requests tool window of WebStorm's GitHub plugin: the repository's pull requests with search and filters
(state, author, label, assignee, review), Create Pull Request… from the current branch (pushed first when
needed), the details with commits, changed files, CI checks and timeline, and a review diff where you comment on
lines, reply, resolve threads and submit a review. Merge, Squash and Merge or Rebase, Close / Reopen and Checkout
of the pull request's branch are one click away. GitHub Enterprise works through gitjet.github.enterpriseServer.


AI actions
Over VS Code's Language Model API (GitHub Copilot Chat or any other model provider you have installed):
Generate Commit Message with AI writes the message from the included changes, Improve Commit Message
rewrites the one you typed (optionally as Conventional Commits), Explain Commit in the Log explains a commit,
and Merge with AI in the Merge Revisions window proposes a resolution for the open conflicts that you review
before applying. gitjet.ai.model picks the model.
Background tasks
Long operations (fetch, pull, push, clone, rebase) run in the background with a status bar indicator and a list
where each task can be cancelled.

Git Settings page
The Version Control › Git settings of the IDE as a page: Git executable with Test, commit and push options,
update method, protected branches, credential helper and more. Everything is also a regular VS Code setting.

Also included: editor gutter change markers with Rollback / Show Diff, Annotate with Git Blame, file and
selection history, compare with branch or revision, patches (create / apply), worktrees, submodules, GitHub
clone / share / login, Update Project (merge or rebase), a Git console that logs every command, Git bisect
from the Log (Start / Mark Good / Mark Bad / Skip / Reset, with a banner while bisecting), Git LFS (content
diffs, Track / Untrack Files, Fetch / Pull LFS Objects), git-flow (Init, Start / Finish Feature, Release and
Hotfix, with plain git), Local History › Show History / Put Label over VS Code's Timeline, and a Reflog
tab in the Git tool window (not in WebStorm) that marks the commits a reset or rebase lost and brings them back
with New Branch… or Reset Current Branch to Here….
For AI agents (MCP)
Git Jet includes a read-only MCP server that gives AI agents the
repository the way Git Jet sees it, through typed tools instead of raw git in a terminal: repositories,
status (staged / unstaged / untracked / conflicted, operation in progress), log (branch, author, path, text
and date filters), show_commit, diff (working tree, staged, against HEAD or between revisions),
branches (with incoming / outgoing), blame of a range, file_history (following renames), conflicts
(yours / base / theirs of a file), stashes, shelves, worktrees and reflog (with the commits a reset or
rebase lost).
- VS Code agents (GitHub Copilot's agent mode) see it automatically as Git Jet in trusted workspaces;
gitjet.mcp.enabled turns it off.
- Other agents (Claude Code, Cursor, Antigravity, Gemini CLI): run Git Jet: Copy MCP Server
Configuration…, which puts an
mcpServers entry on the clipboard (a copy of the server that survives
extension updates, started with node) and shows where each agent expects it; for Claude Code it offers
claude mcp add git-jet -- node <path>.
- Privacy: the server runs locally, only reads the repositories of the open folders, never changes anything,
and replaces secret values (tokens, keys, passwords,
.env values) with [REDACTED]. Nothing leaves your
machine except what the agent itself sends to its model. Changelists are not exposed yet.
Getting started
- Install Git Jet from the Marketplace (VS Code 1.107 or newer; Git must be installed — Git Jet uses the
same executable as the built-in Git extension unless you set
gitjet.git.path).
- Open a folder that contains a Git repository. The Git Jet icon in the activity bar opens the Commit tool
window; the Git tool window (Log, Console, Stash, Working Trees) is in the panel.
- Run Git Jet: Set Up Workspace Like WebStorm from the Command Palette. It applies the JetBrains file status
colors, turns off the built-in Git surfaces that would duplicate Git Jet's (decorations, open-diff-on-click,
autofetch) and explains the one step VS Code does not allow extensions to do: right-click the Source Control
icon › Hide 'Source Control'. Git Jet: Restore VS Code Defaults undoes it.
- Optional: set
"gitjet.keymap": "jetbrains" for the IDE shortcuts below.
Keyboard shortcuts
With gitjet.keymap set to jetbrains (default vscode keeps only the shortcuts that do not clash with VS Code):
| Action |
WebStorm (macOS) |
Git Jet (macOS) |
Git Jet (Windows / Linux) |
| Commit tool window |
⌘K |
⌘K |
Ctrl+K |
| Push… |
⇧⌘K |
⇧⌘K |
Ctrl+Shift+K |
| Update Project |
⌘T |
⌘T |
Ctrl+T |
| VCS Operations popup |
⌃V |
⌃V |
Alt+` |
| Branches popup |
— |
⇧⌘` (always on) |
Ctrl+Shift+` (always on) |
| Git tool window (Log) |
⌘9 |
⌘9 |
Alt+9 |
| Commit tool window (focus) |
⌘0 |
⌥0 |
Alt+0 |
| Rollback… |
⌥⌘Z |
⌃⌥Z |
Ctrl+Alt+Z |
| Show change popup (gutter) |
— |
⇧⌘D |
Ctrl+Shift+D |
| Previous / next change |
⌃⌥⇧↑ / ↓ |
⌃⌥⇧↑ / ↓ |
Ctrl+Alt+Shift+↑ / ↓ |
| Add to VCS |
⌥⌘A |
⌥⌘A (always on) |
Ctrl+Alt+A (always on) |
| Toggle hunk in commit |
— |
⌥⇧⌘I (always on) |
Ctrl+Alt+Shift+I (always on) |
All actions are also in the Command Palette under Git Jet, and can be rebound in Keyboard Shortcuts.
Key settings
| Setting |
Default |
What it does |
gitjet.git.path |
auto |
Git executable (auto-detected from the built-in Git extension or PATH) |
gitjet.keymap |
vscode |
jetbrains enables the IDE shortcuts |
gitjet.commit.enableStagingArea |
false |
Use the Git index (staged / unstaged) instead of changelists |
gitjet.changelists.allowPartial |
false |
Partial changelists: hunks of one file in different changelists |
gitjet.update.method |
merge |
Update Project with merge, rebase or the branch default |
gitjet.push.protectedBranches |
master, main |
Branches that must not be force-pushed |
gitjet.stash.combineWithShelf |
false |
Show stashes and shelved changes in one tab |
gitjet.dialogs.mode |
float |
Dialogs as floating windows, editor tabs or quick picks |
gitjet.fetch.auto |
false |
Fetch periodically in the background |
gitjet.appearance.theme |
auto |
Theme of the views: auto (New UI Dark / Light after your VS Code theme), vscode (your VS Code colors) or any WebStorm theme: Islands Dark / Light / Darcula / High Contrast, Dark, Light, Light with Light Header, Darcula, IntelliJ Light, High Contrast |
gitjet.appearance.colorOverrides |
{} |
Customize colors of the theme, token by token (with gitjet.appearance.accent, fonts and compact mode) |
Everything else is under Settings › Extensions › Git Jet, or in the Git Settings page (Git Jet: Git
Settings). Git Jet: Appearance… (also in the … menu of the Commit and Git tool windows) previews every
theme live on your views and customizes colors and fonts, like WebStorm's Settings › Appearance; nothing
changes until you press Apply or OK.
Git Jet activates in workspaces that contain a .git folder, or when you open one of its views. A repository
in a subfolder of the workspace is picked up once you open the Commit or Git tool window.
Known limitations
VS Code does not allow every JetBrains surface; where it doesn't, Git Jet rebuilds it inside its own webviews.
The differences you will notice:
- Dialogs open as floating auxiliary windows (or editor tabs), not true modal windows.
- The branch widget lives in the status bar and the Commit window header — extensions cannot add a widget to
the title bar.
- The native Source Control view cannot be hidden by an extension: hide it once by hand (see Getting
started).
- Gutter popups are VS Code hovers with the hunk diff and action links, not the IDE's floating editor.
- The editor banner "File has unresolved merge conflicts" is a CodeLens on the first line.
- Remote and virtual workspaces: Git Jet is a workspace extension, so it runs where the repository is
(Remote-SSH, WSL, Dev Containers, Codespaces); these setups have not been tested as thoroughly as local
folders yet, reports are welcome. Virtual workspaces (e.g. github.dev) are not supported.
- Restricted Mode: in an untrusted workspace Git Jet does not run Git at all (hooks and other
repository-configured programs could execute). Trust the workspace to enable it.
Privacy
Git Jet collects no telemetry and sends no data anywhere of its own accord. It only talks to the Git remotes
you use, and to the GitHub / GitLab APIs when you sign in or use the hosting features (Clone, Share, Pull
Requests). The AI actions run only when you invoke them, and send the changes, commit or conflict they work on to
the language model you picked through VS Code (for example GitHub Copilot), under that provider's terms. The
MCP server answers only the agents you run, locally and read-only, with secrets redacted.
Credentials you choose to remember are kept in VS Code's SecretStorage (the system keychain).
License
Apache License 2.0. Git Jet ports logic from the git4idea plugin of
JetBrains/intellij-community (Apache 2.0) and uses New UI
icons and color palettes from that repository; it bundles the Inter and JetBrains Mono fonts (SIL OFL 1.1). See
NOTICE and THIRD_PARTY_NOTICES.md.
Git Jet is not affiliated with or endorsed by JetBrains s.r.o. WebStorm, IntelliJ IDEA and JetBrains are
trademarks of JetBrains s.r.o.; the extension does not use JetBrains product logos.
Contributing: see CONTRIBUTING.md. Security issues: see SECURITY.md.