Upload files via FTP, FTPS or SFTP directly from VS Code. Built for Windows Samba shares, mapped drives and UNC paths — with multi-profile support and OS keychain password storage.
[12:04:01] ✓ Profile: prod [12:04:01] → Connecting to prod.example.com:22 [12:04:02] ✓ SFTP connected [12:04:02] ↑ Uploading src/index.asp [12:04:02] ✓ src/index.asp → /var/www/prod [12:04:02] ↑ Uploading src/utils.asp [12:04:03] ✓ src/utils.asp → /var/www/prod [12:04:03] ✓ Done — 2 files uploaded [12:04:03] ■ Upload on save: active
Switch between dev, staging and prod from the status bar. Active profile persists per workspace.
Passwords never touch settings.json. Stored in Windows Credential Manager or macOS Keychain via VS Code Secret Storage.
Handles mapped drives (Z:\path), UNC paths (\\server\share) and Git Bash / WSL paths transparently.
Automatically uploads the active file on every save. Toggle per profile. Zero friction.
Right-click any file or folder in the Explorer to upload it instantly without switching away.
SFTP supports private key + passphrase authentication. No password required.
Add this to your workspace .vscode/settings.json.
Passwords are stored in the OS keychain — never in this file.
{
"ftpDeploy.profiles": {
"dev": {
"protocol": "ftp",
"host": "192.168.1.100",
"user": "ftpuser",
"remotePath": "/var/www/myapp",
"localRoot": "Z:\\projects\\myapp", // mapped drive OK
"uploadOnSave": true
},
"staging": {
"protocol": "ftps",
"host": "staging.example.com",
"user": "deploy",
"remotePath": "/var/www/staging",
"ftpsImplicit": false,
"uploadOnSave": false
},
"prod": {
"protocol": "sftp",
"host": "prod.example.com",
"port": 22,
"user": "deploy",
"remotePath": "/var/www/prod",
"privateKeyPath": "C:\\Users\\you\\.ssh\\id_rsa",
"uploadOnSave": false
}
}
}
Upload Entire Folder
can also be triggered from a task/script with an explicit profile —
executeCommand('ftpDeploy.uploadFolder', { profile: 'prod' }).
Add "confirmBeforeUpload": false
to a profile to skip the confirmation dialog for automation.
Open VS Code → Extensions (Ctrl+Shift+X) → search GPA FTP Deploy → Install.
Open Command Palette (Ctrl+Shift+P) → FTP Deploy: Open Workspace Config and paste your profile JSON.
Run FTP Deploy: Save Password to Keychain — password is stored in the OS credential manager, never in plain text.
Save any file to trigger an upload, or right-click in the Explorer → FTP Deploy: Upload →. Watch the Output panel for live logs.