A free, open-source, JetBrains-grade Git suite for VS Code, Cursor, and desktop.
Logo & brand assets live in brand/.
In VS Code and Cursor — the same engine, as an extension:
Install GitStudio from the VS Code Marketplace or Open VSX (VSCodium, Gitpod, …), or from the command line:
code --install-extension gitstudio.gitstudio # VS Code
cursor --install-extension gitstudio.gitstudio # CursorTo use GitStudio's compare viewer for VS Code text diffs (Source Control,
Explorer comparisons, history and vscode.diff), enable
gitstudio.merge.useAsDefaultDiffViewer in Settings. It is off by default and
independent of conflict auto-open. With the standalone Merge Studio extension,
use jbMerge.useAsDefaultDiffViewer instead. If both are enabled, GitStudio
handles diffs. Once it is on, the comparison opens everywhere: for the diffs
VS Code and other extensions open, and for GitStudio's own Changes list, Commit
Graph, stashes, history, blame, compare, worktrees and push review. To use it
only in some of those places, untick the others in
gitstudio.diff.comparisonIn: for instance untick changes to keep VS Code's
diff editor, with its selective-staging menu, for the Changes list. Pull
request diffs always open in VS Code's diff editor, where their review threads
are. So do binary and custom-editor diffs, diffs of other extensions' own
documents (pull request reviews, AI edits), and a comparison that cannot be
loaded. This uses VS Code's stable tab API,
so the native diff may briefly appear before the comparison opens. Unsaved
source tabs are kept; editing the comparison opens the writable document in
a background text tab for normal saving and close prompts. Disable the setting
to restore VS Code for future diffs.
One line:
# macOS and Linux
curl -fsSL https://raw.githubusercontent.com/GitStudioHQ/gitstudio/main/scripts/install.sh | bash# Windows
irm https://raw.githubusercontent.com/GitStudioHQ/gitstudio/main/scripts/install.ps1 | iexHomebrew (macOS):
brew install --cask gitstudiohq/gitstudio/gitstudio # add --force if you already have GitStudio.appwinget (Windows) — once the first submission (microsoft/winget-pkgs#437547) is merged:
winget install GitStudioHQ.GitStudioOr download it from the latest GitHub Release or gitstudio.dev:
| Platform | Installer |
|---|---|
| macOS — Apple Silicon | GitStudio-<version>-arm64.dmg |
| macOS — Intel | GitStudio-<version>-x64.dmg |
| Windows | GitStudio-Setup-<version>.exe (NSIS — choose your install dir) |
| Linux | GitStudio-<version>-x86_64.AppImage (universal) · GitStudio-<version>-amd64.deb (Debian/Ubuntu) · GitStudio-<version>-x86_64.rpm (Fedora/RHEL) · GitStudio-<version>-x64.tar.gz (portable) |
Every release carries a SHA256SUMS.txt; the one-line installers verify against
it and refuse to install on a mismatch.
The builds are not code-signed yet. Homebrew and install.sh clear macOS's
quarantine flag for you; if you took the .dmg and macOS says the app is
damaged, run xattr -d -r -s com.apple.quarantine /Applications/GitStudio.app once.
On Windows, SmartScreen: More info → Run anyway.
Every build checks GitHub Releases for a newer version and asks before
downloading. Windows and Linux (AppImage) then update in place; macOS downloads
the new .dmg to your Downloads folder and opens it — one drag to Applications
(unsigned builds cannot apply a Squirrel.Mac update).
VS Code's built-in Git is functional but flat. GitLens is great at information (blame, history, lenses) but doesn't own the interaction (merging, staging, resolving). JetBrains IDEs nail the interaction — three-pane merges, a real commit graph, hunk-level staging, inline blame that feels native — but you only get them if you live in IntelliJ.
GitStudio brings the JetBrains-grade Git workflow to VS Code, Cursor, and a native desktop app, and adds an intelligence layer on top. The polish of a native IDE, the depth of a power-user tool, and AI that actually understands your history — all free, on public and private repos.
Everything ships in one extension (gitstudio.gitstudio) and one desktop app, both built on the same shared engine:
| Pillar | What's in |
|---|---|
| Visualize | A sidebar-native Commits view (true branch topology at sidebar scale, mini author avatars on the nodes, scoped search) plus a full-screen virtualized commit graph; inline + full-file blame with a code-age heatmap; file & line history; revision navigation; reflog time-machine. |
| Change | Instant hunk- & line-level staging; guided commit box (amend, sign-off, author, Commit & Push); side-by-side / unified diff with word-level highlighting; 3-pane merge editor with accept ribbons — conflicts auto-open as they appear. |
| Rewrite | Drag-to-reorder interactive rebase (pick · reword · edit · squash · fixup · drop); a universal, reflog-powered Undo safety net (never hijacks Ctrl/Cmd+Z). |
| Manage | Branches (live ↑/↓ badges, fetch-in-place, pull without checkout), remotes, tags, first-class stashes, worktrees; GitHub-style branch compare; status-bar sync with in-view Push/Pull. |
| Collaborate | In-editor GitHub pull-request review — list, check out, diff, comment inline, submit, merge, create. |
| Assist | AI features — optional, bring-your-own-key (Anthropic or any OpenAI-compatible endpoint, including local Ollama / LM Studio) or zero-key (Copilot): AI commit messages, explain-diff, summaries. With Copilot it works with nothing to set up, otherwise it is off until you connect a provider; keys stay on your machine in GitStudio's own encrypted store; AI never gates a Git operation. |
A standalone, cross-platform Git client (macOS / Windows / Linux) built on the exact same core — not a rewrite. On top of the shared graph, diff/merge, staging, rebase, and undo it adds:
- A GitHub home for your repo — sign in with a token and get pull requests (diffs + inline review), issues, Actions runs with logs, releases, notifications, gists, orgs, and projects, all local-first.
- An integrated terminal (node-pty + xterm.js) that opens in your repo.
- An AI Assistant panel wired to
@gitstudio/ai— connect Anthropic or any OpenAI-compatible model, including local ones. - Auto-update from GitHub Releases.
gitstudio-mcp (in apps/mcp) exposes a repository's Git capabilities to any MCP-compatible agent (Claude Desktop, Cursor, Copilot, Windsurf) over stdio. Read tools are always available; write/destructive tools are opt-in via environment variables.
npm workspaces (packages/* + apps/*):
packages/
engine/ Pure, unit-tested diff/merge + graph-layout model (no vscode/electron imports).
git-service/ Thin git layer: log, blame, status, staging, refs, stashes, worktrees, sync…
host-bridge/ Protocols shared between the hosts (extension / desktop) and their webviews.
webview-ui/ Shared webview front-ends: commit graph, diff/merge (Monaco), conflicts
dashboard, rebase.
merge-vscode/ The VS Code side of the merge experience, shared by the extension and
Merge Studio: merge editor, conflicts dashboard, routing, diff panel.
ai/ Host-agnostic AI layer: multi-provider model registry, git AI tasks, agent
loop, and the shared git tool catalog that also backs the MCP server.
apps/
extension/ The VS Code / Cursor extension.
desktop/ The Electron desktop app.
mcp/ gitstudio-mcp — the Model Context Protocol server.
merge-studio/ Merge Studio — the merge-only extension, exported to GitStudioHQ/merge-studio.
scripts/
merge-studio/ Export to and import from the merge-studio repository (docs/merge-studio.md).
merge-e2e/ The all-cases conflict matrix the merge code is tested against.
engine, host-bridge, and ai are kept pure (no vscode/electron imports) so they stay portable and testable — enforced by npm run check-purity.
Requires Node 22+.
npm ci # install all workspaces
npm test # run every workspace's tests (tsx --test)
npm run check-types # tsc --noEmit across all workspaces
npm run check-purity # assert the pure packages stay host-freeExtension — open the repo in VS Code and press F5 to launch an Extension Development Host with GitStudio loaded. Package a sideloadable VSIX with:
cd apps/extension
npm run package
npx @vscode/vsce package --no-dependenciesDesktop — build and launch Electron:
npm start --workspace apps/desktop # dev build + launch
npm run dist --workspace apps/desktop # installers for the host OS -> apps/desktop/release/Both products release from tags — ext-v* for the extension (→ Marketplace, Open VSX, GitHub Release) and app-v* for the desktop app (→ per-OS installers on a GitHub Release, built natively on a 4-way matrix). CI runs typecheck + the full test suite before anything publishes. See RELEASING.md for the full playbook, including the optional signing/notarization secrets.
Issues and pull requests are welcome at GitStudioHQ/gitstudio. Before opening a PR, please run the three gates locally:
npm test && npm run check-types && npm run check-purityCONTRIBUTING.md has the rest (and the code of conduct; report security problems privately, as SECURITY.md says), and docs/merge-studio.md explains how the merge code is shared with Merge Studio and how a pull request opened on its repository comes back here.
| Extension | gitstudio.gitstudio (publisher gitstudio) — VS Code Marketplace + Open VSX |
| Desktop | GitHub Releases — .dmg (arm64 + x64), .exe, .AppImage, .deb, .rpm, .tar.gz |
| Website | gitstudio.dev |
| License | Apache-2.0 |
| Privacy | What each product sends, and how to turn it off: desktop · extension · Merge Studio |
| Security | SECURITY.md — report privately, through the repository's Security tab |
| Sibling product | Merge Studio — gitstudio.merge-studio, the merge-only extension. Built from apps/merge-studio and the shared packages here, exported to GitStudioHQ/merge-studio. Shares its merge editor, not a listing. |
- One flagship extension, not a swarm (the GitLens model). It grows pillar by pillar; Merge Studio stays a separate, focused product, built from the same merge code (see
docs/merge-studio.md). - Webview custom editors for rich UI (merge, graph, rebase), providers + decorations for ambient features (blame, history), and a thin git service with its own repo discovery (
git rev-parse, symlink-safe) plus direct.gitreads where speed matters — the views paint from local git instead of blocking onvscode.gitactivation. - Strict CSP + per-load nonces on every webview; AI keys live in SecretStorage (extension) / safeStorage (desktop) and never reach a webview.
- One core, two hosts. The desktop app runs
@gitstudio/git-serviceunchanged in Electron's main process and renders the same@gitstudio/webview-uicomponents the extension uses — behind the same@gitstudio/host-bridgeprotocol.
Apache-2.0 (see LICENSE and NOTICE). Brand assets in brand/ identify the project; don't use the GitStudio name/logo in a way that implies official endorsement.





