ExtBridge is a cross-IDE extension deduplication tool for VS Code-compatible editors. It keeps one shared local copy of each extension and links IDE-specific extension folders to that shared store.
Developers often use multiple VS Code-based IDEs (for example VS Code, Cursor, Windsurf, VSCodium, and Antigravity). Each IDE stores extension files independently, which causes:
- 💾 Duplicate disk usage
- 🕒 Version drift between IDEs
- 🔄 Repeated reinstall/setup work
ExtBridge solves this by centralizing extension storage in a single local location and linking each IDE to it.
Implemented:
- 📦 Monorepo structure with
@iamjarvis/extbridge-core,@iamjarvis/extbridge-cli, and@iamjarvis/extbridge-gui - 🔌 IDE adapters for: VS Code, Antigravity, Cursor, Windsurf, VSCodium
- 🗃️ Central registry (
~/.extbridge/registry.json) with Zod validation - 🔑 Hash-based deduplication (SHA-256 of extension folders)
- 🔗 Cross-platform directory linking (Symlinks on Unix, Junctions on Windows)
- 🛠️ CLI commands to manage state (
init,sync,status,add,add-ide,import-ide,doctor,clean,watch) - 🖥️ New Desktop GUI: A beautifully designed Electron + React desktop application for visual management.
- 📥 Direct extension downloads from the Open VSX Marketplace
- ✅ Unit tests and Cross-Platform E2E GUI testing (Playwright)
Manage your cross-IDE extensions entirely from our new Desktop Dashboard! Read more about it in the GUI Documentation.
extbridge/
├── packages/
│ ├── core/ # Core deduplication, registry, and adapters logic
│ ├── cli/ # ExtBridge CLI implementation (`extbridge <command>`)
│ └── gui/ # ExtBridge Desktop GUI (Electron + React + Vite)
├── documentation/ # Detailed guides (cli.md, gui.md)
├── package.json
├── pnpm-workspace.yaml
└── tsconfig.base.json
- Node.js: 20+
- Corepack: enabled (recommended)
If needed, enable corepack:
corepack enableYou can run ExtBridge CLI instantly using npx, or install it globally for convenience.
Run instantly via npx:
npx @iamjarvis/extbridge-cli statusInstall globally:
npm install -g @iamjarvis/extbridge-cliFor detailed command-line usage, check out the CLI Documentation. For detailed desktop app usage, check out the GUI Documentation.
GitHub Actions CI runs on:
- 🐧 Linux (
ubuntu-latest) - 🪟 Windows (
windows-latest) - 🍏 macOS (
macos-latest)
The workflow validates UI changes using Playwright E2E tests across all platforms, ensuring ExtBridge GUI runs perfectly everywhere.
ExtBridge uses the following local files/directories:
~/.extbridge/
├── store/
└── registry.json
- Start with
--dry-runbeforeiniton machines with important local setups. - Use the new
doctorcommand to diagnose broken symlinks. - Review extension state with
statusbefore and after migration.
See CONTRIBUTING.md for development workflow, coding standards, and pull request guidance.
See SECURITY.md for vulnerability reporting instructions and Electron GUI security details.
This project is licensed under the GNU General Public License v3.0.
See LICENSE for details.

