HopToDesk Help Center

Everything you need to know about using HopToDesk for remote desktop access.

Download & Installation

HopToDesk runs on every major desktop and mobile platform. Download the latest version for your system from www.hoptodesk.com.

Windows

  • 32-bit .exe, 64-bit .exe, or ARM64 .exe - download and run. HopToDesk launches immediately in portable mode. Click Install at the top of the main window, next to the HopToDesk name. This installs the background service so the device accepts incoming connections even when the app isn't open. See Portable vs Installed Mode.
  • MSIX and Microsoft Store - sandboxed installations, ideal for managed Windows devices.
  • MSI: For Group Policy, Intune and SCCM. hoptodesk.msi
  • Chocolatey - install with choco install hoptodesk.
  • winget: Install from a command prompt: winget install HopToDesk.HopToDesk
  • Windows XP - a separate XP-compatible build is available for legacy systems.

Tip: If User Account Control (UAC) is enabled, you may need to approve the installation prompt when clicking Install.

macOS

  • One app for Intel and Apple Silicon. Download it, open the file and drag HopToDesk to Applications.
  • On first launch, the Mac permissions screen opens and lists what to allow (see macOS Permissions).
  • HopToDesk runs as an installed application on macOS - there is no separate "portable" variant.
  • IT admins can use the signed installer package with an MDM: HopToDesk.pkg

Linux

  • Debian / Ubuntu: .deb package. Install with: sudo apt install ./hoptodesk.deb
  • Fedora: .rpm package. Install with: sudo dnf install ./hoptodesk.rpm
  • openSUSE: .rpm package.
  • Manjaro / Arch: .zst package.
  • AppImage: Make the file executable, then run it. Nothing else to install.
  • Flatpak: Install from Flathub, or use the .flatpak from the download page: flatpak install flathub com.hoptodesk.HopToDesk
  • The .deb and .rpm packages run a background service, so the device accepts connections while the app window is closed.

Wayland: HopToDesk supports both X11 and Wayland for incoming connections. On Wayland, the first time you accept a connection your desktop asks which screen to share (a standard Wayland security prompt). Tick Remember this selection so it is not asked again.

For unattended access with no prompt, including at the login and lock screens, turn on Unattended Wayland Access in HopToDesk Settings > Security on the Linux computer.

Raspberry Pi

  • 64-bit (arm64) .deb package. Install with: sudo apt install ./hoptodesk-arm64.deb

FreeBSD

  • amd64 and aarch64 (arm64) packages are both available - download the .pkg for your architecture and install it with pkg install ./<package>.pkg.
  • FreeBSD 14 or newer is required.
  • It is the same HopToDesk client as the Windows/macOS/Linux builds and is fully wire-compatible with them.

ChromeOS

  • Install from the Google Play Store on ChromeOS devices that support Android apps.

Android

  • Install from the Google Play Store or download the .apk directly from the website.
  • Both the Google Play version (1.46.70 and later) and the website .apk can share the screen and accept remote control.
  • Enroll the device into your dashboard for unattended kiosk management: open Settings, tap Dashboard, and paste an invite code. It stays online through reboots and reports CPU, memory, disk, and battery. See the Android Kiosks guide.

iOS

  • Available on the App Store. iOS can connect to other devices and share its own screen. A shared iPhone or iPad screen is view-only.

Portable vs Installed Mode (Windows)

Portable vs installed is a Windows-only distinction. On macOS, Linux, and FreeBSD the download package installs HopToDesk as a regular application. To have it start with the computer, see: Start HopToDesk with the Computer

Portable Mode (Windows)

  • Just download the .exe and run it - no installation required.
  • Great for one-time support sessions or running from a USB stick.
  • Supports unattended access as long as you set a permanent password and leave the application running.
  • Admin tasks during a session - sending Ctrl+Alt+Del to secure-desktop dialogs, dismissing UAC prompts, controlling elevated programs - work without installing via Request Elevation from the Control actions menu.
  • No Windows service is installed, so HopToDesk only accepts incoming connections while the app window is open. Closing the app stops connectivity until you relaunch it.

Installed Mode (Windows)

  • Click Install at the top of the main window, next to the HopToDesk name. Or run the installer with this option: --silent-install
  • Installs a background service that starts with Windows and accepts incoming connections even when no one is logged in.
  • Your Device ID remains the same across reboots.
  • Required for connections before any user has logged in (the Windows lock/login screen) and for unattended access that survives reboots without a logged-in user.

Recommendation: If you need to access this computer remotely on a regular basis - especially across restarts or before login - install HopToDesk for the best experience.

Minimum System Requirements

PlatformRequirements
WindowsWindows 7 or newer. Separate 32-bit, 64-bit, and ARM64 builds are available.
Windows XPDedicated XP-compatible build for legacy systems.
macOSmacOS 10.13 or newer. One universal app for Intel and Apple Silicon.
LinuxUbuntu 18.04+, Debian 9+, CentOS 7+, openSUSE 42/15, or equivalent. Fedora, Manjaro, and distribution-agnostic AppImage/Flatpak also supported.
FreeBSDFreeBSD 14 or newer, amd64 or aarch64, with an X11 or Wayland desktop.
Raspberry Pi64-bit Raspberry Pi OS on a Raspberry Pi 3 or newer.
ChromeOSDevices compatible with Google Play.
AndroidAndroid 5.0 and newer.
iOSiOS 13.0 and newer (screen sharing is view-only).

On Linux with Wayland, your desktop asks which screen to share. See the note under Linux here: Download & Installation

The HopToDesk Network

By default, HopToDesk connects through the HopToDesk Network - the public signal and relay infrastructure we operate. It's a fully featured production service, not a demo or trial tier:

  • Free for personal and business use. No paid tier, no seat limits, no commercial-use detection.
  • No session-length or session-count limits. Stay connected as long as you need.
  • End-to-end encrypted. The network routes traffic between peers; it cannot see your screen, files, or chats. See Encryption.
  • Direct peer-to-peer when possible. The signal server only helps peers find each other; the relay is used only when a direct connection cannot be established (strict NATs, firewalls).

You can also run your own infrastructure - either fully self-hosted, or by keeping the HopToDesk signal server and pointing to your own TURN relays. See Full Self-Hosting and API Override (Custom TURN Servers).

Self-hosted signal server: keeping device status accurate

If you run your own signal server and device status flickers between online and offline, create a Signal Presence Token under Settings, then Network, and set it as the PRESENCE_SECRET on your signal server. Your server then reports accurate online/offline status for your account's devices.

Updating and Removing HopToDesk

Update

Open Settings and click Check for Updates.

  • Windows: HopToDesk updates by itself.
  • macOS: Open the downloaded file and drag HopToDesk to Applications with Finder.
  • Linux and FreeBSD: Install the new package.
  • Phones and tablets: Update from the app store. If you installed the website .apk, install the new .apk.

Remove (Uninstall)

  • Windows: Open Settings, then Apps, then Installed apps, find HopToDesk and choose Uninstall. A portable copy has nothing to uninstall, so just delete the file.
  • Debian / Ubuntu: sudo apt remove hoptodesk
  • Fedora: sudo dnf remove hoptodesk
  • FreeBSD: sudo pkg delete hoptodesk
  • Phones and tablets: Delete HopToDesk like any other app.

If your organization protects the app, removing it asks for a code. Ask your IT team.

Your First Connection

Connecting to a remote computer with HopToDesk takes just a few steps:

  1. On both computers: Open HopToDesk. Each device shows Your ID and a Password.
  2. On your computer: Type the other computer's ID in the Partner ID box.
  3. Click Connect (or press Enter).
  4. Enter its password, and tick Remember password if you want. The person at that computer can also click Accept instead.
  5. You're now connected and can see and control the remote desktop.

Tip: Click Copy next to your ID to copy it.

Invite Another Device to Connect to You

Invite lets you ask another device to connect to you, so the other person does not type your ID or password.

  1. Click Invite next to your ID.
  2. Type the other device's ID.
  3. The other person clicks Accept, and their app connects to your computer.

On Android, the website .apk can accept an invite.

The Connection Window

When someone connects to this computer, the connection window opens.

  1. Check who is connecting. Their name and photo show at the top.
  2. Click Accept to let them in, or Dismiss to refuse. If they typed the right password they are already in.
  3. Use the tiles to choose what they can do: Keyboard/Mouse, Clipboard, Audio, File Transfer, Remote Restart, Recording, Block user input. Click a tile to switch it off for this session. A lock means your organization set it.
  4. Chat opens a conversation with them.
  5. Disconnect ends the session.

Verified means the technician proved their identity through their dashboard. A photo does not guarantee identity, so only accept connections you expect. If the window says the identity could not be verified, do not accept.

The shield icon shows the security code. Both people see the same code on a safe connection.

Connection Types

Type the device ID under Partner ID, then pick one:

TypeDescription
ConnectFull remote control.
Transfer FileBrowse and move files without sharing the screen.
View Camera (three-dot button)See the camera on the remote device.
Remote Terminal (three-dot button)A command line on the remote device.
TCP Tunneling (three-dot button)Reach a service on the remote network, such as RDP or a database.

The same choices are on the right-click menu of any device in Recent Sessions.

Unattended Access

Unattended access lets you connect to a remote computer without anyone present to accept the connection. For best security it is off by default, and you turn it on with the dedicated toggle right next to the password field on the main window.

Setup (one click)

  1. Find the Unattended Access switch on the right side of the password row in the main window.
  2. Turn it on. The password shown in the main window now stays the same, through sessions and restarts.
  3. To use a password of your own, click Set, type it under Permanent Password and click Save.
  4. Note the ID. You need the ID and that password to connect.

Now you can connect at any time with the ID and that password. Turn the switch off and the password shown changes after every session again. A permanent password you saved keeps working until you clear it or choose Use one-time password in Password Settings.

Start HopToDesk with the Computer

So the remote device comes back after a restart, do this once on it:

  • Windows: Click Install at the top of the main window, next to the HopToDesk name.
  • macOS: Allow the permissions in Settings, then Mac permissions. Then click Install at the top of the main window so HopToDesk starts when the Mac starts.
  • Linux: Install the package, then open Settings, then Security, and check that Start on Boot is on.
  • FreeBSD: Run these two commands:
    sudo sysrc hoptodesk_enable=YES
    sudo service hoptodesk start
  • Android: Open Settings, turn on Start on Boot and allow what Android asks for.

Portable vs Installed

  • Portable Windows / unattended macOS, Linux, FreeBSD: unattended access works as long as HopToDesk is running on the remote machine.
  • Installed Windows: also accepts connections across reboots and before a user logs in, because the HopToDesk service runs in the background. Recommended when you need always-on remote access. See Portable vs Installed Mode.

Connecting from another computer

  1. Open HopToDesk on the computer you are connecting from.
  2. Enter the remote Device ID in the connection field and click Connect.
  3. Enter the password when prompted.

The session opens with no one needing to accept on the other end.

Keep the remote computer reachable

An unattended computer can only be reached while it is powered on, online, and (for portable setups) HopToDesk is running. Prevent the machine from sleeping:

  • Windows: Open Settings, then System, then Power & battery, then Screen and sleep, and set Sleep to Never while plugged in.
  • macOS: Open System Settings, then Displays, then Advanced, and turn on Prevent automatic sleeping on power adapter when the display is off.
  • Linux (GNOME): Open Settings, then Power, and turn off Automatic Suspend.

A locked screen is fine: you can still connect as long as a user is logged in, or as long as you are using installed Windows mode (which works even before any user logs in).

Verify the setup

  1. From another device, enter the Device ID and connect.
  2. Enter the password. The desktop should appear immediately, without anyone accepting on the remote side.
  3. Disconnect, then briefly reboot the remote (or simply lock the screen on portable setups). Connect again. If it still works, unattended access is correctly configured.

Troubleshooting

  • Connection fails or hangs: Confirm the remote computer is powered on, awake, and connected to the internet. On portable setups, confirm HopToDesk is open.
  • Password rejected: Check the password shown on the remote computer, or click Set on the password row and save a new permanent password.
  • Works while logged in but not after reboot (Windows): You are running the portable version. Install HopToDesk so the background service can accept connections before login. See Portable vs Installed Mode.
  • Toggle does nothing: Update to the latest version of HopToDesk and try again.
  • Toggle is greyed out: The app was set up by your organization and keeps unattended access fixed.

Important: Choose a strong permanent password. Anyone with the Device ID and password can access the computer. Consider enabling Two-Factor Authentication as a second layer.

Direct IP Access

HopToDesk supports direct IP connections, which bypass the signal server entirely - useful for LAN-only setups or environments with strict outbound restrictions.

On the Computer You Want to Reach

  1. Open Settings, then Network, and turn on Direct IP access.
  2. A box asks for the port. Leave it empty to use 21118.
  3. Allow that TCP port in the firewall of that computer.
  4. In the main window click Your ID. It changes to Your IP and shows the address.

On Your Computer

  1. Type the address in the Partner ID box, for example 192.168.1.50, and add :port if you changed the port.
  2. Click Connect and enter the password.

To change the port later, turn Direct IP access off and on again.

Troubleshooting

  • Failed to connect to 192.168.1.50:21118: Direct IP access is off on the other computer, its firewall blocks the port, or the two networks cannot reach each other.

Quick Support

Quick Support launches a simplified version of HopToDesk that accepts only incoming connections - ideal for end users receiving one-time support.

  • Launch HopToDesk with the --qs parameter, or rename the executable so the filename ends in -qs (e.g. hoptodesk-qs.exe).
  • A minimal window appears showing only the ID/password and incoming-connection settings.
  • Outgoing connection UI is hidden, so the recipient can't accidentally connect somewhere else.

Remote Terminal

Remote Terminal is off by default. On the remote device, open Settings, then Remote Access, and turn on Remote Terminal. If it is off, the connection stops with Terminal is not enabled on the remote machine.

Remote Terminal opens a command line on the remote device without sharing its screen. Prompts, colors and editors like vim or nano work as usual, with a fraction of the bandwidth of a remote desktop session.

Starting a Terminal Session

  1. Type the device ID under Partner ID.
  2. Click the three-dot button and choose Remote Terminal.
  3. Enter the password.

You can also start one in these ways:

  • Right-click a device in Recent Sessions or Favorites and choose Remote Terminal.
  • From the command line: launch HopToDesk with --terminal followed by the Device ID.

You'll be prompted for the device's password (and 2FA code, if enabled) just like a normal connection. Once connected, the terminal window shows the remote shell with a status bar and a Disconnect button.

Keyboard Shortcuts

KeysAction
Ctrl+Shift+CCopy the selected text to your local clipboard.
Ctrl+Shift+V / Ctrl+VPaste the local clipboard into the remote shell.
Ctrl + letterSends the corresponding control character (for example Ctrl+C to interrupt, Ctrl+D for EOF, Ctrl+Z to suspend).
Alt + letter/digitSends the ESC prefix + key (meta key), for readline/zsh/emacs-style bindings.
Arrow keysCursor movement and shell history navigation.
TabShell auto-completion.
Home / EndMove the cursor to the start or end of the line.
Page Up / Page DownTerminal scrollback navigation.
F1-F12Function keys are forwarded to the remote shell.
EscSends ESC (useful in vim and full-screen TUIs).

Features & Notes

  • Colors: Full color output, including 256-color and true color programs.
  • Auto-resize: the terminal sends resize events when you change the window size so the remote shell reflows correctly.
  • Multiple terminals: open several Remote Terminal windows to the same device for parallel sessions.
  • Low overhead: text-only protocol, so it works smoothly over slow or high-latency links.
  • Permissions: the session uses the same password and approval as any other connection.

Tip: Remote Terminal is ideal for quick administrative tasks, remote log inspection, or scripted fixes where you don't need to see the GUI. For automated / scriptable control, see the MCP server instead.

Web Client

Use HopToDesk from a browser, with nothing to install on the computer you sit at.

  1. Open this address in your browser: web.hoptodesk.com
  2. Type the Device ID and click Connect.
  3. Enter the password, and the 6-digit code if the device uses 2FA.

The toolbar has Chat, Voice call, Actions, Display, Show keyboard, Start session recording, File Transfer, Remote Terminal, Take screenshot, View Camera and Privacy mode.

  • Actions: Ctrl+Alt+Del, Lock screen, Enter OS password, Type clipboard, Request Elevation, Restart remote device and Restart in Safe Mode, plus Disable clipboard, Lock after session end, Disable audio and Block user input.
  • Display: Image quality, Scale adaptive, Scale original, Zoom In, Zoom Out, Show remote cursor, View only, Frame rate and Refresh video.
  • Files: Drop files onto the session, or open File Transfer and click Upload.
  • Screenshots and recordings: Your browser saves them.
  • Shortcuts: Ctrl+Alt+Shift+S for a screenshot, R to record, T for File Transfer, F for full screen.

From the Dashboard, Web Connect opens this client for you. Easy Access

Phones and Tablets

Connect from Your Phone or Tablet

  1. Open HopToDesk on the Connection tab.
  2. Type the ID under Remote ID and tap the connect button.
  3. Enter the password.

In both Mouse mode and Touch mode, tap to click and press and hold for a right click. To drag, double tap and move in Mouse mode, or move one finger in Touch mode. Move three fingers up or down to scroll, move two fingers to pan the picture, and pinch to zoom.

Tap the mouse or hand icon in the session bar to see these gestures.

Share Your Phone or Tablet Screen

  • Android: open the Share screen tab, tap Start Screen Share and allow the prompt. To accept taps and typing, follow the steps here: Android Permissions
  • iPhone and iPad: open the Share screen tab, tap Start Screen Share and start the broadcast. Your ID and password appear when it starts. A shared iPhone or iPad screen is view-only.

Dashboard and Display Name

  • Link to a dashboard: open Settings, tap Dashboard and paste an invite code.
  • Display Name: open Settings and tap Display Name to set the name others see when you connect.

Recent Sessions, Favorites and Discovered

The lower part of the main window lists the devices you use. It works as your address book.

  • Recent Sessions: every device you connected to.
  • Favorites: devices you marked. Right-click a device and choose Add to Favorites.
  • Discovered: HopToDesk devices on your local network.

Use the Search ID box to find a device. Double-click a device to connect. Right-click it for Connect, Transfer File, View Camera, Remote Terminal, TCP Tunneling, RDP, WOL, Rename, Remove, Copy ID, Forget Password and, on Windows, Create desktop shortcut.

LAN Discovery

HopToDesk can automatically discover other HopToDesk devices on your local network.

  • Open the Discovered tab in the main window.
  • Devices running HopToDesk on the same network will appear automatically.
  • LAN connections are direct - no relay server is used, which means faster performance.

LAN discovery can be enabled or disabled in Settings > Network.

Wake on LAN

Wake a sleeping computer from another HopToDesk device.

On the Computer to Wake

  1. Open Settings, then Remote Access, and turn on Wake On LAN.
  2. Connect it by Ethernet, not WiFi.
  3. Turn on Wake on LAN in the BIOS or UEFI and in the network adapter settings.

To Wake It

Another HopToDesk device on the same network must be online to send the wake signal.

On a computer in the Discovered tab, click the three-dot button and choose WOL, or use the Dashboard if it is linked.

Toolbar Overview

During a remote session, a toolbar appears at the top of the screen with quick access to all session features:

IconFunction
Full ScreenToggle full-screen mode. To bring the toolbar back in full screen, move the pointer to the top edge of the screen (on a Mac, just below the menu bar). Ctrl+Alt+Shift+F also toggles it (Control+Option+Shift+F on a Mac).
Lock iconA green lock means the session is encrypted. Hover over it to see whether the session is direct or relayed.
Screen tiles 1, 2, AllSwitch between the monitors of the remote computer, or show all of them.
ChatOpen the chat window to exchange messages with the remote user.
Voice callTalk to the person at the remote computer.
Add remote device to my dashboardA green button that shows when your device is linked and the remote one is not. Dashboard Integration
Control actionsCtrl+Alt+Del, lock the screen, block input, Request Elevation, restart and more.
Display settingsAdjust view mode, image quality, codec, and other display options.
KVM modeUse this computer's keyboard and mouse on the other computer's own screen. Shows on a direct connection inside your local network. See KVM Mode.
Keyboard modeAuto, Remote layout or My layout.
RecordingStart or stop recording the remote session.
Security CodeShows the code that both people compare to confirm a safe connection.
Transfer FileOpen the file transfer panel.
Remote PrintSet up remote printing (appears when remote printing is enabled).
ScreenshotCapture a screenshot of the remote screen.
Draw on screenPoint things out by drawing on the remote screen.
Switch SidesThe other person takes control of your computer.
Show my screenThe other person sees your screen but cannot control it.
Privacy ModeToggle privacy mode on the remote computer.

Display & Quality Settings

Customize how the remote desktop appears on your screen. Access these from the Display settings button in the toolbar.

View Modes

  • Original: Shows the remote desktop at its native resolution. You may need to scroll if the remote screen is larger than your window.
  • Shrink: Scales the remote desktop down to fit your window. Best for viewing large remote screens on smaller monitors.
  • Stretch: Stretches the remote desktop to fill your window completely.
  • Adjust window: Fits the window to the remote screen.
  • Zoom In, Zoom Out and Reset Zoom: Change the picture size.

Image Quality

  • Good image quality: High image quality with more bandwidth usage.
  • Balanced: A compromise between quality and performance.
  • Optimize reaction time: Lowest quality but fastest response - ideal for slow connections.
  • Custom: Manually set the bitrate.
  • Frame rate: A slider from 5 to 120 frames per second (default 30), saved per device. It is a ceiling: the session lowers it when the connection cannot keep up.

Codec Selection

Choose the video codec used for the remote desktop stream:

  • Auto: Lets HopToDesk choose.
  • VP8 / VP9: Software codecs that work on all systems.
  • AV1: Modern codec with excellent compression (requires compatible hardware).
  • H.264 / H.265: Hardware-accelerated codecs for better performance when supported.

Additional Options

  • True color (4:4:4): Full color accuracy - useful for design work or reading fine text.
  • View only: Watch without sending keyboard or mouse.
  • Show remote cursor: Display the remote user's cursor on your screen.
  • Show quality monitor: Shows speed, frames per second, delay and codec. Use it to see why a session feels slow.
  • Show my cursor: Shows the other person where your pointer is.
  • Cursor size and scroll speed: Click these items to step through the sizes and speeds.
  • Mute: Silence audio streaming from the remote machine.
  • Enable file copy and paste: Copy and paste files between two Windows computers.
  • Disable clipboard: Prevent clipboard sharing between local and remote.
  • Lock after session end: Automatically lock the remote computer when you disconnect.
  • Relative mouse mode: For games and 3D apps. Relative Mouse Mode

Multiple Screens & Displays

When the remote device has more than one monitor, each remote display is represented by a screen icon in the top-left area of the connection toolbar.

  • Click a screen icon to switch the view to the corresponding monitor of the remote device.
  • Click All to see every monitor side by side, or choose Each monitor in its own window in the display menu. All windows share one session.

To always start the same way, open Settings, then Display settings, then Multiple Monitors.

Each monitor in its own window opens one window per remote monitor, on your next screen. It is not offered when the session was accepted without a password.

KVM Mode

KVM mode lets one keyboard and mouse work two or more computers on the same desk. Push the mouse past the edge of your screen and it moves onto the next computer's own screen. Your typing follows the mouse, and copy and paste works between the computers. Each computer uses its own monitor, so no video is sent. KVM mode is free on every plan.

What you need

  • Each computer has its own screen, and all of them are on the same local network.
  • The computer with the keyboard and mouse runs Windows or macOS. The other computers can run Windows, macOS, Linux or FreeBSD.
  • The latest HopToDesk app on every computer.

Turn it on

  1. On the computer with the keyboard and mouse, connect to the other computer. It shows in the Discovered tab when both are on the same network. See LAN Discovery.
  2. In the session toolbar, click KVM mode, next to the display button.
  3. Pick where the other computer sits, for example Right of my screen.
  4. Push the mouse past that edge of your screen. To come back, push it back, or press Ctrl+Alt+Esc (Control+Option+Esc on a Mac).

Click Stop in the KVM mode window to end KVM mode and bring the session window back.

Remember this PC

Tick Remember this PC in the KVM mode window, and HopToDesk connects to that computer and turns on KVM mode by itself each time it starts or you sign in. It uses the password saved for that computer, so connect to it once with Remember password ticked. Untick the box to forget the computer.

Troubleshooting

  • There is no KVM mode button: the button shows only on a direct connection inside your local network, when the other computer allows keyboard and mouse control, and when your organization has not turned KVM mode off. Update HopToDesk on both computers to the latest version.
  • When KVM mode is turned off on a computer, technicians who connect to it do not get KVM mode either.
  • The mouse does not cross over: check the side you picked. The corners of the screen never switch computers, so push past the middle of the edge.
  • Nothing happens on a Mac: allow HopToDesk under Accessibility and Input Monitoring in System Settings, Privacy & Security.

For offices, Desks on the Business plan pairs the computers on a desk from the Dashboard.

File Transfer

Transfer files between your local computer and the remote machine during a session. Uploads and downloads support resume if the transfer is interrupted.

How to Use

  1. Click Transfer File in the session toolbar, or type the device ID in the main window and click Transfer File.
  2. Your computer is on the left, under Local computer. The other computer is on the right, under Remote computer.
  3. Open the folders you want. Type a path in the path box, or type ~ to open the home folder.
  4. Select the files or folders, then click Transfer on that side. The arrow shows the direction. You can also drag them across.
  5. Progress shows below the two sides. Click Clear to remove finished jobs.

Features

  • Multi-select files for batch transfers.
  • Create new folders on either side.
  • Type in the Search box to filter the folder. Press Enter to search the folders inside it.
  • Click Show hidden files to show or hide hidden files.
  • Right-click a file to Transfer, Rename or Delete it.
  • Transfer progress tracking with the ability to cancel.

Tip: On Windows-to-Windows connections, you can also copy and paste files directly through the clipboard.

Send a File Without Opening File Transfer

On Windows with HopToDesk installed:

  1. Start a session.
  2. In File Explorer, right-click a file or folder and choose Send to connected device. On Windows 11, if it is not in the short menu, click Show more options.

From the computer in control, the file goes to the Downloads folder on the other computer.

From the computer being controlled, the person in control sees a question and clicks OK. The file then lands in their Downloads folder.

Windows to Windows you can also drag a file onto the session window. It is pasted where you drop it. Enable file copy and paste must be on in Display settings.

Remote Printing

Remote printing allows you to print documents from a remote computer to a printer connected to your local machine. This feature is available when the remote computer runs Windows, macOS or Linux.

Setup (on the Remote Computer)

  1. Open HopToDesk on the remote computer (the one you connect to).
  2. Open Settings, then Remote Access, and turn on Remote Printing.

Once enabled, a virtual printer called "HopToDesk Printer" is set up on the remote machine.

Printing During a Session

  1. Connect to the remote computer from your local machine.
  2. You will see a printer icon in the session toolbar (it only appears when the remote computer has remote printing enabled).
  3. Click the printer icon to select a local printer from the list of printers available on your computer.
  4. Optionally, check "Always use this printer" so you won't be prompted each time.
  5. Now, when you print a document on the remote computer (from any application), select "HopToDesk Printer" as the printer. The print job will be sent to your selected local printer.

Tip: If no printers appear in the dialog, make sure your local printer is installed and working on the computer you're sitting at.

Note: The printer icon appears in the toolbar only when Remote Printing is turned on in the remote computer's HopToDesk settings.

Chat

Communicate with the remote user during a session without needing a separate messaging tool.

  • Click the Chat icon in the toolbar to open the chat window.
  • Type messages and press Enter to send.
  • Both the local and remote user can see and respond to messages.
  • Chat history is available for the duration of the session.

Voice Calls

Talk to the person at the remote computer during a session.

  1. Click the phone icon in the toolbar.
  2. The other person clicks Accept.
  3. Click the icon again to end the call.

Choose the microphone in Settings, then Audio Input, then Voice call. On a Mac, allow Microphone first.

Audio Streaming

HopToDesk can stream audio from the remote computer to your local machine.

  • Audio streaming is enabled by default during remote desktop sessions.
  • To mute, go to Display Settings in the toolbar and enable "Mute".
  • The remote computer can select which audio input device to share in Settings > Audio Input.

Session Recording

Record your remote sessions for training, auditing, or review purposes. Recordings are saved locally in .webM video format.

  • Click the Recording button in the session toolbar to start or stop.
  • In Settings, then Recording, you can record every incoming or outgoing session, open or change the folder, and delete old recordings after 7, 30, 90 or 365 days.
  • File names show both sides of the session: the device and the technician, by ID and name, with the date and time.
  • If the Recording button shows a warning, open Display settings and choose VP9 Codec.

Where Recordings Are Saved

PlatformPath
Windows%USERPROFILE%\Videos\HopToDesk
Windows, incoming sessions recorded by the installed serviceC:\ProgramData\HopToDesk\recording
macOS~/Movies/HopToDesk
Linux~/Videos/HopToDesk

Keyboard & Mouse Control

HopToDesk provides several keyboard layout modes and special key combinations for controlling the remote computer.

Keyboard Modes

ModeDescription
AutoPicks the right mode for you. Best for most users.
Remote layoutEach key acts as it would on the remote computer's keyboard. Use it when both keyboards match, and for games and shortcuts.
My layoutEach key types what is printed on your own keyboard. Use it when the two keyboards differ.

Control actions

Open the Control actions menu in the toolbar. Some items show only when the remote computer can use them.

  • Insert Ctrl + Alt + Del: Send the Ctrl+Alt+Del sequence to the remote computer.
  • Insert lock: Lock the remote screen.
  • OS password: Saves the login password of the remote computer and types it at the lock or sign-in screen.
  • Type clipboard: Types the text on your local clipboard into the remote computer as keystrokes. Use it for long passwords at a login or lock screen, where copy and paste does not work.
  • Block user input: Temporarily block the keyboard and mouse at the remote computer while you work (Windows and macOS). On Windows the remote app must be installed. If the item is greyed out, install or update the app on the remote computer. On a Mac, typing into a password field is not blocked.
  • Request Elevation: Elevate the remote HopToDesk process to admin rights for the session - dismiss UAC prompts, control elevated programs, install software. Works without installing HopToDesk on the remote machine. See Request Elevation.
  • Restart remote device: Restart the remote computer.
  • Restart in Safe Mode: On a Windows computer with HopToDesk installed, restarts in Safe Mode with Networking so you can connect again and fix it. Sign in with the Windows password, because a PIN does not work in Safe Mode. The next restart returns to normal mode.
  • Note: Writes a note on this session.
  • Refresh: Redraws the picture.

Relative Mouse Mode

For games and 3D apps that spin the view as you move the mouse.

  1. Open Display settings and click Relative mouse mode.
  2. Click OK. Your mouse now moves only on the remote computer.
  3. Press Ctrl+Alt+Esc to get it back.

Session Shortcuts

These shortcuts stay on your computer and are not sent to the remote one. On a Mac use Control+Option+Shift instead of Ctrl+Alt+Shift.

KeysAction
Ctrl+Alt+Shift+STake a screenshot.
Ctrl+Alt+Shift+RStart or stop recording.
Ctrl+Alt+Shift+TOpen File Transfer.
Ctrl+Alt+Shift+FSwitch full screen on or off.

Touch and Pen on Windows

On a Windows touch screen, a tap is a click, press and hold is a right click, and dragging moves the mouse. A pen works the same way.

Modifier Key Swap

When connecting between macOS and Windows, you can swap Ctrl and Command keys in Display Settings for a more natural typing experience.

Several People Connected at Once

When more than one person is connected to the same computer, only one of them controls the mouse at a time. The first person to use the mouse has control, and mouse movement and scrolling from the others is ignored. Someone else takes control with a click, and the pointer moves to where they clicked. When the person in control disconnects, the next person to use the mouse gets control. Keyboard input is not affected.

Request Elevation

When you're connected to a Windows machine and need administrator rights - to install software, dismiss UAC prompts, control elevated programs, or send Ctrl+Alt+Del to a secure-desktop dialog - choose Request Elevation from the Control actions menu in the session toolbar.

  • The remote HopToDesk process restarts with admin rights for the duration of the session.
  • You can supply the admin credentials remotely, so it works even when the person at the keyboard is a standard user with no admin password.
  • Someone at the remote computer still has to click OK on the Windows prompt.
  • The item is missing when HopToDesk is installed on the remote computer, because an installed app already has these rights.
  • No installation on the remote machine is required - Request Elevation works in portable mode.

When you do need an installed service: Request Elevation runs after a session is connected, so it cannot show you the lock/login screen before anyone is logged in. For pre-logon access or fully unattended access that survives reboots without a logged-in user, install HopToDesk so it runs before anyone logs in. Portable vs Installed Mode

Privacy Mode

Privacy mode blacks out the remote computer's screen so that anyone physically present cannot see what you're doing. This is useful for sensitive tasks like entering passwords or accessing confidential data.

  • Click the eye icon in the toolbar to toggle privacy mode.
  • The remote screen will appear black to anyone looking at the physical monitor.
  • You can still see and control the remote desktop normally.

Privacy mode is supported on Windows, macOS, Linux and FreeBSD. If the eye icon is missing, the remote computer cannot use privacy mode.

Screenshots

Capture a screenshot of the remote desktop during a session:

  • Click the Screenshot icon in the toolbar (or use Ctrl+Alt+Shift+S, or Control+Option+Shift+S on a Mac).
  • The screenshot is automatically saved to your clipboard and can be pasted into any application.

Draw on Screen

Point things out by drawing on the remote screen.

  1. Click the pencil icon in the toolbar.
  2. Pick a tool (Pen, Line, Arrow, Rectangle or Ellipse), a color and a width, then draw.
  3. Undo removes the last mark, and Clear drawings removes all of them.
  4. Press Esc or click Exit draw mode to go back to controlling the computer.

Show my cursor in Display settings shows the other person where your pointer is.

Switch Sides and Show My Screen

Switch Sides

Click the Switch Sides icon and confirm. Your session window closes, and the other person now sees and controls your computer.

Show my screen

Click the Show my screen icon and confirm. The other person sees your screen but cannot control it. When they finish, your session comes back. Use it to show someone what you see.

Port Forwarding (TCP Tunneling)

Create secure TCP tunnels through HopToDesk to access services on the remote network.

Setup

  1. Type the device ID under Partner ID, click the three-dot button and choose TCP Tunneling. In a session, use Control actions, then TCP Tunneling.
  2. Enter the password.
  3. Fill in Local port, Remote host (leave it empty for the remote computer itself) and Remote port, then click Add.
  4. Keep this window open while you use the tunnel.
  5. Connect to this address on your computer: localhost:<local port>

To open Remote Desktop to a Windows computer, right-click it in Recent Sessions and choose RDP.

Common Use Cases

  • RDP tunneling: Forward port 3389 to access Remote Desktop through HopToDesk's encrypted tunnel.
  • Database access: Tunnel to a remote database server that isn't exposed to the internet.
  • Web services: Access internal web applications running on the remote network.

Note: TCP tunneling must be enabled in the remote computer's settings. See Permissions.

Passwords

HopToDesk uses two types of passwords to control access:

Temporary Password

  • Changes after every session and each time HopToDesk starts, unless Unattended Access is on.
  • Displayed in the main window next to your Device ID.
  • Ideal for one-time support sessions - share it with the person helping you, then it changes next time.

Permanent Password

  • Click Set next to the password.
  • Does not change between sessions or restarts.
  • Good for unattended access.

In the same window, choose Use both passwords, Use one-time password or Use permanent password, and set the one-time password length to 6, 8 or 10. Click Refresh for a new one-time password.

Security tip: Use a strong, unique permanent password. Consider enabling Two-Factor Authentication for additional security.

Two-Factor Authentication (2FA)

Add an extra layer of security by requiring a time-based code in addition to your password.

Setup

  1. Click the gear icon on the This Device card.
  2. Under Security, click Two-Factor Authentication.
  3. Open an authenticator app (Google Authenticator, Authy, Microsoft Authenticator and others) and scan the QR code, or type the setup key shown under it.
  4. Enter the 6-digit code from the app to confirm.

To turn 2FA off, click the same row again.

Using 2FA

When someone connects to your computer, they will need to enter both:

  1. Your password (temporary or permanent)
  2. A 6-digit code from your authenticator app

Codes refresh every 30 seconds and have a small window of tolerance for clock differences.

Important: Keep a backup of your authenticator setup. If you lose access to your authenticator app, you'll need to disable and re-enable 2FA from the device itself.

This setting protects incoming connections to this computer. It is separate from the security on your dashboard account, which additionally offers passkeys, single-use recovery codes, an IP allowlist, and a switch that requires 2FA of every team member. See the dashboard documentation.

Guest Access

A guest password lets someone connect, but they wait until a person at this device accepts.

  1. Open Settings, then Security, then Guest Access.
  2. Type a guest password of at least 6 characters, and type it again. It must differ from your permanent password.
  3. Under Time to answer, choose from 30 seconds to 10 minutes.
  4. Tick Let the guest in if nobody answers in time only if you want that. Otherwise the guest is refused when the time runs out.

To stop guest access, open the same window and tick Remove guest password.

Encryption

All HopToDesk connections are encrypted end-to-end. Your session data (screen content, keyboard input, file transfers, audio) is encrypted in transit and cannot be read by third parties, including HopToDesk servers.

  • Connections use strong encryption protocols.
  • A security code is displayed during connection that both parties can verify to confirm the connection is not intercepted.
  • Direct (peer-to-peer) connections are used when possible. When a relay is needed, the data remains encrypted end-to-end.

Permissions

Control what remote users can do in Settings, then Remote Access. During a session, the person at the computer can switch each one off in the connection window.

Settings Overview

Open Settings with the gear icon on the This Device card. The groups appear in the order below.

  • Remote Access - what connected partners are allowed to do.
  • Audio Input - microphone/system-audio streaming.
  • Network - API, proxy, direct IP, LAN discovery.
  • Security - incoming-connection master switch and 2FA.
  • Display settings - how sessions show a remote computer with several monitors.
  • Recording - automatic recording, the folder, and how long recordings are kept.
  • Appearance - dark theme and language.
  • Dashboard - link to a HopToDesk Dashboard account.

On macOS, a Mac permissions row at the top of the panel shows how many permissions are missing. Tap it to open the Mac permissions screen. See macOS Permissions.

If your organization installed a branded version of the app or manages this device from a dashboard, some settings may be locked. Locked settings appear greyed out and cannot be changed, and the matching permission icons in the connection window are greyed out too.

Settings - Remote Access

The Remote Access group lists the permissions your device grants to incoming connections. Each row is a toggle.

ToggleWhat it controls
Keyboard/MouseAllow connected partners to control keyboard and mouse.
ClipboardAllow clipboard copy/paste sync between machines.
File TransferAllow connected partners to upload or download files.
Remote RestartAllow connected partners to restart this device.
TCP TunnelingAllow connected partners to open port-forward / RDP tunnels through this device.
Remote TerminalAllow connected partners to open a terminal on this device. Off until you turn it on.
Remote PrintingAdds a HopToDesk Printer on this device. A job printed to it comes out of the connected person's printer.
Wake On LANAllow connected partners to wake this device with a Wake-on-LAN magic packet. Requires NIC/BIOS support. Wake on LAN

Settings - Audio Input

The Audio Input group appears when the device has a microphone or the "System Sound" loopback is available. It controls whether remote partners can listen to this device's audio.

SettingWhat it does
Enable AudioOn by default. Turn it off and partners hear nothing.
DevicePicks the capture source. On Windows, on macOS 13 and later, and on Linux where a monitor source exists, the default is System Sound (everything playing on the computer); elsewhere it is the microphone. Tap the row to pick a different microphone from the list of detected devices. On macOS, microphones are listed only after macOS allows HopToDesk to use them; until then the group shows a Microphone row with Configure. If the chosen microphone is missing or not allowed, the app sends system sound instead.
Voice callThe microphone used for voice calls.

Settings - Network

The Network group controls how HopToDesk reaches the signal servers, relays, and peers.

SettingWhat it does
Choose NetworkPick which HopToDesk API to fetch signal/TURN settings from. Use the default (HopToDesk Network) or supply a custom API URL. See Choose Network.
Proxy SettingsRoute all HopToDesk traffic through a SOCKS5 / HTTP proxy. See Proxy Settings.
Direct IP accessToggle whether this device will accept connections by IP address. See Direct IP Access for how to use it and adjust the port (default TCP 21118).
Firewall ModeFor networks that allow only outbound TCP on port 443. Firewall & Ports
Send Server NameOff by default. Turn it on only if your own signal server sits behind a proxy or load balancer that needs the server name.
LAN DiscoveryToggle automatic discovery of HopToDesk devices on your local network. Turn this off if you don't want this device to be visible to others on the LAN.

Settings - Proxy Settings

Tapping Proxy Settings in the Network group opens a dialog with the following fields:

FieldDescription
HostnameProxy address, optionally with port (e.g. proxy.example.com:1080).
UsernameUsername for authenticated proxies. Leave blank if the proxy does not require credentials.
PasswordPassword for authenticated proxies.
TypeAuto Detect (let HopToDesk decide), SOCKS5, or HTTP.

Use this when your corporate network forces all outbound traffic through a proxy. All HopToDesk signal, relay, and file-transfer traffic will route through it.

Settings - Security

The Security group in the Settings panel holds these switches. For full background on each, see the Security category in the sidebar.

SettingWhat it does
Easy AccessLets your Dashboard team connect without a password. It must also be on for this device in the Dashboard. When the device is linked, the Dashboard may control this switch. See Easy Access.
Allow Incoming ConnectionsMaster switch for the HopToDesk service. When off, the signal/relay service stops and no one can connect to this device - not even with the correct password. Turn off to temporarily "take this device offline" without quitting the app.
Start on BootOn installed Linux, starts HopToDesk with the computer. Turned off, it accepts connections only while the app is open.
Two-Factor AuthenticationOpens the 2FA enrollment flow. Status column shows On or Off. See Two-Factor Authentication for setup.
Guest AccessA guest password lets someone connect, but they wait until a person at this device accepts. Guest Access
Unattended Wayland AccessNo screen-sharing prompt, including at the login screen. Use it only on computers you administer.

Settings - Appearance

SettingWhat it does
Dark ThemeToggle between the light and dark HopToDesk UI.
LanguageOpens a list of the 40+ supported languages. Selection applies immediately - no restart required.

Settings - Dashboard

The Dashboard group shows your HopToDesk Dashboard link status.

  • Enter Invite Code - tap to link this device to a HopToDesk Dashboard account using an invite code.
  • Linked - once linked, the row shows the first few characters of the dashboard user ID. Tap the row again to unlink. If your organization set this device to Account Access Only in its dashboard, Unlink is not offered.
  • Display Name - the name shown to the remote device when you connect. Leave it empty to use your computer login name.
  • Identity Key - paste the key from your dashboard team page to show your verified photo when you connect.

If your organization set up the app, the main window may also show Company name and Computer name. Click Change to correct them.

See Dashboard Integration for the benefits of linking, and Dashboard documentation for how to obtain an invite code.

Choose Network

When HopToDesk launches, it loads the default API to fetch network and other settings. You can override this and point HopToDesk at a different API URL for greater control over the networking used by the app.

  1. Open Settings, then Network, then Choose Network.
  2. Choose Custom Network Settings and enter the URL.

If the row is missing, the device is managed by your dashboard.

Choose Network is the quickest way to point a single device at a different network (for example, your self-hosted server). For per-device config files with full local control, see API Override (Custom TURN Servers).

Full Self-Hosting

You can run the entire HopToDesk network on your own infrastructure - signal server and relays - with no dependency on the public HopToDesk Network. The dashboard itself is a hosted service and is not self-hostable. Setup is a single installer command; clients connect by hostname and there is no public-key exchange or per-device configuration to manage.

  • Runs on any Linux server, or on AWS / Cloudflare Workers.
  • Clients are pointed at your server via Choose Network or a custom api.json - no rebuild required.
  • Good fit for compliance, isolated networks, or regulated environments where traffic must stay on your infrastructure.

Full instructions and the one-line installer are on the On-Premises page.

Fastest way: in the dashboard, open Settings, Network Settings, Set up a private network. It gives you an AWS launch link or a Docker command, and the new server reports to the dashboard by itself. Every linked device gets the settings.

If you only want to bring your own TURN relays while still using the HopToDesk signal server, see API Override (Custom TURN Servers) - it's lighter weight than running the full stack.

API Override (Custom TURN Servers)

This is a partial self-hosting path: you keep the HopToDesk signal server but supply your own TURN relays (useful for latency, sovereignty over relay traffic, or load isolation). For a fully independent stack, see Full Self-Hosting.

HopToDesk depends on an API to load the settings needed to make and receive connections. You can bypass the default API and load settings locally by creating an api.json file in the HopToDesk config directory:

PlatformPath
Windows, all users and the serviceC:\ProgramData\HopToDesk\config\api.json
Windows, current user only%APPDATA%\HopToDesk\config\api.json
macOS~/Library/Preferences/com.hoptodesk.HopToDesk/api.json
Linux~/.config/hoptodesk/api.json

On Linux the background service runs as root and reads the file under /root, while the app you open reads the file in your own home folder. Put a copy in both places.

Download the template api.json, save it at the path above for your platform, and edit the values as needed. Keep the rendezvous JSON key unchanged (it points to the signal server) to continue using the HopToDesk signal server. Define your own TURN servers by editing the turnservers section.

When HopToDesk opens, it will use your custom api.json instead of fetching settings from the HopToDesk API - which also gives a small improvement in startup time.

MCP (Model Context Protocol) Server

HopToDesk includes a built-in MCP server so AI agents and automation tools can control and monitor HopToDesk programmatically. MCP uses JSON-RPC 2.0 and conforms to MCP protocol version 2024-11-05.

Transport Modes

ModeHow to Start
WebSocket (default)Starts automatically whenever HopToDesk is running. Listens on ws://127.0.0.1:9333. Port can be changed via the mcp-ws-port setting.
StdioLaunch HopToDesk with --mcp to use stdin/stdout for JSON-RPC. Ideal when an AI agent spawns HopToDesk as a child process.
TCPLaunch HopToDesk with --mcp-port <PORT> to listen on a TCP socket (default 9222).

Authentication

For WebSocket and TCP modes, the first message on each connection must be an auth token:

{"auth": "TOKEN"}

The token is generated automatically and written to a discovery file called mcp.json in the HopToDesk config directory:

{
  "mcp_version": "2024-11-05",
  "server": "hoptodesk-mcp",
  "version": "1.x.x",
  "transport": "websocket",
  "url": "ws://127.0.0.1:9333",
  "port": 9333,
  "token": "random-32-character-token",
  "pid": 12345
}

On macOS and Linux the discovery file is restricted to owner-only permissions (0600), and it is deleted automatically when HopToDesk exits. Stdio mode does not require authentication.

Configuring an AI Agent

For Claude Desktop (and other MCP-compatible agents), add HopToDesk as an MCP server in the agent config. Stdio mode is simplest - no token required:

{
  "mcpServers": {
    "hoptodesk": {
      "command": "/path/to/hoptodesk",
      "args": ["--mcp"]
    }
  }
}

For WebSocket mode, your agent reads mcp.json from the HopToDesk config directory to obtain the URL and token.

Available Tools

The MCP server exposes these tools, grouped by category.

Screen & Input

  • screenshot - Capture the display as a PNG. Supports cropping via x, y, width, height.
  • get_window_list - List all visible windows with titles, positions, and sizes.
  • mouse_click - Move the mouse to coordinates and click (left/right/middle, single or double).
  • mouse_move - Move the mouse without clicking.
  • type_text - Type text via keyboard input (unicode supported).
  • key_press - Press a key or key combo (e.g. Return, ctrl+a, alt+F4).

Open Session (works on the remote computer of a session you have open)

  • session_screenshot - Capture the remote screen of an open session as a PNG. Works while the session window is hidden or small.
  • session_click - Click on the remote computer of an open session.
  • session_key - Press a key on the remote computer of an open session, with optional modifiers.
  • session_type - Type text on the remote computer of an open session, into whatever has focus there.
  • session_clipboard - Put text on the clipboard of the remote computer of an open session, ready to paste there.

Screen Automation

  • scroll - Scroll the mouse wheel at a position.
  • mouse_drag - Click and drag from one point to another.
  • key_hold / key_release - Hold a key down and release it later, for actions like Ctrl+click.
  • get_screen_size - Get the primary display resolution in pixels.
  • wait_for_screen_change - Wait until the screen, or a region of it, changes.
  • screen_diff_summary - Compare the screen before and after an action.
  • verify_action_result - Check that a screen action had an effect.
  • read_screen_text - Read the text on the screen, or in a region of it.
  • find_element - Find text on the screen and return where it is.
  • click_text - Find text on the screen and click it.
  • wait_for_text - Wait until specific text appears on the screen.

Workflows

  • start_recording / stop_recording - Record tool calls and return them as a workflow.
  • replay_workflow - Replay a recorded workflow, faster or slower if you want.

Device Information

  • get_device_info - Get this device's HopToDesk ID, version, platform, hostname, and signal server status.
  • list_peers - List known peers with filters: all, recent, favorites, or lan.

Connection Management

  • connect_to_peer - Initiate a remote connection. Types: connect, file-transfer, port-forward. Optional password.
  • disconnect_peer - Close an active remote connection.
  • list_active_connections - List all outgoing remote connections with type and status.
  • list_incoming_connections - List peers connected to this device with authorization status and permissions.

Connection Control

  • get_ui_state - Rich UI state: toolbar buttons, connection quality (speed/FPS/delay/codec), display info, permissions, dialogs, video dimensions, view settings.
  • wait_for_event - Block until an event occurs (up to 60s). Events: connection_ready, connection_closed, dialog_appeared, dialog_dismissed, quality_stable.
  • dismiss_dialog - Dismiss the current modal. Use a peer ID or "all".
  • click_toolbar_button - Click a toolbar button or submenu. Buttons: fullscreen, chat, transfer-file, remote-print, recording, privacy-mode. Submenus use menu:item (e.g. action:ctrl-alt-del, display:original, keyboard:map).
  • send_chat_message - Send a chat message to a connected remote peer.

Permissions

  • switch_permission - Toggle incoming-connection permissions: keyboard, clipboard, audio, file, restart, recording.

Clipboard & Files

  • get_clipboard / set_clipboard - Read or write the local clipboard.
  • list_local_files - List directory contents on this device. Optionally include hidden files.
  • read_local_file - Read a local file (text or base64 for binary, max 1 MB).

File Transfer & Tunnels

  • transfer_file - Transfer a file or folder over an open file transfer window.
  • open_tunnel - Add a TCP tunnel on an open TCP Tunneling window.
  • upload_file_to_url - Upload a local file to an https link from the Dashboard.
  • download_file_from_url - Download a file from an https link to this device.
  • get_file_transfer_status - Check the status of an upload or download.

Remote Printing

  • set_remote_printer - Configure the printer for remote print jobs. Use auto to pick the only available printer; omit the name to list available printers.
  • test_print - Send a test print job to verify the remote print pipeline.

System Operations (Dashboard-enrolled devices only)

  • exec_operation - Run a predefined system operation: get_system_info, disk_usage, list_processes, network_info, get_service_logs, ping_test, installed_software, restart_hoptodesk, kill_process, flush_dns, reboot_device, shutdown_device, clear_temp_files, run_update_check.
  • run_command - Execute an arbitrary shell command (cmd.exe on Windows, /bin/sh on macOS/Linux). Default timeout 30s, max 120s. Output truncated to 64 KB.

exec_operation and run_command are only available on devices enrolled with HopToDesk Dashboard Pro.

Security

  • All transports bind to localhost only (127.0.0.1). MCP is never exposed to other machines.
  • WebSocket and TCP modes require token authentication before accepting any commands.
  • The mcp.json discovery file has restricted permissions on Unix systems.
  • Destructive operations (run_command, exec_operation, disconnect_peer) are annotated as requiring confirmation, giving AI agents an opportunity to prompt the user before executing.

Scripts from the Dashboard

On the Business plan, the dashboard can run your own PowerShell, cmd, sh and bash scripts on linked devices. The account owner approves each script before it runs. Scripts run in the background with full system rights (SYSTEM on Windows, root on macOS and Linux), and the person at the device keeps working.

Remote execution must be on for the device, and the device needs the current HopToDesk app. Read how to set up and run scripts

Command Line Options

HopToDesk supports a number of command line arguments on the desktop version:

ArgumentDescription
--installOpen the install window.
--uninstallRemove HopToDesk from this computer.
--silent-installInstall silently and create a desktop icon plus Start Menu shortcuts. Combine with the enrollment options below for zero-touch mass deployment. Run it again with a newer installer to update an installed client in place; the device keeps its ID, settings and enrollment.
--silent-install-noshortcutsSame as --silent-install, but without creating shortcuts.
--install-path <PATH>With --silent-install: the folder to install to.
--nostartupWith --silent-install: do not start the tray icon when someone signs in.
--proxy-url <URL>With --silent-install: the proxy this device uses.
--invite-code <CODE>Auto-register the device to a Dashboard Pro deployment/invite during install. Get the code from your dashboard (Devices, then Standard Invite, or Advanced, then Deployments).
--enrollment-token <TOKEN>Token-based enrollment for scripted/MSI/GPO/MDM deployment, and the reliable way to auto-register at scale. Shown alongside the invite code in your dashboard.
--wait-for-enrollmentBlock until the device confirms enrollment (up to 60s), then exit. Returns 0 on success, 2 if enrollment is unconfirmed, 1 if install failed, so deployment tools (ESET, Intune, etc.) can report status. Optional --wait-for-enrollment=<seconds> sets the timeout.
--trayRun minimized with a tray icon.
--import-config <FILE>Specify a config file to use.
--connect <REMOTE_ID>Start an outgoing connection to the given device ID.
--terminal <REMOTE_ID>Open a Remote Terminal to the given device ID.
--file-transfer <REMOTE_ID>Open File Transfer to the given device ID.
--view-camera <REMOTE_ID>Open View Camera to the given device ID.
--port-forward <REMOTE_ID>Open TCP Tunneling to the given device ID.
--password <PASSWORD>Set the permanent password. Needs the installed app and admin rights.
--changeidChange the HopToDesk device ID.
--remoteupdateWindows only. Check for an update and automatically update HopToDesk to the latest version if one is available.
--qsStart HopToDesk in Quick Support mode (incoming connections only).
--mcpStart the MCP server in stdio mode (JSON-RPC over stdin/stdout).
--mcp-port <PORT>Start the MCP server in TCP mode, listening on 127.0.0.1 at the specified port (default 9222).

Examples

hoptodesk --silent-install
hoptodesk --silent-install --invite-code <CODE> --enrollment-token <TOKEN> --wait-for-enrollment
hoptodesk --connect 123456789
hoptodesk --qs
hoptodesk --mcp

For full mass-deployment instructions (ready-to-copy GPO / Intune / SCCM / ESET / Jamf commands, plus the macOS PPPC profile), open a deployment in the dashboard and expand How to Deploy to Devices.

Log Files

If you're experiencing issues, log files can help diagnose the problem. You can share these with support when submitting a ticket.

Log File Locations

PlatformPath
Windows%APPDATA%\HopToDesk\log
Usually: C:\Users\<YourName>\AppData\Roaming\HopToDesk\log
Windows (installed as service)C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\HopToDesk\log
macOS~/Library/Logs/HopToDesk
Linux~/.local/share/logs/HopToDesk

How to Access Logs on Windows

  1. Press Win + R to open the Run dialog.
  2. Type %APPDATA%\HopToDesk\log and press Enter.
  3. The log folder will open in File Explorer.

How to Access Logs on macOS

  1. Open Finder.
  2. Press Cmd + Shift + G (Go to Folder).
  3. Type ~/Library/Logs/HopToDesk and press Enter.

Firewall & Ports

You may need to make exceptions in your firewall settings to allow the following ports and protocols for HopToDesk to successfully make and receive connections:

Ports Used

PortProtocolPurpose
80, 443TCPOutbound signal/API traffic (standard HTTP/HTTPS ports).
Any portTCPOutbound only. Direct peer-to-peer sessions connect to the other device on a random port, and relayed sessions connect to the relay port assigned to each session (1001–65535). Not needed on the remote device when Firewall Mode is on (see below). Sessions do not use UDP; only LAN discovery does, as a broadcast on the local network.
21118TCPRequired only on the receiving device when using Enable direct IP access or LAN-only connections.

LAN / direct-IP only: If you only use HopToDesk on your LAN or connect by IP address, only TCP port 21118 needs to be allowed on the receiving device - no other ports are required.

Firewall Mode

For networks that only allow outbound TCP on port 443, turn on Settings > Network > Firewall Mode on the remote device. The remote device then reaches the other side through the relay's port 443, so no port range is needed on that network. The connecting device must also run a current HopToDesk version. A device with the mode off falls back to port 443 through the HopToDesk relays by itself when its normal relay connection fails; the mode only skips that attempt. Custom builds can turn this setting on and lock it under Advanced Options.

If a proxy or web filter lets the app connect on port 80 but then blocks the traffic, the app switches its signal connection to port 443 by itself and keeps using it after restarts.

Domains to Allow

For devices outside the LAN, you may also need to allow the following domains in your firewall:

  • api.hoptodesk.com
  • signal.hoptodesk.com
  • signal2.hoptodesk.com
  • turn.hoptodesk.com
  • turn-eu.hoptodesk.com and turn-sg.hoptodesk.com (relay servers)
  • signal-euonly.hoptodesk.com and turn-eu2.hoptodesk.com for accounts on the EU only network
  • dashboard.hoptodesk.com for devices linked to a Dashboard
  • eu.dashboard.hoptodesk.com for devices linked to a Dashboard on an EU account
  • dl.hoptodesk.com for app updates

Connection Issues

Common problems and solutions:

HopToDesk Stays on Connecting to the HopToDesk network

  1. Click the status text at the top of the window to try again.
  2. If your company uses a proxy, open Settings, then Network, then Proxy Settings. Type the same proxy address your browser uses, for example proxy.example.com:8080, and leave Type on Auto Detect.
  3. Check that your firewall allows the domains listed here: Firewall & Ports
  4. Install the latest version from www.hoptodesk.com.

Cannot Connect to Remote Computer

  • Verify the Device ID is correct and the remote computer is online.
  • Ensure the remote computer has HopToDesk running and shows a "Ready" status.
  • Check that incoming connections are not disabled in the remote computer's settings.
  • If you're on a restrictive network, allow outbound TCP to any port for the remote device, or turn on Firewall Mode on it so that only outbound TCP 443 is needed (see Firewall & Ports).
  • Check your firewall settings.
  • Unable to connect to the remote partner: the other device is off, asleep or offline, or its ID is wrong. Wake it, or follow Keep the remote computer reachable under Unattended Access. Unattended Access
  • Wrong password: The one-time password changes after every session and after several wrong tries. Read it again from the other computer.
  • Please try 1 minute later: Too many wrong passwords in a row. Wait a minute, then try again.
  • Too many wrong attempts: Restart HopToDesk on the remote computer, or restart that computer, then try again with the right password.
  • Incoming Connections Off: Click Enable Incoming Connections at the top of the remote computer's window.

Connection is Slow or Laggy

  • Lower the image quality in Display settings (try Optimize reaction time).
  • Switch to a faster codec (VP8 uses less CPU; H.264/H.265 use hardware acceleration).
  • Hover the lock icon in the toolbar to see whether the session is direct or relayed.
  • On a Mac, if a computer on your own network connects slowly, open System Settings, then Privacy & Security, then Local Network, and turn on HopToDesk.
  • Close bandwidth-heavy applications on both computers.

Black Screen After Connecting

  • The remote computer may have privacy mode enabled - click the eye icon to toggle it off.
  • On Windows, try Request Elevation from the Control actions menu if the remote desktop is at a UAC prompt or secure-desktop dialog.
  • Try switching the display codec in Display Settings.
  • On a remote Mac, turn on HopToDesk in System Settings > Privacy & Security > Screen Recording, then quit and open HopToDesk again on that Mac.
  • On a Linux computer using Wayland, someone at it must approve the screen sharing question, unless Unattended Wayland Access is on.
  • If you see could not load the GStreamer PipeWire plugin, install pipewire-gstreamer (Fedora) or gstreamer1.0-pipewire (Debian, Ubuntu) on the remote computer.

HopToDesk Window Is Black

  • If the HopToDesk window itself stays black, or closes right after it opens, install the latest version from www.hoptodesk.com.

Keyboard or Mouse Not Working

  • Check that Keyboard & Mouse permission is enabled on the remote computer.
  • On macOS, ensure Accessibility permission is granted. See macOS Permissions.
  • On Linux with Wayland, allow remote control in the desktop's question, or turn on Unattended Wayland Access.

macOS Permissions

macOS requires explicit user permission for HopToDesk to capture the screen and control input. Open Settings, then Mac permissions, to see the permissions HopToDesk uses, grouped as Required, Recommended and Optional, with a button for each one that is missing. Local Network is not on this screen: macOS asks about it the first time you connect on your network. This screen also opens once by itself the first time HopToDesk starts, and from the Enable Permissions button in the top bar. When both required permissions are on, it says This Mac is ready for unattended access.

Required Permissions

PermissionLocationPurpose
Screen RecordingSystem Settings > Privacy & Security > Screen RecordingRequired to capture and share your screen with remote users.
AccessibilitySystem Settings > Privacy & Security > AccessibilityRequired to allow remote keyboard and mouse control.

Recommended Permissions

PermissionLocationPurpose
Full Disk AccessSystem Settings > Privacy & Security > Full Disk AccessLets file transfer reach every folder without macOS asking about each one.
Input MonitoringSystem Settings > Privacy & Security > Input MonitoringUsed when this Mac controls another computer.
Local NetworkSystem Settings > Privacy & Security > Local NetworkLets HopToDesk connect directly to computers on the same network, find them in the Discovered tab and use KVM mode.

Optional Permissions

PermissionLocationPurpose
MicrophoneSystem Settings > Privacy & Security > MicrophoneUsed for voice calls and headsets.

How to Grant Permissions

  1. In HopToDesk, open Settings, then Mac permissions.
  2. Click Allow or Open system setting next to a permission. System Settings opens at the right list.
  3. Turn on HopToDesk. On macOS 15 and later, Screen Recording is listed as Screen and System Audio Recording.
  4. Quit and open HopToDesk if asked. The row in HopToDesk turns to Allowed by itself.

Note: If HopToDesk does not appear in the permission list, try removing it and re-adding it, or reinstall the application.

IT admins: You can pre-approve these permissions on your Macs with an MDM. See macOS permissions through your MDM.

IT admins can use the signed installer package with an MDM: HopToDesk.pkg

Android Permissions

To let another device see and control your Android phone or tablet, install HopToDesk from Google Play or the .apk from the download page.

Website .apk only: install the file

  1. Download the .apk on the phone and open it.
  2. If Android asks, allow your browser or file manager to install unknown apps, then tap Install.
  3. If a security warning appears, choose the option to install anyway.

Permissions to allow

PermissionLocationPurpose
Screen captureTap Start Screen Share in HopToDesk and allow the prompt.Shows your screen to the remote device.
Input controlSee the steps below.Lets the remote device tap and type.

To turn on Input control:

  1. Open HopToDesk and tap Share screen at the bottom.
  2. Tap Input control.
  3. In the Google Play version, read the notice about the Accessibility service and tap Accept.
  4. Tap Open system setting.
  5. Open Installed Services (Downloaded apps on some phones), tap HopToDesk Input and turn it on.

Website .apk only: if Android says the setting is restricted

On Android 13 and newer, Android can block Accessibility for an app installed from a downloaded file. If you see Restricted setting when you tap HopToDesk Input, do this once:

  1. Tap OK.
  2. Open Settings, then Apps, then HopToDesk. The App info button in the HopToDesk permission dialog opens the same page.
  3. Tap the three dots at the top of the screen and choose Allow restricted settings. Confirm with your PIN or fingerprint if Android asks.
  4. Go back to Settings, then Accessibility, and turn on HopToDesk Input.

Dashboard Integration

Link your HopToDesk device to the HopToDesk Dashboard at dashboard.hoptodesk.com for centralized management.

  • Link your device: open Settings, then Dashboard, then Enter Invite Code, and paste the 16-character code from your dashboard.
  • Benefits: Centralized device management, team management, support ticket tracking, health and temperature alerts, and more.
  • Add a remote computer: If your device is linked and the remote computer is not, a green button in the session toolbar adds it to your Dashboard. The person at that computer clicks Accept. They can undo it in Settings, then Dashboard. On Android, the website .apk can accept it.
  • Unlink: You can unlink your device from the Dashboard in Settings, unless the Dashboard has locked it to the account (Account Access Only).
  • Easy Access: Your team connects from the Dashboard without a password. See Easy Access.

See the Dashboard documentation for full details on team and device management features.

Easy Access

Important: make sure Easy Access is on in Settings. In HopToDesk on the device, open Settings, then Security, and check that Easy Access is on. It must also be on for the device in your dashboard.

Easy Access lets your team connect to this device from the HopToDesk Dashboard without a password. The Dashboard authorizes every connection and logs it. The device must be linked to a Dashboard account on the Business plan.

Turn it on

  1. Link the device to your Dashboard: Settings, then Dashboard, then Enter Invite Code. See Dashboard Integration.
  2. In the Dashboard, click the device name, then under Access turn on Easy Access.
  3. On the device, open Settings, then Security, and check that Easy Access is on. If it is off and the switch can be changed, switch it on.
  4. Connect with the Connect button in the Dashboard. No password is needed.

Web Connect and File Transfer in the Dashboard connect without a password too.

Many devices at once

  • Onboard a fleet: machines that install with the token of a fleet that has Easy Access on get it turned on, in the Dashboard and in the app.
  • Custom app: a custom build with Easy Access locked On turns it on for every device that installs it, in the Dashboard and in the app.

Troubleshooting

  • The connection asks for a password: Easy Access is off in one of the two places. Check the device in the Dashboard, and Settings, then Security, in the app on the device.
  • The Easy Access switch in the app is greyed out: if the device is not linked yet, link it with an invite code. If it is linked, the Dashboard or your organization's custom app controls the switch, so turn Easy Access on for the device in the Dashboard.
  • Both are on but it still asks for a password: update HopToDesk on the device to the latest version.

Desks

Desks is KVM mode set up from the HopToDesk Dashboard, for IT teams and MSPs on the Business plan. You pair the computers on a desk without going there. When someone signs in on the main computer, it connects to the other computers on the desk and starts KVM mode by itself, with no password and no clicks.

Set up a desk

  1. Link every computer on the desk to your Dashboard and update HopToDesk to the latest version.
  2. In the Dashboard, open Devices and scroll to Desks.
  3. Click New desk and give the desk a name, for example Front desk.
  4. Pick the computers from left to right, mark the main computer, and click Save desk.

Good to know

  • A desk has 2 or 3 computers on the same local network: the main computer and one computer on each side of it.
  • Owners and admins manage desks. Each link uses a one-time key from the Dashboard, and the audit log records desk changes and links.
  • To turn KVM mode off for a group of devices, untick Allow KVM Mode in Device Policies.
  • When KVM mode is turned off on a computer, technicians who connect to it do not get KVM mode either.
  • AI apps connected through MCP can list desks and suggest new ones. A suggestion waits in Desks until an owner or admin approves it.

Support Tickets

Get help directly from within the HopToDesk application:

  1. Open HopToDesk and make sure your device is linked to the Dashboard.
  2. Click the ticket icon at the top of the main window.
  3. Fill in your email, Subject and Description.
  4. Click Add File to attach a screenshot or file (up to 30 MB).
  5. Select a priority level (Low, Medium, High, or Urgent).
  6. Click Submit Ticket. See replies on the My Tickets tab.
English Français Español Português Deutsch Nederlands Polski Čeština Norsk Svenska Русский Türkçe עברית العربية Bahasa Tiếng Việt 简体中文 正體字 日本語 한국어 ภาษาไทย