Skip to content
| Marketplace
Sign in
Visual Studio Code>Extension Packs>ProxyBridgeNew to Visual Studio Code? Get it now.
ProxyBridge

ProxyBridge

Liheng Luo

| (0) | Free
Install Proxy Bridge UI and Remote Worker together.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Proxy Bridge

Proxy Bridge v0.1.1 connects an existing HTTP proxy on the local computer to a loopback HTTP proxy listener in a VS Code Remote host.

It consists of two cooperating runtime extensions and one code-free Extension Pack:

  • ProxyBridge Local (LihengLuo.proxy-bridge-local-companion) runs in the local UI Extension Host. It owns the status bar, setup prompts, local companion, and Chisel client.
  • ProxyBridge Remote (LihengLuo.proxy-bridge-remote-worker) runs in the Remote-SSH or Remote-WSL Extension Host. It owns the Chisel server, remote listener, environment validation, and end-to-end URL check.
  • ProxyBridge (LihengLuo.proxy-bridge-extension-pack) installs both runtime extensions from one Marketplace entry.

The two runtimes communicate through a versioned private VS Code Command using plain JSON values and "api": "none". Remote-SSH remains responsible for SSH authentication, SSH config, jump hosts, and forwarding. Proxy Bridge uses only public VS Code APIs, including vscode.env.asExternalUri, and never reads SSH connection details.

First use and settings

Open a Remote-SSH or Remote-WSL window. Until the remote settings have been confirmed once, the status bar displays Proxy Bridge: Configure and automatic Start is skipped. Click the status bar and choose Configure to review and save:

Setting Owner Default Meaning
proxyBridge.localUpstreamProxyPort Local UI Extension Host 7890 Existing local HTTP proxy on 127.0.0.1.
proxyBridge.remoteProxyPort Remote Extension Host 10365 Proxy listener used by remote applications on 127.0.0.1.
proxyBridge.testUrl Remote Extension Host https://github.com/ HTTP or HTTPS URL used to verify the complete proxy route from the remote host.

The same values remain editable in native VS Code Settings. The UI extension writes only the local setting; the Remote Worker writes only the two remote settings. After setup, Proxy Bridge starts immediately. Relevant setting changes safely rebuild the affected route.

The remote shell environment must point HTTP and HTTPS traffic to the selected remote port. For the default port:

export HTTP_PROXY=http://127.0.0.1:10365
export HTTPS_PROXY=http://127.0.0.1:10365
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"

Persist these exports in ~/.bashrc or ~/.profile, then open a new shell and reload or reconnect the remote window. Proxy Bridge checks the Extension Host environment and the login shell. If the login shell cannot be read within 20 seconds, it logs a warning and continues; a confirmed conflicting value remains an actionable error.

Status and traffic

The status bar shows Configure, Starting, live download/upload rates, bridge latency, or Error. Click it for:

  • Configure
  • Start / Retry
  • Show Log

Traffic is measured by a transparent local TCP relay:

remote 127.0.0.1:10365
  -> Chisel reverse tunnel
  -> local metering relay on a random loopback port
  -> local 127.0.0.1:7890

The relay is a detached, loopback-only local companion shared by Proxy Bridge windows. This prevents a second VS Code Remote window from replacing the first window's relay or resetting its counters, and closing one window does not dismantle a route still used by another. It uses Node's native net.Server and net.Socket byte counters and records no URLs, headers, or payloads. The displayed rate is the rolling five-second average of actual traffic crossing Proxy Bridge, so short bursts remain visible for the full window. Every five seconds, the Remote Worker times one small HTTP CONNECT handshake through the bridge; it downloads no content and supplies the displayed latency. Three consecutive probe failures change the status to Error. Start, diagnosis, and latency handshakes contribute a small amount of measured traffic.

All operational events use one local Proxy Bridge LogOutputChannel. Lines are marked [local] or [remote]; the remote extension creates no second Output panel. Authentication material, tokens, cookies, authorization values, userinfo URLs, and complete process command lines are not logged.

Start flow

Proxy Bridge: Start is the single user command and also runs automatically after activation when setup is complete.

Start validates the remote proxy environment, obtains the remote operation lock, and reuses a healthy owned Chisel server. It then obtains a public VS Code endpoint, validates the local upstream proxy, starts or reuses the local metering companion, and starts or reuses the owned Chisel client. Concurrent Starts wait on the same route operation. Lock files include their owner PID and token, so a terminated Extension Host cannot permanently block later Starts. A final read-only diagnosis checks both runtimes, the listener, and the configured Test URL through the remote proxy.

Recorded processes are stopped only after command-line ownership verification, and a process is reusable only when its PID owns the recorded listening port and route identity. The configured remote proxy port is the explicit exception for an unrecorded listener: Proxy Bridge repeatedly resolves and rechecks its current PID, attempts bounded TERM/KILL cleanup, and logs whether identification, termination, and port release succeeded. If a PID cannot be identified or stopped, Start fails with that reason. Other unknown processes are not touched. A saved internal port that is no longer available is replaced with a new random loopback port. Runtime state is replaced atomically, and a newly started process is stopped if readiness or state persistence fails. Credentials are generated from the OS cryptographic random source and stored separately with restricted permissions.

Build

npm ci
npm run check
npm run package
npm run package:remote
npm run package:pack

This creates:

  • proxy-bridge-local-companion-0.1.1.vsix for Windows x64 local VS Code.
  • proxy-bridge-remote-worker-0.1.1.vsix for Linux x64 Remote-SSH/WSL.
  • proxy-bridge-extension-pack-0.1.1.vsix, the code-free Extension Pack.

Manual VSIX installation

Marketplace access is not required when the two runtime VSIX files are available:

  1. On the local Windows computer, install proxy-bridge-local-companion-0.1.1.vsix with Extensions: Install from VSIX..., or run:

    code --install-extension .\proxy-bridge-local-companion-0.1.1.vsix --force
    
  2. Open the target Remote-SSH or Remote-WSL window. In that connected window, run Extensions: Install from VSIX..., select proxy-bridge-remote-worker-0.1.1.vsix, and confirm that it appears under SSH: host or WSL rather than Local - Installed.

  3. Run Developer: Reload Window. The local status bar then prompts for the local proxy port, remote listener port, and Test URL on first use.

The code-free proxy-bridge-extension-pack-0.1.1.vsix is the Marketplace entry. It references LihengLuo.proxy-bridge-local-companion and LihengLuo.proxy-bridge-remote-worker by extension ID but does not embed their VSIX files. A fully offline installation must therefore install the Local Companion and Remote Worker VSIX files directly; installing only the Pack VSIX cannot provide the runtimes.

For a Marketplace installation, install LihengLuo.proxy-bridge-extension-pack once in a connected remote window. VS Code resolves and places both runtime extensions automatically.

The release packages contain one minified JavaScript bundle and only the Chisel binary for their host target. They omit source maps, tests, runtime state, credentials, logs, archives, extraction directories, and user settings.

Limitations

  • The packaged runtime targets are currently Windows x64 locally and Linux x64 remotely.
  • The matching Remote-SSH or Remote-WSL connection must already be open so VS Code can provide the public remote endpoint.
  • Offline installation still requires selecting the local and remote VSIX in their respective Extension Hosts.
  • Chisel is a bundled verified release asset, so changing it requires a new extension version.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft