VS Code Extensions
Direct Repository Sync

Direct Repository Sync

by DirectTechnologies

Adds a single button to sync all git repositories in the current workspace.

Downloads

3

Rating

(0)

Version

1.0.1

Last updated

Jul 30, 2026

VS Code / Cursor extension that adds Sync all for every Git repository in the workspace: one action in the Source Control → CHANGES header, then fetch → pull/push according to your settings.

Requires the built-in Git extension (vscode.git) and VS Code ^1.85 (see engines in package.json).

Where is the button?

  • Menu: scm/title, group navigation
  • Visibility: when: view == workbench.scm so the control appears on the CHANGES view title bar only (same idea as the built-in tree/list toggles), not duplicated on each repository row for this command.

Native Git icons on each repo row (sync, pull, push, etc.) are not from this extension; you can hide those separately via the toolbar context menu or Git-related settings.

Behavior

  1. Uses the Git extension API only (repo.fetch(), repo.pull(), repo.push()), not git.* palette commands, so you should not get a “Choose a repository” picker from this flow.
  2. Fetches all detected repositories (parallelism from settings).
  3. Optionally skips dirty repos and optionally processes only repos that are ahead or behind their upstream (defaults: skip dirty = on, only if ahead/behind = on).
  4. For each selected repo: pull if behind, push if ahead (parallelism from settings).
  5. Writes a full log to Output → “Sync All Repositories” ([OK] / [FAIL] per path).

Features

  • Single Sync all entry next to other CHANGES actions (Codicon repo-sync on the command).
  • Configurable parallelism and filters (see below).
  • Extension icon: media/icon.png128×128 PNG (square) recommended; referenced from package.json"icon".

Usage

  1. Open Source Control (CHANGES).
  2. Click Sync all in the header toolbar, or run the command Git: Sync All Repositories from the Command Palette (Cmd+Shift+P / Ctrl+Shift+P).

Settings

ID Default Description
syncAllRepos.maxParallel 4 Max repositories to process in parallel.
syncAllRepos.onlyIfAheadBehind true After fetch, only sync repos that are ahead or behind upstream.
syncAllRepos.skipDirty true Skip repositories with local changes.

Development

cd sync-all-repos
npm install
npm run compile

Use Run → Start Debugging to try the extension in a new Extension Development Host window.

Packaging (VSIX)

cd sync-all-repos
npm install
npm run compile
npx vsce package

Install the generated .vsix in Cursor/VS Code: ExtensionsInstall from VSIX….

Notes

  • Some repos may fail (conflicts, auth, missing remotes, etc.). Failures are listed in Output → Sync All Repositories; other repos still run.
  • If repo.fetch / repo.pull / repo.push are not exposed by the Git API in your environment, those steps will error; check the Output channel for messages.

Related extensions