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:
// settings.json
{
"mrMultiCoder.webAccess.enabled": true,
"mrMultiCoder.webAccess.port": 18462,
"mrMultiCoder.webAccess.autoStart": true // optional: start on launch
}Or start manually:
Ctrl+Shift+P → "MR Multi coder: Start Web Server"
The output channel shows the local URL (e.g. http://localhost:18462).
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.
Ctrl+Shift+P → "MR Multi coder: Add Web User".
Enter a username and password when prompted.
Share the credentials with the user.
The user opens the web URL and logs in.
Manage existing users:
Ctrl+Shift+P → "MR Multi coder: Manage Web Users".
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.
| Scope | Storage |
|---|---|
| Host user (VS Code desktop) | OS keychain via SecretStorage |
| Web user A | Encrypted file in ~/.mrcoder/web-secrets/ |
| Web user B | Encrypted 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.
Ctrl+Shift+P → "MR Multi coder: Create Tunnel Domain" (or create one at mr-coder.io/dashboard/tunnels).
The tunnel routes your-subdomain.mr-coder.io → localhost:18462.
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.
// 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
Ctrl+Shift+P → "MR Multi coder: Stop Web Server".
All active web sessions are disconnected immediately.
The web server port is freed.
The web server stops automatically when VS Code closes (unless autoStart is enabled for next launch).
Troubleshooting
| Issue | Solution |
|---|---|
| Port 18462 already in use | Change mrMultiCoder.webAccess.port to a different port, or stop the conflicting process. |
| Web page loads but chat doesn't work | Check that the MR Multi coder extension is in the allowedExtensions list (it is by default). |
| User can't set API keys | Ensure the web-secrets directory (~/.mrcoder/web-secrets/) exists and is writable. |
| Tunnel URL not reachable | Verify the tunnel client is running and pointing to the correct port. |
| Session expired unexpectedly | Increase mrMultiCoder.webAccess.sessionTimeout or check maxSessions limit. |