SFTP+

Full read/write access to SFTP/FTPS servers in VS Code
SFTP+ solves the read-only limitation of existing SFTP extensions by mounting remote servers as native Windows drives using rclone and WinFsp.
Features
- 🔌 Connect/Disconnect - Mount FTPS/SFTP servers as Windows drives
- 📁 Full Read/Write - Edit files directly, changes sync automatically
- 🔐 Secure Credentials - Passwords stored in VS Code's secure storage
- 🚀 Auto-Connect - Optionally connect on VS Code startup
- 📊 Status Bar - See active connections at a glance
- 🌳 Tree View - Manage connections from the activity bar
- 📂 File Browser - Browse remote files directly in VS Code
- ⚙️ Hybrid Config - Store connections globally or per-workspace
Prerequisites
SFTP+ requires two external tools (Windows only). The extension can install them automatically via winget - just click on rclone or WinFsp in the SFTP+ panel.
Manual installation (optional)
If you prefer to install manually:
rclone:
winget install Rclone.Rclone
WinFsp:
winget install WinFsp.WinFsp
Note: A system reboot may be required after installing WinFsp.
Quick Start
- Install the extension
- Open the SFTP+ panel in the Activity Bar
- Click the prerequisites (rclone/WinFsp) to install if needed
- Click + to add a new connection
- Fill in server details and save
- Click the connection to mount it as a Windows drive!
Configuration
Connection Options
| Option |
Type |
Default |
Description |
name |
string |
required |
Display name for the connection |
host |
string |
required |
Server hostname or IP |
port |
number |
21/22 |
Server port (21 for FTP/FTPS, 22 for SFTP) |
protocol |
string |
"ftps" |
Protocol: "ftp", "ftps", or "sftp" |
username |
string |
required |
Username for authentication |
remotePath |
string |
"/" |
Remote path to mount |
driveLetter |
string |
auto |
Windows drive letter (e.g., "Z") |
explicitTls |
boolean |
true |
Use explicit TLS for FTPS |
ignoreCertErrors |
boolean |
false |
Ignore SSL certificate errors |
autoConnect |
boolean |
false |
Connect on VS Code startup |
cacheMode |
string |
"full" |
VFS cache mode |
idleTimeout |
string |
"5m" |
Keep-alive timeout |
Storage Options
Connections can be stored in two locations:
- Global (
settings.json) - Available in all workspaces
- Workspace (
.vscode/sftp_plus.json) - Specific to current workspace
Passwords are stored securely in VS Code's SecretStorage, or optionally in the workspace JSON file.
Workspace Configuration File
You can create or edit .vscode/sftp_plus.json manually to configure connections for your workspace:
{
"connections": [
{
"name": "My Server",
"host": "ftp.example.com",
"port": 21,
"protocol": "ftps",
"username": "myuser",
"password": "mypassword",
"remotePath": "/",
"driveLetter": "Z",
"autoConnect": false,
"explicitTls": true,
"ignoreCertErrors": false
}
]
}
Password Storage Options
| Method |
Location |
Security |
Use Case |
| SecretStorage |
VS Code secure storage |
✅ Encrypted |
Recommended for most users |
| Workspace JSON |
.vscode/sftp_plus.json |
⚠️ Plain text |
Shared team configs, CI/CD |
To store the password in the workspace file, simply add the password field to your connection object. If omitted, SFTP+ will prompt for the password and store it securely in VS Code's SecretStorage.
⚠️ Security Warning: If you add passwords to sftp_plus.json, make sure to add .vscode/sftp_plus.json to your .gitignore to avoid committing credentials to version control.
Extension Settings
| Setting |
Type |
Default |
Description |
sftp-plus.rclonePath |
string |
"" |
Custom path to rclone executable |
sftp-plus.showStatusBar |
boolean |
true |
Show status bar indicator |
sftp-plus.logLevel |
string |
"info" |
Log verbosity (debug/info/warn/error) |
Commands
| Command |
Description |
SFTP+: Connect |
Connect to a server |
SFTP+: Disconnect |
Disconnect from a server |
SFTP+: Disconnect All |
Disconnect all active connections |
SFTP+: Add Connection |
Add a new connection |
SFTP+: Refresh Connections |
Reload connection list |
SFTP+: Open in File Explorer |
Open mounted drive in Windows Explorer |
How It Works
- SFTP+ uses rclone to connect to your FTPS/SFTP server
- WinFsp creates a virtual Windows drive
- The remote filesystem is mounted to a drive letter (e.g., Z:)
- VS Code can read/write files as if they were local
- rclone syncs changes back to the server automatically
Limitations
- Windows only - WinFsp is Windows-specific
- External dependencies - Requires rclone and WinFsp installation
- Network-dependent - Performance depends on server latency
Troubleshooting
"rclone not found"
Make sure rclone is installed and in your PATH:
rclone version
"WinFsp not installed"
Install WinFsp and reboot if necessary:
winget install WinFsp.WinFsp
Connection fails
- Check server address and port
- Verify username and password
- For self-signed certificates, enable
ignoreCertErrors
- Check the Output panel (View → Output → SFTP+) for logs
Drive not appearing
The mount may take a few seconds. Check for available drive letters.
Contributing
Issues and pull requests welcome on GitHub.
License
MIT © 2026 Raphael Cornuz