Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>SFTP Sync, Upload on Save, FTP Sync, SFTP Client, FTP Client, Remote File Explorer, Deploy to Server, SSH, FTPS, SCP, Rsync, FileZilla, WinSCP Alternative for HTML, CSS, JavaScript, TypeScript, PythonNew to Visual Studio Code? Get it now.
SFTP Sync, Upload on Save, FTP Sync, SFTP Client, FTP Client, Remote File Explorer, Deploy to Server, SSH, FTPS, SCP, Rsync, FileZilla, WinSCP Alternative for HTML, CSS, JavaScript, TypeScript, Python

SFTP Sync, Upload on Save, FTP Sync, SFTP Client, FTP Client, Remote File Explorer, Deploy to Server, SSH, FTPS, SCP, Rsync, FileZilla, WinSCP Alternative for HTML, CSS, JavaScript, TypeScript, Python

utiltools

|
1 install
| (0) | Free
SFTP sync and FTP sync for VS Code: upload on save, deploy to server and browse a remote file explorer over SFTP, FTP, FTPS, SSH and SCP. Two-way sync, diff local vs remote, git deploy of changed files, multiple servers and a dual-pane file manager: a FileZilla and WinSCP alternative. Works with HTM
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SFTP / FTP Sync & Deploy

Upload on save, browse and edit files on your server, sync folders both ways, deploy only the files git says changed, and move files in a keyboard-driven dual-pane manager. Works with SFTP (SSH), FTP and FTPS on macOS, Windows and Linux. No AI, and nothing about your files or servers is ever sent to us.

Two-way sync with conflict resolution

Why switch

The popular SFTP extensions have not been updated in years and have hundreds of open issues. This one is maintained and has a real UI.

  • Set servers up in a form, not a JSON file. You can test the connection before you save, and browse to the remote folder.
  • Passwords never go into your project. They live in your OS keychain through VS Code's secret storage. The .vscode/sftp-sync.json file only describes the servers, so you can commit it.
  • Host keys are verified. On the first connection you confirm the server's fingerprint. If it ever changes, you get a loud warning before anything is sent.
  • Already have .vscode/sftp.json? Import it in one click. Profiles, context and ignore carry over, and passwords move to the keychain.

Features

Upload on save

Save a file and it goes to the active server. The status bar shows which server that is: click it to switch between Production, Staging and any others. Upload on save honours your .gitignore-style ignore list, and a failed upload offers Retry.

Servers tree and remote editing

The SFTP / FTP activity bar lists every server. Expand folders lazily, then open, edit and save remote files directly (saving writes to the server). You can also create files and folders, rename, delete, download, upload into a folder, and diff a remote file with your local copy.

Diff local vs remote

Right-click a file and choose SFTP / FTP › Diff with Server to open VS Code's diff editor with the server version on the left.

Two-way sync with conflict resolution

Sync Folder with Server scans both sides and shows every file that would change: uploads, downloads, deletions and conflicts. Conflicts are files changed on both sides since the last sync, and you resolve them per file or all at once (keep newer, local or server). Nothing happens until you press Sync. Other modes: Local → server and Server → local mirrors, with optional removal of extra files.

Git deploy

Deploy Changed Git Files uploads exactly what changed:

  • uncommitted work,
  • everything since the last deploy to that server,
  • or everything since any branch, tag or commit.

Deleted and renamed files are removed from the server after you confirm.

Dual-pane file manager

Dual-pane file manager

Local files on the left, server files on the right. Drag rows across, or use the keyboard:

Key Action
Tab switch pane
↑ ↓ Home End PgUp PgDn move
Space, Shift+↑↓, Ctrl/Cmd+A select
Enter / Backspace open / go up
Ctrl/Cmd+Enter copy the selection to the other pane
F2 / F7 / Del rename / new folder / delete
type letters jump to a name

Transfer queue

Transfers panel

Every transfer goes through a queue, shown in the Transfers panel with progress, speed, cancel and retry. Browsing uses a separate connection, so you can keep working while a big upload runs.

Multiple servers

Add as many servers per workspace folder as you like. Each server has its own local folder, remote folder, ignore rules and upload-on-save setting. Multi-root workspaces are supported.

Server setup

Getting started

  1. Open your project folder.
  2. Click the SFTP / FTP icon in the activity bar, then Add Server.
  3. Fill in the host, the user and how you sign in (password, private key or ssh-agent), then the remote folder. Press Test connection, then Save.
  4. Save a file. It uploads. Right-click files or folders for SFTP / FTP › Upload / Download / Diff / Sync.

Shortcuts: Cmd+Alt+U / Ctrl+Alt+U uploads the current file; Cmd+Alt+D / Ctrl+Alt+D downloads it.

Free trial and Unlimited

Every feature is included in the free trial. The trial counts only the time you actively use the extension. When it ends, choose an Unlimited plan: monthly, yearly or a one-time lifetime licence. Checkout is handled by Stripe in your browser, and Unlimited turns on without reloading VS Code. Already paid? Use SFTP: Restore Purchase and we email you a link.

Privacy

  • Your files, server addresses and credentials never leave your machine except to go to your own servers.
  • The only other network calls are the free-trial and licence checks. They send a random install id, a hashed machine id and the amount of active use to api-ext.viralinc.live.
  • If VS Code telemetry is turned on, the extension also sends two anonymous usage events (opened, and the Unlimited page shown) with the same random install id, and nothing else.

Configuration file

.vscode/sftp-sync.json (written by the setup screen, validated by a JSON schema):

{
  "version": 1,
  "defaultProfile": "production",
  "profiles": [
    {
      "id": "production", "name": "Production", "protocol": "sftp",
      "host": "example.com", "port": 22, "username": "deploy",
      "auth": "key", "privateKeyPath": "~/.ssh/id_ed25519",
      "remotePath": "/var/www/html", "localPath": ".",
      "uploadOnSave": true, "ignore": [".git", "node_modules", ".vscode"]
    }
  ]
}

Support

Email ope@trysixth.com.

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