LiveSyncLiveSync is a Visual Studio Code extension that lets you instantly sync your local workspace with a remote folder over SSH/SFTP — with real-time difference tracking, conflict detection, customizable sync events, and an intuitive visual interface. It's perfect for developers working with remote servers or any SSH-accessible machine. ⚡ Features at a Glance
🚀 Quick Start1. Install the Extension
2. Set Up Your Connection
📸 Example: 3. Start Syncing
📸 Example: ⚙️ Configuration OptionsLiveSync is configured per workspace folder, either through a visual interface or a dedicated JSON file. Option 1: Use the Configuration Command (Recommended)The configuration panel is the easiest way to get started — no need to edit files manually. How to access it:
📸 Example: If you are working in a multi-root workspace, LiveSync will first ask you to select the workspace folder you want to configure. After that, LiveSync will open either:
This behavior is controlled by the VS Code setting
Option 2: Manual
|
| Setting | Default | Description |
|---|---|---|
livesync.openMode |
prompt |
How Configure Workspace opens: prompt, ui, or json |
livesync.refreshOnConfigSave |
true |
Auto-refresh differences after saving a config file |
livesync.remoteIndex.autoRefreshInterval |
10 |
How often (in minutes) to refresh the remote index in the background |
livesync.statusBar.visibleItems |
[messages, permanent, progress, errors] |
Which status bar items to show |
livesync.index.concurrency |
4 |
Number of parallel operations during indexing |
livesync.view.recentlyResolvedRetentionMs |
800 |
How long (ms) a just-resolved item stays visible before disappearing |
🌳 Tree View Features
LiveSync's Tree View helps you visualize and manage file differences between local and remote folders.
File Status Icons
| Icon | Status | Description |
|---|---|---|
| A | Added | File exists locally only |
| M | Modified | File exists on both sides but content differs |
| U | Unchanged | File is identical on both sides |
| R | Removed | File exists on remote only |
Available Actions
- 📄 View Diffs – Click a file to see the local vs. remote difference
- ⬆ Upload / ⬇ Download – Right-click files or folders to sync manually
- ⬆⬆ Upload Workspace / ⬇⬇ Download Workspace – Bulk sync the entire workspace
- 🗑️ Delete – Remove a file or folder from the remote
- 🔄 Refresh Differences – Re-scan the current project to update the diff view
- 📁 Tree vs. List View – Choose how you browse files (hierarchical or flat)
- 👁 Hide/Show Unchanged Files – Clean up the view for faster triaging
- 📉 Collapse All – Quickly collapse the entire folder tree
🗂️ Multi-Workspace Support
LiveSync supports multi-root workspaces — VS Code workspaces with more than one folder open at the same time.
When you have multiple folders, a Workspace Picker panel appears in the sidebar. Each folder:
- Has its own independent
.vscode/livesync.json(separate server, separate remote path, separate sync rules) - Shows a status icon: ✅ connected, ⚠️ config error, 🚫 no config
Click a folder in the Workspace Picker to make it active — the diff tree updates to show that folder's files. Your selection is remembered between sessions.
The Refresh All button in the Tree View toolbar refreshes every configured workspace at once.
⚠️ Conflict Detection
When an action could overwrite changes, LiveSync warns you before proceeding. A dialog appears with the conflict details and options:
- Proceed – Go ahead with the operation
- Show Diff – Open a side-by-side diff first (when applicable)
- Ignore – Skip this check and proceed silently
- Cancel – Abort the operation
Conflicts are detected for all operations: save, create, delete, move, open, upload, and download. For example:
- Uploading a file when the remote was modified since your last sync
- Downloading a file when your local copy was modified since your last sync
- Creating a file when it already exists on the remote
The dialog times out after 15 seconds and automatically cancels to avoid blocking the queue indefinitely.
💡 Tips & Troubleshooting
- Works best with stable SSH/SFTP connections (slow networks may cause delays)
- You can mix event-based and manual sync as needed
- If something isn't syncing right, check the Output Panel: run
LiveSync: Show Logsfrom the Command Palette - Use
LiveSync: Refresh Remote Indexto manually force a fresh scan of the remote server
📣 Contribute or Report Issues
Found a bug or have a feature idea?
Open an issue on GitHub: LiveSync Issues
📌 License
This extension is licensed under the GPL-3 License.
See LICENSE for details.


