🇬🇧 English • 🇩🇪 Deutsch • 🇪🇸 Español • 🇫🇷 Français • 🇯🇵 日本語 • 🇰🇷 한국어 • 🇵🇱 Polski • 🇧🇷 Português • 🇵🇹 Português • 🇷🇺 Русский • 🇨🇳 简体中文 • 🇹🇼 繁體中文
The best Git features from PyCharm, VS Code, and Visual Studio IDE.
A focused commit panel, readable branch graph, shelf workflow, and merge tooling for developers who want powerful IDE Git inside VS Code.
IntelliGit brings the best Git workflow ideas from PyCharm, VS Code, and Visual Studio IDE into one VS Code extension: a real commit panel, a readable branch graph, branch actions where the history is, shelf-style parking for unfinished work, and merge-conflict tools that do not make you rebuild context from terminal output.
It does not try to replace Git. It gives the daily Git work a better cockpit.
VS Code is fast and flexible, but Git work often ends up split across the Source Control view, terminal commands, diff tabs, branch pickers, and third-party graph extensions. That is fine for small changes. It gets tiring when you are shaping commits, checking history, moving branches, or cleaning up before a push.
IntelliGit pulls those workflows into one JetBrains-inspired surface:
- Build clean commits from a focused file tree with staging, rollback, amend, commit, and commit-and-push.
- Browse history in a visual commit graph with branch lanes, search, filters, metadata, and changed files.
- Act on branches and commits from the graph instead of jumping back to the command line.
- Park unfinished work with a shelf-style stash workflow.
- Handle risky history operations with availability rules and confirmations.
- Open conflicts in IntelliGit's native merge flow, VS Code, or an optional JetBrains merge tool.
The commit panel keeps the daily commit loop in one focused view. Stage by file, folder, or whole section; keep tracked changes and unversioned files separated; review per-file status and line deltas; then commit, push, or amend without leaving the Git surface. File context actions cover rollback, jump to source, delete, shelve changes, show history, and refresh.
The Shelf/Stash tab is built for interrupted work. Park partial or full changes, preview the files inside a shelved entry, show a diff before restoring it, then apply, pop, or drop the entry from the same panel. This gives VS Code a workflow closer to JetBrains shelf handling than raw terminal stash juggling.
The graph view combines branch search, branch lanes, commit search, changed files, commit metadata, and CI/CD checks. Commit check badges show provider status directly in history, and the popover exposes individual GitHub, GitLab, Bitbucket Cloud, or Bitbucket Server checks with links back to the provider.
Branch actions live where branch decisions happen. The branch tree groups current, local, remote, and worktree branches, then exposes context-aware actions such as checkout, new branch, checkout-and-rebase, rebase, merge, update, push, rename, delete, and worktree creation.
Commit history is actionable, not read-only. Right-click a commit to copy its hash, create a patch, cherry-pick, checkout the revision, reset the current branch, revert, push up to that commit, undo, edit the message, squash, drop, start an interactive rebase, create a branch, or create a tag. Risky actions are guarded by context and confirmations.
When you need room, IntelliGit can run as a unified workbench tab. The Undock
feature allows you to undock the Git window and move it to another screen. The
commit panel, branch tree, graph lanes, changed-file tree, and commit details
stay in one layout, with dock/undock support for monitor-heavy workflows.
Publishing is not limited to pushing an existing remote. IntelliGit can create a repository or project on GitHub, GitLab, Bitbucket Cloud, or Bitbucket Server, add the remote, and push the selected branch through one guided flow.
| Area | Supported |
|---|---|
| Commit workflow | Staging by section, folder, or file; rollback; delete; jump to source; amend; commit; push |
| Shelf/Stash | Shelve changes, preview files, show diff, apply, pop, drop |
| Graph and history | Branch lanes, branch search, commit search, branch filter, pagination, changed files, commit metadata |
| Branches | Checkout, new branch, checkout-and-rebase, rebase, merge, update, push, rename, delete |
| Commits | Copy hash, create patch, cherry-pick, checkout revision, reset, revert, push up to here, undo, edit message, squash, drop, interactive rebase, new branch, new tag |
| Worktrees | Create, create from branch, delete, lock, unlock, move, prune, repair |
| Merge conflicts | Conflict tree, conflict session, accept yours/theirs, VS Code/native merge, optional JetBrains merge tool |
| Hosting | Clone repository, initialize repository, publish branch, create remote repositories/projects |
| Commit checks | GitHub, GitLab, Bitbucket Cloud, Bitbucket Server, self-hosted host mapping, CI/CD status popovers |
| Layout | Activity bar view, bottom graph panel, unified undocked workbench tab |
| Localization | English, German, Spanish, French, Japanese, Korean, Polish, Portuguese, Russian, Simplified Chinese, Traditional Chinese |
- Install IntelliGit.
- Open a Git repository in VS Code.
- Open IntelliGit from the activity bar.
- Use the
Committab to stage files and commit. - Open the bottom IntelliGit panel to inspect history, filter branches, and act on commits.
Search for IntelliGit in VS Code Extensions, or install from:
- VS Code
1.96.0or later - Git installed and available on
PATH
Configure IntelliGit from VS Code Settings or settings.json.
IntelliGit can open merge conflicts in a JetBrains IDE merge tool such as PyCharm, IntelliJ IDEA, or WebStorm.
- Open VS Code Settings and search for
IntelliGit: JetBrains Merge Tool Path. - Set
intelligit.jetbrainsMergeTool.pathto your JetBrains app path. - On macOS, you can paste the
.apppath directly; IntelliGit resolves the internal executable. - Enable
intelligit.jetbrainsMergeTool.preferExternalif you want IntelliGit to try JetBrains first.
macOS examples:
/Applications/PyCharm.app/Applications/IntelliJ IDEA.app/Applications/WebStorm.app/Users/<your-user>/Applications/PyCharm.app
Windows examples:
C:\\Program Files\\JetBrains\\PyCharm 2025.1\\bin\\pycharm64.exeC:\\Program Files\\JetBrains\\IntelliJ IDEA 2025.1\\bin\\idea64.exeC:\\Program Files\\JetBrains\\WebStorm 2025.1\\bin\\webstorm64.exe
Helpful command:
- Run
IntelliGit: Detect JetBrains Merge Toolfrom the Command Palette to auto-detect installed JetBrains IDEs and save the path.
bun install
bun run build
bun run watch
bun run lint
bun run typecheck
bun run test
bun run formatUse the IntelliGit TSDoc standard in docs/tsdocs/TSDOC.md when documenting exported or boundary-facing TypeScript/TSX symbols. Prefer comments that capture contracts, invariants, side effects, and trust boundaries over comments that repeat TypeScript types. The rollout plan is tracked in docs/tsdocs/codex-tsdoc-rollout-plan.md.
Contributor and reviewer checklist:
- Update TSDoc in the same change that adds or changes exported/boundary-facing TypeScript or TSX symbols.
- Reject comments that only restate types, use vague verbs such as "handles" or "returns", or describe behavior that is no longer true.
- Keep the source documentation ratchet enabled; do not weaken lint enforcement to land undocumented exports.
- During release maintenance, scan for stale
@todo,TODO,FIXME,@deprecated, and@remarksnotes insrcanddocs.
bun install
bun run build
bun run package
code --install-extension intelligit-*.vsix# Run all unit and integration tests.
bun run test
# Watch mode.
bun run test -- --watch
# Run a specific test file.
bun run test -- tests/unit/gitops.test.ts
# Run tests matching a pattern.
bun run test -- -t "CommitPanelApp"GitExecutor (simple-git wrapper)
|
GitOps (operations layer)
|
View Providers (extension host orchestration)
|
Webviews (React apps for commit panel and commit graph)
Data flow highlights:
- Commit selection in the graph requests commit details from the extension host and updates the detail pane.
- Branch selection filters the graph and clears stale commit detail state.
- Commit panel file count updates the activity badge.
- Refresh reloads branch state, history, and commit panel data together.
| Component | Technology |
|---|---|
| Extension host | TypeScript, ES2022 |
| Git operations | simple-git v3 |
| Webviews | React 18 |
| Graph rendering | HTML5 Canvas |
| Bundler | esbuild |
| Package manager | Bun |
| Testing | Vitest |
| Linting | ESLint |
| Formatting | Prettier |








{ // JetBrains IDE binary path/command or a macOS .app bundle path. // Examples: "", "pycharm", "idea", "webstorm", "/Applications/PyCharm.app", // "C:\\Program Files\\JetBrains\\PyCharm 2025.1\\bin\\pycharm64.exe" "intelligit.jetbrainsMergeTool.path": "", // Prefer JetBrains merge tool for conflicts, falling back to IntelliGit/VS Code if unavailable. "intelligit.jetbrainsMergeTool.preferExternal": false, // Enable tooltips inside IntelliGit webviews. "intelligit.tooltips.enabled": true, // Open IntelliGit as a unified editor tab when Show Git Log is invoked. "intelligit.undockableWindow": false, // Icon style used in IntelliGit panels: "standard" or "color". "intelligit.icons": "standard", // Commit panel position inside the undocked/tabbed IntelliGit window: "auto", "left", or "right". "intelligit.commitWindowPosition": "auto", }