Remote Host
A VS Code extension that works like the Remote Host tool window in
JetBrains IDEs (IntelliJ IDEA, PhpStorm, WebStorm...). Connect to multiple
servers over SFTP / FTP / FTPS, browse
and edit files directly on the server, upload on save, diff local against
remote, and open SSH terminals — without leaving VS Code and without syncing
the whole project.

Reusable SSH configurations (user@host:port) are managed in their own
window and shared by any number of hosts — passwords go to the OS keychain,
never into JSON:

Features
Hosts
- Host manager UI — add, edit and delete hosts in a dedicated panel
(
Remote Host: Add / Edit Hosts...); hosts are listed in a sidebar grouped
by scope, with unsaved-draft indicators, Test Connection and
Save & Connect
- Reusable SSH configurations — define
user@host:port + auth once,
reference it from any number of hosts; managed in their own window
- Passwords stay out of JSON — passwords and key passphrases are stored in
the OS keychain (VS Code SecretStorage); legacy plaintext configs migrate
automatically on save
- Workspace and global scope — per-project hosts in
.vscode/remote-hosts.json, global hosts in ~/.vsremote/hosts.json,
available in every project
- Default host auto-connects when the workspace opens; switch hosts via
the status bar item or the ⇄ button in the tree
- Remote folder browser — pick
remotePath from a live folder tree
instead of typing it
Files
Remote file tree in the activity bar — browse, open and edit files
straight on the server; saving uploads back automatically (no temp files)
Upload / Download — files and folders, recursive, with multi-select;
drag & drop from your file manager into the tree to upload
Upload on save — optionally push local edits on every save
(uploadOnSave)
Compare with Remote / Compare with Local — one-click diff between the
local and server copy of a file
New File / New Folder / Rename / Delete / Copy Remote Path from the context
menu
File Transfer log — a panel showing every transfer with progress; long
transfers can be cancelled:

Connection
- SFTP (password, private key or ssh-agent), FTP and FTPS
(implicit TLS is picked automatically on port 990)
- SSH terminal in VS Code's integrated terminal,
cd'd into remotePath
- Auto-reconnect when a dropped connection is used again
- Multi-root workspaces — uploads pick the host whose
localPath contains the
file
Getting started
- Open the Remote Host icon in the activity bar.
- Click Add / Edit Hosts... and fill in the form:
- pick or create an SSH configuration (
user@host:port + password or
key) for SFTP, or enter host/username inline for FTP/FTPS,
- choose the remote path (the Browse... button lets you pick it from
the server),
- optionally tick Upload on save or Save globally.
- Hit Save & Connect — the server appears in the file tree.
Configuration files
Hosts live in .vscode/remote-hosts.json (this project) and
~/.vsremote/hosts.json (global). The host form maintains them for you —
hand-editing is possible but never required:
{
"defaultHost": "My Server",
"hosts": [
{
"name": "My Server",
"protocol": "sftp", // sftp | ftp | ftps
"sshConfig": "deploy@example.com:22", // reference to an SSH configuration
"remotePath": "/var/www/html",
"localPath": ".", // default: workspace root
"uploadOnSave": false,
},
],
}
SSH configurations are stored next to the hosts (ssh-configs.json), identified
by user@host:port. Passwords / passphrases are never written to these
files — they live in the OS keychain.
Usage
| Action |
Where |
| Select / switch host |
The ⇄ icon in the view title, the status bar Remote item, or Remote Host: Switch / Connect Host |
| Add / edit / delete hosts |
Remote Host: Add / Edit Hosts... — or the ... menu in the view title |
| Manage SSH configurations |
Remote Host: SSH Configurations... |
| Edit a file |
Click it in the tree; saving uploads it back |
| SSH terminal |
Terminal icon in the view title or Remote Host: Open SSH Terminal |
| New file/folder, rename, delete, download, copy path |
Right-click file(s)/folder(s) in the tree |
| Upload |
Right-click in the explorer/editor → Upload to Remote Host, or drop files onto the tree |
| Diff |
Right-click a local file → Compare with Remote Host; a tree file → Compare with Local |
| Transfer log |
Remote Host: Show File Transfer Log (panel area) |
License
MIT
| |