Remote Proxy Auto Forward
VS Code extension that reverse-forwards a local proxy into a remote VS Code window and applies proxy defaults for Remote SSH terminals, VS Code HTTP clients, remote extensions, and Git.
The first supported target is Remote SSH. WSL and Dev Containers are detected but intentionally left as extension points because they need different forwarding strategies.
What it does
Detects a local proxy from remoteProxy.localProxy.url, HTTP_PROXY / HTTPS_PROXY / ALL_PROXY, or common local ports such as 7890, 1080, and 8080.
Starts an SSH reverse tunnel:
remote 127.0.0.1:17890 -> local 127.0.0.1:<detected proxy port>
If 17890 is already in use on the remote, nearby ports are tried automatically and the selected port is written to the remote proxy settings.
Applies remote VS Code settings:
http.proxy
http.proxySupport
terminal.integrated.env.*
Optionally patches the remote VS Code server machine settings file.
Optionally writes a managed block to ~/.vscode-server/server-env-setup so remote extension hosts inherit proxy environment variables after reconnect.
Optionally sets remote global Git proxy config.
Adds a status bar menu with start, stop, restart, diagnostics, local proxy selection, SSH host override controls, output, and settings.
Commands
Remote Proxy: Start
Remote Proxy: Stop
Remote Proxy: Restart
Remote Proxy: Apply Remote Settings
Remote Proxy: Pick Local Proxy
Remote Proxy: Pick SSH Host
Remote Proxy: Clear SSH Host Override
Remote Proxy: Open Menu
Remote Proxy: Diagnose
Remote Proxy: Show Output
Remote Proxy: Open Settings
Remote Proxy: Show Status
The status bar item opens the same menu. Its tooltip shows the active SSH host, local proxy, remote proxy URL, and the latest error.
Important SSH note
The extension starts a background ssh -R process from the local extension host. For this to be non-interactive, your SSH config should use keys, an agent, or an existing control master. By default remoteProxy.ssh.batchMode is enabled so the command fails quickly instead of hanging on a password prompt.
By default, the extension writes remote settings through SSH instead of the VS Code configuration API. This avoids accidentally changing local user settings from the local UI extension host.
Troubleshooting
If status shows remote: ssh-remote (no authority), the extension first asks Remote - SSH's internal remote-internal.getActiveSshRemote command for the active host, then checks current workspace storage. Global storage.json fallback is disabled by default because it can be stale in Extension Development Host windows. If you previously used Remote Proxy: Pick SSH Host, run Remote Proxy: Clear SSH Host Override to return to automatic host detection.
Development
npm install
npm run compile
npx @vscode/vsce package