Issues and pull requests are welcome at GitStudioHQ/gitstudio. This repository holds the VS Code / Cursor extension, the desktop app, the MCP server, the Merge Studio extension, and the packages they share; the README maps them.
Everyone taking part is asked to follow the Code of Conduct. A security problem is reported privately, not in an issue: see SECURITY.md.
Requires Node 22+ and git.
npm ciRun the three gates CI runs:
npm run check-types
npm test
npm run check-puritynpm test runs every workspace's tests. Some render pages in headless
Chrome: they find Chrome through GS_CHROME (a path to a Chrome or
chrome-headless-shell binary), then the usual install location, and skip when
there is none. Every such Chrome reaches this machine and nothing else: a
launcher takes its argv from headlessChromeArgs() in
scripts/test/no-network-chrome.mjs (a shell script runs that file for the
switches), and packages/webview-ui/test/chromeNoNetwork.test.ts fails on one
that does not.
CI runs the same on Linux, macOS and Windows, so a test that depends on your machine (a global git config, a path separator, a locale) will show there.
The merge editor, the Conflicts dashboard, Continue / Skip / Abort and the
side-by-side diff are shared by GitStudio, the desktop app and the
Merge Studio extension, and
they are kept here. Merge Studio's own repository is exported from this one,
and pull requests opened there are imported back. Read
docs/merge-studio.md before changing that code: it
says which package holds what, how the export and the import work, and what
keeps the two repositories the same.
A change to the merge code is tested against the all-cases conflict matrix in
scripts/merge-e2e, every conflict shape in
every git operation that can stop, never one hand-made conflict.
Releases are cut by the owner from tags; see RELEASING.md
for GitStudio and the desktop app, and
apps/merge-studio/RELEASING.md for Merge
Studio. A pull request never needs to change a version.