Back to Docs

Web Remote Access

Access your full VS Code workspace from any browser. The extension includes a built-in web server that serves VS Code for the Web, with multi-user sessions, per-user API key isolation, and optional secure tunnel integration.

How It Works

The extension embeds a lightweight Express server that serves VS Code for the Web on a configurable port (default: 18462). When combined with a secure tunnel, this gives you a public URL to access your workspace from anywhere — laptop, tablet, or phone.

Architecture

Browser → Secure Tunnel → localhost:18462 → VS Code Web Server → Your Workspace

1. Enable Web Access

Web access is disabled by default. Enable it in VS Code settings:

JSON
// settings.json
{
  "mrMultiCoder.webAccess.enabled": true,
  "mrMultiCoder.webAccess.port": 18462,
  "mrMultiCoder.webAccess.autoStart": true  // optional: start on launch
}

Or start manually:

1

Ctrl+Shift+P → "MR Multi coder: Start Web Server"

2

The output channel shows the local URL (e.g. http://localhost:18462).

3

Open the URL in any browser on the same machine or network.

2. Add Web Users

Each web user gets their own session with isolated API key storage. Users log in with a username and password — no VS Code account needed.

1

Ctrl+Shift+P → "MR Multi coder: Add Web User".

2

Enter a username and password when prompted.

3

Share the credentials with the user.

4

The user opens the web URL and logs in.

Manage existing users:

1

Ctrl+Shift+P → "MR Multi coder: Manage Web Users".

2

View, remove, or reset passwords for existing users.

3. Per-User API Key Isolation

Each web user can set their own API keys for any provider. Keys are stored in an encrypted per-user secret store — separate from the host user's keys and from other web users.

ScopeStorage
Host user (VS Code desktop)OS keychain via SecretStorage
Web user AEncrypted file in ~/.mrcoder/web-secrets/
Web user BEncrypted file in ~/.mrcoder/web-secrets/

Web users set their keys from the provider chip in the web chat UI — the same flow as in desktop VS Code.

4. Expose via Secure Tunnel

To access your workspace from outside your local network, connect a secure tunnel to the web server port.

1

Ctrl+Shift+P → "MR Multi coder: Create Tunnel Domain" (or create one at mr-coder.io/dashboard/tunnels).

2

The tunnel routes your-subdomain.mr-coder.io → localhost:18462.

3

Share the tunnel URL with your team. Users log in with their web user credentials.

Tunnels are encrypted end-to-end. See the Tunnel Management Guide for auto-expiry, multi-port routing, and plan-based limits.

5. Session Limits & Timeouts

Control how many concurrent web sessions are allowed and how long they last.

JSON
// settings.json
{
  "mrMultiCoder.webAccess.sessionTimeout": 86400000,  // 24 hours (ms)
  "mrMultiCoder.webAccess.maxSessions": 5              // concurrent sessions
}

When the session limit is reached, the oldest idle session is disconnected to make room for new users.

6. Provider Restrictions for Web

CLI-based providers (Kilo Code, iFlow) are not available in web sessions because the CLI subprocess requires a desktop VS Code instance. Web users can use any API-based provider: Claude, MR Coder, Qwen (API mode), OpenRouter, Ollama, Codex (API mode), Gemini (API mode), and HuggingFace.

7. Stopping the Web Server

1

Ctrl+Shift+P → "MR Multi coder: Stop Web Server".

2

All active web sessions are disconnected immediately.

3

The web server port is freed.

The web server stops automatically when VS Code closes (unless autoStart is enabled for next launch).

Troubleshooting

IssueSolution
Port 18462 already in useChange mrMultiCoder.webAccess.port to a different port, or stop the conflicting process.
Web page loads but chat doesn't workCheck that the MR Multi coder extension is in the allowedExtensions list (it is by default).
User can't set API keysEnsure the web-secrets directory (~/.mrcoder/web-secrets/) exists and is writable.
Tunnel URL not reachableVerify the tunnel client is running and pointing to the correct port.
Session expired unexpectedlyIncrease mrMultiCoder.webAccess.sessionTimeout or check maxSessions limit.