Version 1.0
Latest May 2026SSH Terminal
- Full xterm.js terminal rendered inside WebView2 with the RemoteDesk dark palette
- Password or private-key authentication with optional passphrase
- Inline credential prompts in the terminal when nothing is saved — like OpenSSH, with per-hop banners for jump chains
- TOFU host-key handling — SHA-256 fingerprint recorded on first connect; mismatches rejected with a red banner
- Copy / Paste / Select-all (Ctrl+Shift+C / V / A); right-click context menu in the terminal area
- Smart paste — multi-line content opens a confirm dialog with editable preview and a yellow execution warning
- Multi-paste to terminals — pick any subset of open terminals (All / None / Others) and send the same payload to every one
- Reconnect banner on disconnect/error — one click reuses the same tab with scrollback preserved
SFTP File Browser
- Dual-pane Explorer-style browser opened from any SSH session via right-click → Open file browser (SFTP)
- Native Windows shell icons resolved by file extension — matches Explorer for .txt / .zip / .png / etc.
- Drag-drop in both directions; Windows Explorer → remote pane also uploads
- Recursive folder upload and download — tree walked, matching remote dirs created on demand (existing reused, not re-created)
- Per-transfer progress and cancel; transfer drawer with live throughput, direction-tinted arrows, color-coded state
- Merge / overwrite prompts before clobbering anything that already exists
- Concurrency capped at 3 transfers per SFTP tab; the rest queue in the drawer
- Recursive delete with a pre-counted progress display (47 / 189 items)
- Status-bar transfer summary with running totals; throttled so rapid bursts don't churn the UI
- Inline SFTP sign-in card with per-hop credential rows when target or jump credentials are missing
Embedded RDP
- Remote desktop rendered inside the tab via the Windows MsRdpClient ActiveX (mstscax.dll) hosted in a WindowsFormsHost
- No external mstsc.exe window, no taskbar entry, no Windows 11 "Opening Remote Desktop Connection" prompt
- Saved password injected directly via ClearTextPassword — no Credential Manager round-trip
- HiDPI-correct — viewport measured in real pixels and DesktopScaleFactor sent to the server so text stays crisp
- Live resize via UpdateSessionDisplaySettings on modern Windows servers; older hosts fall back to smart-sized scaling
- Clipboard and smart-card redirection on; drive and printer redirection off
- Connection state polled via the OCX's Connected property — clean Disconnected vs Error attribution with ExtendedDisconnectReason codes
Embedded VNC
- Remote desktop rendered inside the tab using MarcusW.VncClient drawing into a WPF WriteableBitmap
- Aspect-preserving fit with letterboxing — matches TightVNC / TigerVNC viewer behaviour
- Native mouse / keyboard / scroll-wheel forwarding via a hand-built WPF→X11 keysym map
- Send keys menu for Ctrl+Alt+Del, ☔Win, Alt+Tab, Alt+F4 — key chords Windows intercepts locally otherwise
- Auto SSH tunneling when a jump host is configured — otherwise-plaintext VNC traffic rides inside SSH encryption
- Optional "Loopback gateway" hop for the libvirt / QEMU / Proxmox case (VNC bound to 127.0.0.1 of a deeper hypervisor)
- Amber plaintext-VNC warning bar before connecting to non-private hosts with no tunneling configured
- Better error messages for empty passwords and DES-weak password derivations
Jump-Host Chains
- Any number of SSH hops, reorderable in the session editor; first row dialed first, last row does the final TCP forward
- Per-hop credentials — mix password and private-key auth across the chain
- Per-hop error attribution — failures name the exact hop and auth method that rejected the connection
- Inline prompts for missing jump credentials (SSH/SFTP terminals) and clear pre-connect errors for VNC tabs
- Route description visible during connect — e.g. "SSH via 2 jump hosts → 127.0.0.1:5901"
Encrypted Vault & Security
- AES-256-GCM authenticated encryption of the full session list
- PBKDF2-SHA256 key derivation with 600,000 iterations and 16-byte salt
- Atomic writes via .tmp + File.Replace — an interrupted save can never corrupt the vault
- Key material zeroed on lock, idle auto-lock, and app exit
- Auto-lock after 15 minutes of inactivity (configurable 1–240); manual lock via Ctrl+Shift+L or title-bar padlock
- Per-credential auto-save policy (target user / password, jump user / password) with conservative defaults
- "Forgot password? Reset vault" flow on the unlock dialog for irrecoverable forgotten passwords
MobaXterm Session Import
- INI-style parser over a .mxtsessions export with a full preview dialog before importing
- Supported protocols (SSH, SFTP, RDP, VNC) pre-checked; unsupported (Telnet, Mosh, Serial, FTP, WSL, ...) listed with an "Unsupported" tag
- Folder structure preserved — MobaXterm's \-separated folders map to RemoteDesk's /-separated groups, including empty folders
- Single-hop "Connect through SSH gateway" jump host imported natively for SSH/SFTP sessions
- Passwords are not imported (MobaXterm encrypts them with its own master key); first connect prompts inline
- Select-all toggle and live footer counter (N of M supported selected, K unsupported skipped, G groups)
Sidebar, Groups & Tabs
- Hierarchical TreeView with /-separated groups, classic Windows Explorer tree lines, persistent expansion state across restarts
- Right-click for New group / New subgroup / New session in this group / Rename / Delete
- Drag sessions between groups (or onto empty area to move to root)
- Multi-select with Ctrl/Shift — action menu items apply to the whole multi-set; Duplicate and Delete also bulk-operate with one confirmation
- Live sidebar search filters by name or user@host:port; group structure preserved while filtering
- Drag-to-reorder tabs without re-parenting WebView2 HwndHosts (no broken focus chains)
- Active tab clearly marked — colored top accent bar, bolder title, lighter background
- Split view renders every open tab simultaneously in an auto-laid 2-column grid; active pane gets a colored border
- Right-click tab strip for Close / Close others / Close all
Polish, Stability & Storage
- Custom wide terminal scrollbar that reserves its own gutter — no characters hiding behind the bar
- Maximize clamp via WM_GETMINMAXINFO — content no longer slides under the taskbar on borderless maximize
- RDP first-connect resolution fix — short-lived retry burst after Connected so the remote fills the tab without manual window-wiggle
- App-close stability — tabs disposed before WebView2 teardown, eliminating late "Cannot access a disposed object" dialogs
- All app-data centralised in %APPDATA%\RemoteDesk\ and %LOCALAPPDATA%\RemoteDesk\ — nothing written next to the .exe
- WebView2 cache redirected so MSIX / Microsoft Store packaging works out of the box (read-only install location)
- Single-file self-contained .exe (~81 MB) — no separate .NET runtime install required on the target machine
- Branded title-bar logo and window icon; multi-size app.ico (16 / 24 / 32 / 48 / 64 / 128 / 256) for Windows Explorer