⚡ GPA FTP Deploy
Why this extension?Most FTP extensions break when Key highlights:
Supported protocols
InstallationFrom the Marketplace (recommended):
From VSIX (manual):
ConfigurationOpen the workspace settings with
Accepted
|
| Format | Example |
|---|---|
| Windows mapped drive | Z:\\projects\\myapp |
| UNC / Samba path | \\\\server\\share\\myapp |
| Git Bash / WSL | /z/projects/myapp → auto-converted |
| (empty) | Uses the VS Code workspace root |
Password management
Passwords should never live in settings.json. Use the Command Palette (Ctrl+Shift+P):
| Command | Action |
|---|---|
FTP Deploy: Save Password to Keychain |
Prompts for password, stores it in the OS keychain |
FTP Deploy: Remove Password from Keychain |
Deletes the stored password |
Resolution order:
- OS keychain (Windows Credential Manager / macOS Keychain)
passwordfield insettings.json— used with a migration warning- Interactive prompt → automatically saved to keychain
Commands
All commands are available via the Command Palette (Ctrl+Shift+P):
| Command | Description |
|---|---|
FTP Deploy: Select Profile |
Switch active profile (QuickPick) |
FTP Deploy: Upload Current File |
Upload the file open in the editor |
FTP Deploy: Upload Entire Folder |
Upload the entire localRoot |
FTP Deploy: Upload → |
Right-click a file/folder in the Explorer |
FTP Deploy: Save Password to Keychain |
Store password securely |
FTP Deploy: Remove Password from Keychain |
Delete stored password |
FTP Deploy: Test Connection |
Verify server connectivity |
FTP Deploy: Show Log |
Open Output → FTP Deploy |
FTP Deploy: Open Workspace Config |
Open .vscode/settings.json |
FTP Deploy: Add Profile |
Guided wizard for a new profile |
Status bar
The active profile is shown in the bottom-right status bar:
☁ FTP: dev ← click to switch
Click it (or run FTP Deploy: Select Profile) to change profile. The selection is remembered per workspace.
Protocol reference
FTP
{ "protocol": "ftp", "passive": true }
FTPS (FTP over TLS)
{
"protocol": "ftps",
"ftpsImplicit": false, // true = port 990; false = STARTTLS port 21
"rejectUnauthorized": false // false only for self-signed certificates
}
SFTP (SSH)
{
"protocol": "sftp",
"port": 22,
// password auth: use "Save Password to Keychain"
// key-based auth:
"privateKeyPath": "C:\\Users\\you\\.ssh\\id_rsa",
"passphrase": "" // leave empty if key has no passphrase
}
Requirements
- VS Code
^1.80.0 - Node.js 18+ (only for building from source)
Contributing
Pull requests and issues are welcome!
- Fork the repo
- Create your branch:
git checkout -b feature/my-feature - Commit:
git commit -m 'feat: add my feature' - Push:
git push origin feature/my-feature - Open a Pull Request
License
MIT © 2026 GPAutomation / gyagix