FTP Express — VS Code Extension
Fast, secure FTP / SFTP / SCP sync for VS Code.
Maintained by Blackmoon · blackmoon@mail.com
Features
- 🔄 Sync Local → Remote and Remote → Local with a guided wizard
- 💾 Upload on Save — automatic upload every time you save a file
- ⚡ Settings UI — graphical settings panel, no raw JSON editing needed
- 📂 Browse Remote — navigate and manage files on the server live
- 🔒 Secure — credentials filtered from logs,
.gitignore auto-updated on init
- 🌐 Protocols — FTP, FTPS (TLS), SFTP (SSH), SCP
- 📊 Connection status bar — always see if you're connected
Quick Start
- Open your project folder in VS Code
- Press
Ctrl+Shift+P → Ftp-sync: Init
- Open Settings:
Ctrl+Shift+P → Ftp-sync: Settings ⚡
- Fill in Host, Username, Password, Remote Path
- Click ✦ Save Settings
- Press
Ctrl+Shift+P → Ftp-sync: Sync Local to Remote
⚠️ Security: ftp-sync.json contains your credentials. The extension automatically adds it to .gitignore — never commit it to a public repository.
Commands
| Command |
Description |
| Ftp-sync: Init |
Create a default config file in .vscode/ |
| Ftp-sync: Settings ⚡ |
Open the graphical settings panel |
| Ftp-sync: Sync Local to Remote |
Upload changes to the server |
| Ftp-sync: Sync Remote to Local |
Download changes from the server |
| Ftp-sync: Commit |
Execute a reviewed list of sync operations |
| Ftp-sync: Upload File |
Upload the currently open file |
| Ftp-sync: Download File |
Download the remote version of the current file |
| Ftp-sync: Browse Remote |
Navigate and manage files on the server |
You can also right-click any file in the Explorer sidebar to access Upload/Download/Browse commands.
Configuration Reference
Settings are stored in .vscode/ftp-sync.json. Use the Settings ⚡ panel to edit them visually.
| Option |
Default |
Description |
host |
"host" |
FTP server hostname or IP |
port |
21 |
Port (21 for FTP, 22 for SFTP/SCP) |
username |
"username" |
FTP account username |
password |
"" |
FTP account password |
remotePath |
"./" |
Remote directory to sync into |
protocol |
"ftp" |
"ftp", "sftp", or "scp" |
secure |
false |
Use TLS/FTPS (FTP only) |
passive |
false |
Use FTP passive mode (recommended behind NAT) |
uploadOnSave |
false |
Auto-upload files on Ctrl+S |
debug |
false |
Show verbose logs in Output panel |
privateKeyPath |
null |
Path to SSH private key (SFTP/SCP) |
passphrase |
null |
Passphrase for the private key |
agent |
null |
SSH agent socket (e.g. pageant) |
ignore |
["\\.git", "\\.vscode", "\\.DS_Store"] |
Regex patterns to exclude |
allow |
[] |
Whitelist regex patterns (empty = allow all) |
generatedFiles |
{ extensionsToInclude: [], path: "" } |
Auto-upload generated files by extension |
Sync Modes
| Mode |
Behaviour |
| Full-sync |
Adds, updates, and deletes orphan files on the target side |
| Safe-sync |
Only adds and updates — never deletes anything |
| Force |
Transfers all files regardless of size differences |
Found a Bug? Have a Question?
Please include: OS, VS Code version, protocol used, and the content of the ftp-sync Output panel (with "debug": true).
Version History
- 0.4.0 — Blackmoon release: Settings UI panel, serial BFS queue (throttle fix), connect race fix, credential log filtering,
.gitignore auto-update, connection status bar, debounce on save, spinner icons, SFTP channel caching
- 0.3.9 — Fix for autogenerated files not uploading correctly
- 0.3.8 — Updated generatedFiles config; uploadOnSave works on every file
- 0.3.7 — Fix for broken uploadOnSave and subdirectories not adding properly
- 0.3.5 — SCP support, list command, ignore/allow regex fix, ssh-agent support
- 0.3.3 — Support for generated files
- 0.3.2 — FTP over SSL, sync current file, vscode 1.5+ compatibility
- 0.3.1 — SFTP private key support
- 0.3.0 — SFTP protocol support, improved sync performance
- 0.2.x — Passive mode, upload on save fixes, download fixes, sync wizard
- 0.1.0 — First release
Use at your own risk — no warranty is provided.
| |