Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Fsync — SFTP & Rsync SyncNew to Visual Studio Code? Get it now.
Fsync — SFTP & Rsync Sync

Fsync — SFTP & Rsync Sync

V0idwu

|
2 installs
| (0) | Free
Remote file sync via SFTP and Rsync with file explorer
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Fsync — Remote Sync Extension (SFTP & Rsync)

简体中文 | English

Introduction

Fsync is a remote file sync extension for individual developers, built on SFTP and Rsync. It keeps local and remote files in sync with save-triggered uploads, one-click full sync, a remote file explorer, and multi-server profile switching.

Features

  • Save-Upload: Automatically uploads the saved file to the remote server via SFTP.
  • Rsync Full Sync: One-click full rsync sync with automatic SFTP fallback.
  • Remote Explorer: Browse, create, rename, and delete remote files.
  • Multi-Profile: Switch between dev, staging, prod and other server profiles.
  • File Watch: Watches local file changes and syncs automatically.
  • Status Bar: Connection state and sync progress shown in the status bar.

Usage

Getting Started

  1. Run Fsync: Init Config to generate .vscode/fsync.json in the workspace.
  2. Fill in your server profile (see Configuration below).
  3. Click the status bar or run Fsync: Connect to connect.

Manual Upload

  • Fsync: Upload File: Uploads the active editor file; also available from the Explorer context menu.
  • Fsync: Upload Folder: Right-click a folder in the Explorer to upload it to remoteRoot/<relative path>; from the command palette it uploads the whole localRoot.
  • In the Remote Explorer, right-click a remote directory and pick Upload to here... to upload local files into it.

Other Commands

Fsync: Download File, Fsync: Sync All, Fsync: Watch, Fsync: Switch Profile, Fsync: Show Output, etc.

Configuration

Project Config File

The workspace config file is .vscode/fsync.json (path configurable via fsync.configPath). See docs/modules/config.md for the full schema. Core structure:

{
  "activeProfile": "dev",
  "localRoot": ".",
  "profiles": {
    "dev": {
      "host": "your-server.com",
      "port": 22,
      "username": "root",
      "privateKeyPath": "${HOME}/.ssh/id_rsa",
      "remoteRoot": "/var/www/project",
      "syncMode": "auto",
      "uploadOnSave": true,
      "watch": false,
      "ignore": ["node_modules", "dist", ".git"],
      "rsync": { "args": ["-avz"] }
    }
  }
}

Key points:

  • Values support ${VAR} environment variable references, e.g. ${SSH_PASSWORD}.
  • Plaintext password triggers a warning; prefer SSH key auth or environment variables.
  • If the config contains credentials, add it to .gitignore.

VSCode Settings

Setting Default Description
fsync.configPath .vscode/fsync.json Config file path relative to the workspace root
fsync.defaultSyncMode auto Fallback sync mode when a profile omits syncMode (sftp / rsync / auto)
fsync.confirmDelete true Confirm before deleting remote files
fsync.showProgress true Show transfer progress
fsync.logLevel info Log level for the Output panel (debug / info / warn / error)

Output Panel

All operations log to the Fsync output panel (View → Output → Fsync): connection events, transfer progress, rsync commands and statistics. Actively triggered transfers reveal the panel; save-triggered uploads do not. Use Fsync: Show Output to open it anytime.

Acknowledgments

This extension is inspired by and built upon the following projects:

  • Natizyskunk.sftp
  • Sftp-Rsync
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft