Connect VNC
Opens vnc://host[:port] in Screen Sharing or your VNC app. Optional custom port.
Save a host once. Then drop a key for VNC, SSH, its web interface, any custom URI, Wake-on-LAN or a live online indicator, and every key follows that host.
Requires the Stream Deck app 7.1 or newer. Connections open in the apps your Mac already uses: Screen Sharing, Windows App, Terminal and your browser. HostsDeck also installs on Windows 10 and 11, where it is provided as is and without support; see Windows.
HostsDeck is built around the host, not the button. A host is a name, an address and a few optional service details. Every key only remembers which host it points at, so renaming or re-addressing a machine updates all of its keys at once.
Add HostsDeck from the Elgato Marketplace. It runs inside the Stream Deck app, no helper app or Terminal scripts.
Drag any HostsDeck action to a key and enter a name and an IP address or hostname, such as mac-studio.local.
Every other HostsDeck key can pick the same host from a list. Edit the host from any of them.
Your computer opens the right app. Authentication stays where it belongs: in Screen Sharing, Terminal or your browser. HostsDeck never asks for a password.
Opens vnc://host[:port] in Screen Sharing or your VNC app. Optional custom port.
Opens a Remote Desktop session in Windows App on macOS or Remote Desktop Connection on Windows. Optional user (also DOMAIN\user) and port; the client asks for the password.
Opens ssh://[user@]host[:port] in Terminal or your ssh:// handler. Optional user and port.
Opens the host's saved URL, or http://host/ when none is set, in your default browser. Ideal for NAS, router and hypervisor consoles.
A per-key template such as rdp://{address} or smb://{address}/share, filled from the host. Placeholders: {address}, {vncPort}, {sshPort}, {sshUser}.
Sends magic packets to the host's MAC address. Optional broadcast address and port for other subnets. A green check confirms the packets left.
Shows ● ONLINE with response time or ○ OFFLINE, refreshed every 15 seconds to 5 minutes and on every press. Uses a TCP handshake, so it needs no special permissions.
Every key can show the host name, your own text plus the host name, your own text plus the address, or your own text only.
Both editions share every action, every option and the same interface. The only difference is how many hosts they keep.
Each edition keeps its own settings. If you move from Lite to HostsDeck, enter your host again; it is one record.
Open System Settings → General → Sharing. Turn on Screen Sharing for VNC and Remote Login for SSH. For Wake-on-LAN, turn on Wake for network access under Energy and keep the Mac on Ethernet.
Open Settings → System → Remote Desktop and turn it on. On macOS, install Windows App (formerly Microsoft Remote Desktop) from the App Store so rdp:// links and .rdp files have a handler. Windows uses its built-in Remote Desktop Connection.
HostsDeck is built and supported for macOS. It also installs on Windows 10 and 11, but Windows is not a supported platform: the Windows launcher has been exercised in a virtual machine only, and problems that occur only on Windows are not covered by support. Use it there at your own risk. Connect RDP, Open Web UI, Wake on LAN and Host Status work out of the box. Windows opens ssh:// and vnc:// links only through an app registered for them, and neither PuTTY nor the built-in OpenSSH client registers one. Without a handler Windows shows “Get an app to open this ‘ssh’ link” with a Microsoft Store button; the key shows no warning because Windows reports that dialog as a successful launch. Check a scheme with start ssh://example.com in a Command Prompt.
To use PuTTY for SSH keys, run this once in PowerShell (adjust the path). It registers a handler for the current user only, no administrator rights needed, and passes the user and port from the link to PuTTY:
$putty = 'C:\Program Files\PuTTY\putty.exe'
$open = 'powershell.exe -NoProfile -WindowStyle Hidden -Command "$u=[uri]''%1''; $a=@(''-ssh''); if($u.UserInfo){$a+=''-l'',$u.UserInfo}; if($u.Port -gt 0){$a+=''-P'',$u.Port}; $a+=$u.DnsSafeHost; Start-Process ''' + $putty + ''' -ArgumentList $a"'
New-Item -Path 'HKCU:\Software\Classes\ssh\shell\open\command' -Force | Out-Null
Set-ItemProperty -Path 'HKCU:\Software\Classes\ssh' -Name '(default)' -Value 'URL:SSH Protocol'
Set-ItemProperty -Path 'HKCU:\Software\Classes\ssh' -Name 'URL Protocol' -Value ''
Set-ItemProperty -Path 'HKCU:\Software\Classes\ssh\shell\open\command' -Name '(default)' -Value $open
For VNC, RealVNC Viewer's regular installer registers a URI handler (the standalone download does not). For TightVNC, UltraVNC or another viewer, register it the same way with the viewer's path and the host and port syntax it expects, for example host::port for TightVNC:
$viewer = 'C:\Program Files\TightVNC\tvnviewer.exe'
$open = 'powershell.exe -NoProfile -WindowStyle Hidden -Command "$u=[uri]''%1''; $p=if($u.Port -gt 0){$u.Port}else{5900}; Start-Process ''' + $viewer + ''' -ArgumentList (''{0}::{1}'' -f $u.DnsSafeHost,$p)"'
New-Item -Path 'HKCU:\Software\Classes\vnc\shell\open\command' -Force | Out-Null
Set-ItemProperty -Path 'HKCU:\Software\Classes\vnc' -Name '(default)' -Value 'URL:VNC Protocol'
Set-ItemProperty -Path 'HKCU:\Software\Classes\vnc' -Name 'URL Protocol' -Value ''
Set-ItemProperty -Path 'HKCU:\Software\Classes\vnc\shell\open\command' -Name '(default)' -Value $open
Remove a handler with Remove-Item -Path 'HKCU:\Software\Classes\ssh' -Recurse (or vnc).
| Field | What to enter | Default when blank |
|---|---|---|
| Address | IPv4, IPv6 without brackets or zone, or an ASCII hostname. No protocol, user, port or path. | required |
| VNC port | 1–65535 | 5900 |
| RDP user / port | name, DOMAIN\name or name@domain; 1–65535. Import .rdp file… fills these and the address from an exported Remote Desktop file. | asked on connect / 3389 |
| SSH user / port | A login name; 1–65535 | current user / 22 |
| Web URL | Full http:// or https:// URL without credentials | http://address/ |
| MAC | AA:BB:CC:DD:EE:FF, dashes, dots or no separators | Wake on LAN unavailable |
| WoL broadcast / port | IPv4 broadcast; 1–65535 | 255.255.255.255 / 9 |
| Status port | One TCP port to probe | VNC, SSH, RDP and web ports |
The host is missing, invalid or could not be launched. Open the key's settings: the message at the bottom says what went wrong. Logs are in the plugin's logs folder under the Stream Deck plugins directory.
HostsDeck only asks macOS to open the address. Connection and login errors come from Screen Sharing itself: check the address, that Screen Sharing is on, and that you are on the same network or VPN.
Export the connection from Windows App (or copy the .rdp file you use with Remote Desktop Connection) and click Import .rdp file… in the RDP section of the host editor. HostsDeck reads the full address, username and port lines and fills the fields; you review them and save. Or open the file in a text editor and look for those lines yourself.
macOS needs an app that handles rdp:// links and .rdp files; install Windows App from the App Store. With an RDP user set, HostsDeck writes a two-line .rdp file (address and user, never a password) in the temporary folder and opens it so the account is prefilled.
No app is registered for ssh:// (or vnc://) links; the same applies to Connect VNC and custom URIs with an unhandled scheme. Register PuTTY or your VNC viewer as shown under Setup, then press the key again. Connect RDP and Open Web UI need nothing extra.
macOS opens ssh:// links with whichever app claimed the scheme. Change it in that app's settings, or set the default handler with a tool such as SwiftDefaultApps.
The check means the packets left this Mac. The target must have Wake-on-LAN enabled in its firmware or OS, be on Ethernet, and be on the same subnet, or you must set the subnet's broadcast address and a router that forwards it.
Status probes TCP ports. If none of VNC, SSH or the web port is open, set a Status port that the machine does answer on, for example 445 for a Windows PC or 8006 for Proxmox. A refused connection counts as online; only silence counts as offline.
HostsDeck draws its own key labels. Use the Label option in the key's settings instead of the native title.
HostsDeck stores host names, addresses and optional ports, user names, URLs and MAC addresses in the Stream Deck app's own settings on your computer. It never stores passwords, never sends data to ikolek.pl or any other server, and contains no analytics or crash reporting.
Network traffic is limited to what you trigger: opening a connection through macOS or Windows, sending Wake-on-LAN packets to the address you configured, and, for Host Status keys, short TCP connection attempts to your host at the interval you chose. The plugin's log records error codes only, never addresses or credentials.