Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Virgo Auto-FTPNew to Visual Studio Code? Get it now.
Virgo Auto-FTP

Virgo Auto-FTP

Virgo Internet Services Ltd.

|
35 installs
| (0) | Free
Automatically uploads files to FTP/SFTP server on save.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Virgo Auto-FTP

The Ultimate FTP/SFTP Extension for Visual Studio Code

Virgo FTP is a powerful, feature-rich Visual Studio Code extension that provides automatic FTP/SFTP file synchronization directly from your editor. With real-time file watching, configurable connection profiles, and secure authentication, Virgo FTP automatically uploads files to your server on save or creation, streamlining your deployment workflow with zero friction.

Features

  • Auto Upload on Save: Files are automatically uploaded when saved
  • Auto Upload on Create: New files are uploaded automatically
  • Auto Delete on Remote: Optionally delete remote files when local files are deleted (disabled by default)
  • FTP/FTPS/SFTP Support: Works with FTP, FTPS (secure FTP), and SFTP protocols
  • Secure Credential Storage: Passwords are stored securely using VS Code's SecretStorage API
  • Private Key Authentication: Support for SSH key-based authentication (SFTP)
  • Subfolder Config Support: Each subfolder can have its own .virgo-ftp.json config file
  • Ignore Patterns: Exclude files using glob patterns
  • Connection Pooling: Reusable connections prevent "too many connections" errors
  • Concurrent Uploads: Multiple files can be uploaded simultaneously (configurable max connections)
  • Auto-Reconnect: Broken connections are automatically replaced
  • Retry Mechanism: Automatic retry on failed uploads

Installation

  1. Download the .vsix file from releases
  2. In VS Code, press Ctrl+Shift+P and run "Extensions: Install from VSIX..."
  3. Select the downloaded file

Configuration

Create a .virgo-ftp.json file in your project root (or any subfolder):

{
    "host": "ftp.example.com",
    "port": 21,
    "user": "username",
    "protocol": "ftp",
    "remotePath": "/public_html",
    "uploadOnSave": true
}

Configuration Options

Option Type Default Description
host string required FTP/SFTP server address
port number 21 (FTP) / 22 (SFTP) Server port
user string required Username
password string - Password (not recommended, use SecretStorage instead)
protocol string required "ftp" or "sftp"
secure boolean/string false true for FTPS, "implicit" for implicit FTPS
remotePath string / Remote directory path
uploadOnSave boolean true Enable auto-upload on save
localRoot string - Local folder to watch (relative to config file)
ignore string[] - Glob patterns to ignore
retries number 3 Retry count on failure
timeout number 10000 Connection timeout in ms (1000-60000)
privateKeyPath string - Path to SSH private key (SFTP only)
acceptUnauthorized boolean false Accept self-signed certificates
deleteOnRemote boolean false Delete remote files when local files are deleted

Subfolder Configuration

You can place a .virgo-ftp.json file in any subfolder to use different FTP settings for that folder and its contents. The extension searches upward from the file being saved to find the nearest config file.

Example project structure:

my-project/
├── .virgo-ftp.json          # Main config (uploads to production)
├── src/
│   └── app.js
├── staging/
│   ├── .virgo-ftp.json      # Staging config (uploads to staging server)
│   └── test.js
└── docs/
    ├── .virgo-ftp.json      # Docs config (uploads to docs server)
    └── index.html

In this example:

  • src/app.js uses the root config (production server)
  • staging/test.js uses staging/.virgo-ftp.json (staging server)
  • docs/index.html uses docs/.virgo-ftp.json (docs server)

Example Configurations

Basic FTP:

{
    "host": "ftp.example.com",
    "user": "ftpuser",
    "protocol": "ftp",
    "remotePath": "/public_html"
}

SFTP with Private Key:

{
    "host": "server.example.com",
    "port": 22,
    "user": "deploy",
    "protocol": "sftp",
    "privateKeyPath": "~/.ssh/id_ed25519",
    "remotePath": "/var/www/app"
}

FTPS (Explicit):

{
    "host": "ftp.example.com",
    "user": "ftpuser",
    "protocol": "ftp",
    "secure": true,
    "remotePath": "/public_html"
}

With Ignore Patterns:

{
    "host": "ftp.example.com",
    "user": "ftpuser",
    "protocol": "ftp",
    "remotePath": "/public_html",
    "ignore": [
        "node_modules/**",
        ".git/**",
        "*.log",
        ".env"
    ]
}

With Auto-Delete on Remote:

{
    "host": "ftp.example.com",
    "user": "ftpuser",
    "protocol": "ftp",
    "remotePath": "/public_html",
    "deleteOnRemote": true
}

Warning: When deleteOnRemote is enabled, deleting a local file will also delete the corresponding file on the remote server. This action is irreversible. Use with caution!

VS Code Settings

Configure extension behavior in VS Code settings (Ctrl+,):

Setting Type Default Description
virgoAutoFtp.enable boolean true Enable/disable auto-upload globally
virgoAutoFtp.maxConnections number 10 Maximum concurrent FTP/SFTP connections (1-20). Connections are pooled and reused.

Commands

  • Virgo Auto-FTP: Upload Current File - Upload the active file
  • Virgo Auto-FTP: Toggle Auto-Upload - Enable/disable auto-upload
  • Upload with Virgo Auto-FTP - Right-click context menu for files
  • Upload Folder with Virgo Auto-FTP - Right-click context menu for folders

Status Bar

The status bar shows the current state:

  • $(zap) Virgo Auto-FTP - Auto-upload enabled
  • $(circle-slash) Virgo Auto-FTP - Auto-upload disabled
  • $(sync~spin) Uploading (n) - Upload in progress
  • $(check) filename - Upload successful (shown for 3 seconds)
  • $(error) filename - Upload failed

Security

  • Passwords are never stored in config files
  • Passwords are saved using VS Code's SecretStorage (OS keychain)
  • Private key file permissions are validated on Linux/Mac
  • Remote path traversal (..) is blocked for security

About Virgo Internet Services

Virgo Auto-FTP is developed and maintained by Mustafa Odabaşı, Software Developer at Virgo Internet Services Ltd. — delivering high-quality web solutions since 1997.

📧 Contact: modabasi@virgo.com.tr

Support

If you find this extension useful, consider supporting its development:

Buy Me A Coffee

Related Extensions

Check out other Virgo extensions:

Visual Studio Code Marketplace

  • Virgo Minifier - Automatic file minification for CSS, JS, HTML, JSON, XML, and SVG
  • Virgo SSH - SSH terminal client for VS Code

Open VSX Registry (Cursor, Windsurf, etc.)

  • Virgo Minifier - Automatic file minification for CSS, JS, HTML, JSON, XML, and SVG
  • Virgo SSH - SSH terminal client for VS Code

Enjoy using Virgo Auto-FTP! If you find it helpful, please consider leaving a review on your marketplace of choice.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft