Web Remote Desktop
Browser remote from the web console — no separate desktop app required. Prefer HTTPS so WebCodecs (VP9/AV1) work; plain HTTP falls back to H.264 with lower performance.
For operators: open a device → Connect (or Support Agent Web Remote) → enter password → use quality presets / recording as needed. If the target is in WebSocket mode, use a current 3.5.x relay (TCP↔WS bridge).
For developers: codec / input notes further down.
Features
| Feature | HTTPS | HTTP |
|---|---|---|
| Video codec | VP9, H.264, AV1, VP8 (WebCodecs) | H.264 only (JMuxer fallback) |
| Max FPS | 60 | 30 |
| Audio / keyboard / mouse / clipboard | Yes | Yes |
| Session recording | WebM VP9+Opus | WebM VP9+Opus |
| Monitor switching / quality presets | Yes | Yes |
Connecting
From the Devices Page
- Click the kebab menu (⋮) on a device row
- Select Connect
- Enter the device password
- The remote desktop opens in a new tab
Direct URL
http://your-server:5000/remote?id=DEVICE_ID
Controls
Toolbar
The remote desktop toolbar appears at the top:
| Button | Function |
|---|---|
| Quality | Switch between Speed / Balanced / Quality / Best presets |
| Monitor | Select which monitor to view (shows resolution) |
| Record | Start/stop session recording (downloads WebM on stop) |
| Fullscreen | Toggle fullscreen mode |
| Disconnect | End the remote session |
Keyboard Shortcuts
All standard keyboard shortcuts pass through to the remote machine, including:
- Modifier keys (Ctrl, Alt, Shift, Win/Meta)
- Function keys (F1-F12)
- Special keys (PrintScreen, Scroll Lock, Pause)
- Ctrl+Alt+Delete (when supported by the remote OS)
Mouse Input
| Action | Encoding |
|---|---|
| Left click | TYPE_DOWN | (BUTTON_LEFT << 3) |
| Right click | TYPE_DOWN | (BUTTON_RIGHT << 3) |
| Middle click | TYPE_DOWN | (BUTTON_MIDDLE << 3) |
| Scroll | TYPE_WHEEL | (direction << 3) |
| Move | Position sent as coordinates relative to canvas |
Quality Presets
| Preset | Image Quality | FPS | Use Case |
|---|---|---|---|
| Speed | Low | 30 | Slow connections, basic tasks |
| Balanced | Balanced | 30 | General use |
| Quality | Best | 30 | Detail work, design, reading |
| Best | Best | 60 | High-bandwidth, professional use |
Quality changes take effect immediately via Misc message to the peer.
Session Recording
Record sessions as WebM video (VP9 + Opus audio):
- Click Record in the toolbar (circle icon turns red)
- Perform your remote desktop tasks
- Click Record again to stop
- The recording downloads automatically as a
.webmfile
Recordings capture the canvas at 15 fps. Audio is included if active during the session.
Monitor Switching
For multi-monitor setups:
- Click the Monitor dropdown in the toolbar
- Select the desired display
- The view switches to the selected monitor
- Primary indicator shows which monitor is the default
Each monitor shows its resolution (e.g., Monitor 1 (1920×1080) ★).
Video Pipeline
HTTPS (WebCodecs)
Peer → H.264/VP9/AV1 frames → WebSocket → WebCodecs VideoDecoder → Canvas
- Negotiates codec via
VideoDecoder.isConfigSupported() - Supports VP9 (preferred), H.264, AV1, VP8
- Hardware acceleration when available
video_receivedACK sent before decode for optimal pipeline
HTTP (JMuxer Fallback)
Peer → H.264 frames → WebSocket → JMuxer → MSE → Video element → Canvas
- JMuxer converts raw H.264 NALUs to MP4 fragments
- MSE SourceBuffer trimmed at 2 seconds to prevent overflow
- Auto-seek when buffer latency exceeds 500ms
- Health check every 1000ms with stall recovery
Stall Recovery
If no frames arrive for 5 seconds, the client automatically requests a refreshVideo keyframe from the peer to resume the stream.
Technical Details
Connection Flow
- Client opens WebSocket to Node.js console (
/ws/remote/{id}) - Console proxies through Go server relay
- NaCl key exchange establishes encrypted channel
- Login message sent with password, codec preferences, FPS
- Peer responds with video/audio streams
Browser Requirements
| Browser | WebCodecs | JMuxer | Status |
|---|---|---|---|
| Chrome 94+ | ✅ | ✅ | Full support |
| Edge 94+ | ✅ | ✅ | Full support |
| Firefox 130+ | ✅ | ✅ | Full support |
| Safari 16.4+ | Partial | ✅ | H.264 only |
Known Limitations
- JMuxer (HTTP) is limited to H.264 at ~30 fps
- FileTransfer is not supported in web remote (use RustDesk desktop client)
- Audio quality depends on network bandwidth
- Some keyboard shortcuts may be intercepted by the browser (e.g., Ctrl+W)
See also
- Web Console — launching remote from Devices page
- MeshAgent — MeshCentral-compatible web remote transport
- Client Setup — desktop client alternative
Start
Console
- Web Console
- User Management
- Organizations and RBAC
- LDAP / Active Directory
- OIDC SSO
- Client Generator
- Fleet and Policies
- Unattended Access and WoL
- Web Remote Desktop
- UX 3.5
Ops
Help
Advanced
- API Reference
- CDAP
- SDK
- Alpha Software Notice
- Desktop Clients
- MeshAgent
- Chat E2E Encryption
- Licensing
Source: docs/wiki/
Repository · Issues · Discussions · Releases · Privacy · Sponsors
Wiki source: docs/wiki/ — last sync: 2026-09-06