Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>SF ShuttleNew to Visual Studio Code? Get it now.
SF Shuttle

SF Shuttle

Kwagoo

|
2 installs
| (0) | Free
Move Salesforce components (with their layouts, permission entries and dependencies) from an SFDX project into your git repo — then branch, commit and push.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SF Shuttle

Move Salesforce components from your org-connected SFDX project into your team's git repo — with their layouts, permission entries and dependencies — then branch, commit and push, without leaving VS Code.

Many Salesforce teams work with two folders: an SFDX project connected to the org (where you retrieve and deploy) and a separate git repository (where branches, commits and pull requests happen). Moving work from one to the other by hand is slow and error-prone — especially profiles and permission sets, where the org copy contains everything but the repo copy is curated.

SF Shuttle automates that move. It works only with files on disk: it never connects to an org (retrieve with the Salesforce extensions as usual) and makes no AI or network calls apart from git.

Features

  • Find any component — search every component in your SF project by name, type or status (Region, CustomField, Modified).
  • See what changed — each component is marked New, Modified or Unchanged compared to the repo; click to open a side-by-side diff (SF project → repo). A Changes view lists everything that differs.
  • Related components, automatically — pick a field and SF Shuttle lists the layouts, list views, LWC / Aura components, permission sets and profiles that use it, plus possible references in Apex, flows and formulas. What's already identical in the repo is hidden.
  • Profiles & permission sets done right — only the relevant entries (e.g. one <fieldPermissions> block) are merged into the repo's file. Everything else in the file stays byte-for-byte identical, so the git diff is just that block.
  • Dependencies — a Uses group suggests what a component depends on (an LWC's Apex controller, a field's object, classes an Apex class calls).
  • Partial changes — bring over individual change blocks with the diff editor's arrows; SF Shuttle commits the repo file exactly as you left it.
  • Ship or Commit — pick or create a branch (from the latest origin/main), write the files, commit only those files, and push. Or just commit and push later.
  • Multi-package repos — existing components are updated where they live; new components go to the right package folder (following their object or parent, your default folder, or a folder you choose per component), matching each package's own layout.
  • Repo branch in the status bar — see and switch the repo's branch, create branches and pull, from the status bar.

Getting started

  1. Open your SFDX project (the folder with sfdx-project.json) in VS Code.
  2. Click sf-shuttle: set repo in the status bar and pick your git repo folder.
  3. Open the SF Shuttle view in the Activity Bar and click Find Component (🔍).
  4. Search for something you changed, e.g. a field, and add it. Its related components appear underneath.
  5. Review: click any item to compare it with the repo; untick anything you don't want.
  6. Click Ship (🚀) — choose or create a branch, confirm the commit message, done. Open a pull request as usual.

Safety

  • Nothing is written until you confirm; Preview What Will Be Written shows the full plan first.
  • Ship refuses to run on a repo with unexpected uncommitted changes, and never deletes anything from the repo.
  • Existing profiles and permission sets are never overwritten wholesale — only the selected entries are merged.
  • Pull is fast-forward only; SF Shuttle never creates merge commits on your behalf.

Settings

Setting Description
sfShuttle.repoPath Absolute path to the git repo that components are shipped into.
sfShuttle.defaultBaseBranch Branch new branches are created from (default main).
sfShuttle.commitMessageTemplate Pre-filled commit message; {components} is replaced with component names.
sfShuttle.newComponentFolder Repo folder for new components (e.g. src/callCentre); empty = the repo's default package.

Commands

All commands are under SF Shuttle: in the Command Palette — the main ones are Find Component, Ship Ticked Components, Commit Ticked Components (No Push), Preview What Will Be Written, Switch Repo Branch, Pull Repo Branch, Push Repo Branch, Set Repo Folder and Set Default Folder for New Components.

Requirements

  • VS Code 1.90 or later
  • git on your PATH
  • Salesforce projects in source format (sfdx-project.json); the legacy metadata-API format (src/package.xml) is not supported

Notes

SF Shuttle is an independent project and is not affiliated with or endorsed by Salesforce. Salesforce is a trademark of Salesforce, Inc.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft