Kitedesk features

Kitedesk is an open-source (AGPL-3.0-only) remote desktop app for Windows, macOS, Linux and Android. It connects without any server setup and is a beta focused on fixing the everyday friction of controlling a PC from your phone.

Kitedesk focuses on three things: improvements for controlling a PC from a phone, an SSH terminal in the Android app, and releases that publish SHA-256 checksums and source code for every published file. This page lists what works in the current release and what does not work yet.

At a glance

  • License: open source under the GNU AGPL-3.0-only. Every version whose installers can be downloaded publishes the complete corresponding source for the same version.
  • Cost: current public builds are free to download and use, and no payments are open. Paid plan details and pricing have not been announced.
  • Account: not required. You request a connection with the other device's ID, and it connects once someone accepts it on that device (the default).
  • Platforms: Windows 10 and 11 (x86_64), macOS (universal: Apple Silicon and Intel), Linux (x86_64, glibc 2.39 or later) and Android (arm64, armv7). The iOS app is in preparation.
  • Distribution: direct downloads from the official site. Kitedesk is not listed in app stores, the Windows installers are not code-signed yet, and the macOS app is not notarized by Apple yet.
  • Status: beta. The default connection server has no guarantee of availability, speed or capacity (no SLA).

Connect without sign-up or server setup

Kitedesk connects with no sign-up. With default settings, you request a connection with the other device's ID and it connects once someone accepts the prompt on that device. If password access is turned on in that device's settings, you can also connect with its one-time password, which changes after an authenticated session ends.

After installation, Kitedesk registers with its default connection server automatically, so there is no server address or key to enter. During the beta, the default connection server has no guarantee of availability, speed or capacity (no SLA).

You can point Kitedesk at a compatible server you run yourself (hbbs/hbbr) by entering its address and public key. Your server takes priority over the defaults, and Kitedesk does not send its service lease to it.

Control a PC from your phone

You can control a PC running Kitedesk (desktop apps for Windows, macOS and Linux) from an Android phone. Real-world use has been confirmed with Windows PCs. A Mac must allow Screen Recording and Accessibility, and because current builds are not fully code-signed, you may need to allow them again after an update. The features below ship in 1.4.13-1; items marked in parentheses are still being verified on real devices.

Pick one monitor or see all monitors

In the Android app you can pick one monitor on the remote PC by its number, or choose "All monitors" (the grid icon) to see every monitor on one screen (when the remote PC has two or more monitors). When both sides run 1.4.13-1 or later, this view now uses each monitor's scaling (DPI) reported by a Windows PC to draw the monitor layout in the operating system's logical coordinates and to map taps and clicks to that layout. This change targets Windows PCs whose monitors use different scaling and does not reproduce the monitors' physical size (confirmation on real monitors in progress).

Zoom that survives the keyboard

In the Android app we improved zoom being reset when the soft keyboard opens and closes (including a case where unfolded foldables misread the screen orientation because of the keyboard), and if the keyboard covers the point you last tapped, the view moves to show it. We also fixed pasted text that starts with the digit 1 losing its first character and shifting everything typed afterwards by one position (confirmation on a real foldable in progress).

Window switching in one tap

From the session menu in the Android app, you can send the right "Switch window" shortcut for the remote OS (Alt+Tab on Windows and Linux, Cmd+Tab on macOS) and "Show all windows" (Win+Tab on Windows, Ctrl+Up on macOS) in one tap (on-device verification in progress).

Up to five sessions as tabs

The Android app keeps up to five remote sessions open as tabs. On wide screens whose shortest side is at least 600 dp (such as tablets and unfolded foldables), it shows two sessions side by side, and tabs that are not visible stop decoding video (on-device verification in progress).

A clear reason when the screen does not arrive

If a desktop device (Windows, macOS or Linux) cannot start screen capture, Kitedesk shows the reason it reported (no display, capture setup failed, macOS screen-recording permission missing, no frames, and so on) with a Reconnect button. If no reason is known, it shows what to check after 15 seconds. The other device must run 1.4.11-7 or later for the reason to appear, and Android devices show only general guidance (cross-device verification in progress).

Using an Android device as the controlled side

Being controlled as an Android device has not been confirmed on 1.4.13-1, so Kitedesk does not describe it as supported. The related permission policy is under Security and permission behavior.

Put the remote toolbar where you want it

In the desktop app, move the remote toolbar to the top, right, bottom or left edge with its position button or with Ctrl+Shift+F12 (Cmd+Shift+F12 on macOS). The position is remembered per remote device.

Send and receive files

  • In the Android app, the file-transfer screen shows progress, the file count and the amount transferred, and cancelling stops both the transfer in progress and the queued ones (not yet re-tested on a device with 1.4.13-1).
  • 1.4.13-1 does not request all-files access, so browsing phone storage for files to send may be limited; use another app's Share menu to send phone files to Kitedesk. You can resume interrupted transfers from the mobile transfer list (on-device verification in progress).
  • File names are normalized to Unicode NFC during transfer, so Korean file names created on macOS no longer split into separate jamo. File names that are not valid UTF-8 (for example CP949) may still be missing from the file list.

SSH and remote terminal on your phone

  • The Kitedesk Android app includes an SSH terminal for shell access without screen sharing. In testing, password and public-key login worked, UTF-8 Korean output displayed correctly, and the same session kept working after briefly (3 seconds in the test) switching to the home screen.
  • SSH private keys and saved connection profiles (including passwords) are encrypted with a key protected by the Android Keystore and kept only in the app's secure storage.
  • On first connection, Kitedesk shows the server's host-key fingerprint and saves it once you trust it; if the fingerprint later changes, the connection is refused.
  • From the Android app you can open a remote terminal (command line) on a desktop device. With default settings someone at that device must accept the connection (if it has password access turned on, the password also works), and it will not open if that device has the terminal permission turned off or is set to view-only.
  • The iOS app is in preparation, so the SSH terminal is available on Android only for now.

Optional account: synced address book

  • You can connect without an account. Sign in with email and password or with Google to sync your address book (aliases and tags) across signed-in devices, with each device's online status shown.
  • When you sign in and have not set your own server, "Use Kitedesk Relay" is on by default, so remote sessions you start from this device are routed through the Kitedesk relay. You can turn it off with that one switch, and the choice is kept on this device when you sign in again.
  • The web account portal (Korean) lets you download your data as JSON, sign out every browser session on the site at once, and delete your account (deletion requires a web session signed in within the last 15 minutes). This does not sign out the Kitedesk apps installed on your devices.
  • Google sign-in in the app has an unresolved issue on some Android devices, which is being investigated.

New version notices

Kitedesk checks the official release channel when it starts and re-checks periodically while it stays open, showing a card on desktop or a banner on mobile when a new version is available. In 1.4.13-1 an app left open effectively re-checks about every 12 hours, so the notice can take up to about 12 hours after a release. To check right away, quit the app completely and start it again, or look at the releases page (Korean).

Security and permission behavior

  • With default settings, connections are encrypted using libsodium (NaCl): a fresh session key is wrapped with the other device's Curve25519 public key, and session data is then encrypted with XSalsa20-Poly1305, so it also stays encrypted while passing through a relay server.
  • If encryption cannot be verified, Kitedesk warns you and asks whether to continue before connecting. Continuing after that warning proceeds without a secure connection, and Kitedesk has not had an external security audit, so it does not promise that every connection is always encrypted.
  • The Android app excludes its internal app data, which holds the device ID, keys and access password, from Google cloud backup and device-to-device transfer.
  • The Kitedesk Android app has no feature that bypasses secure screens (FLAG_SECURE) or the lock screen, and before remote-input accessibility is enabled it explains the purpose, the data involved and how to turn it off, and asks for consent. (Being controlled as an Android device has not yet been confirmed on 1.4.13-1.)
  • With default settings, each connection must be accepted on the controlled device, and password access has to be turned on in settings.
  • The Linux deb and rpm packages enable and start a system service at install time.

Transparent releases and source code

  • Kitedesk is licensed under the GNU AGPL-3.0-only. The complete corresponding source for each release is available on its release page (Korean).
  • The official site's public release list (/api/releases) gives the SHA-256 of every file published so far (280 files across 27 versions as of 29 September 2026), and source code (tar.gz) can be downloaded for all 27 versions. As of 1.4.13-1, the third-party inventory lists 1,180 components with 544 full license and notice texts (542 licenses, 2 NOTICE files). See open source and license notices (Korean).
  • Public builds since 1.4.10-7 (every installer currently available) use only the VP8, VP9 and AV1 video codecs and do not include H.264/H.265 implementations or hardware codecs.
  • Since the first public release on 5 August 2026 (KST), 27 versions have been published on the official site through 28 September 2026. Installers are still available for 15 of them; the other 12 provide the release record and source code only.
  • For Windows, there is an MSI installer and a portable EXE that runs without installation; for Linux, AppImage, deb, rpm and tar.gz packages. A Linux Flatpak file is also published, but it has not been confirmed to run and is not recommended.
  • There is no public Git repository, such as GitHub, at the moment; the source is provided as an archive for each release.
  • The license text is available at GNU AGPL-3.0.

Platforms and requirements

  • Windows (x86_64): MSI installer (recommended) and portable EXE. Windows 10 and 11 are supported; Windows 7 and 8.1 are not. The files are not code-signed yet, so SmartScreen may show a warning. ARM64 builds are not distributed.
  • macOS (universal: Apple Silicon and Intel): DMG. The app declares macOS 10.15 as its minimum, but older versions have not been tested. The app is ad-hoc signed and not yet notarized, so the first launch may be blocked, and you may need to allow Screen Recording again after an update.
  • Linux (x86_64): AppImage (recommended), deb, rpm, Flatpak and tar.gz. The deb, rpm, AppImage and tar.gz packages need glibc 2.39 or later (for example Ubuntu 24.04 or later, or Debian 13 or later) and do not run on Ubuntu 22.04 or Debian 12. The Flatpak is an experimental file that has not been confirmed to run, so it is not recommended, and it has not been confirmed as an alternative for older distributions. ARM builds are not distributed.
  • Android (arm64, armv7): APK (arm64 recommended). The app declares Android 6.0 as its minimum, but older devices have not been tested. It is not listed in app stores, so you need to allow installs from unknown sources. x86 builds are not distributed.
  • iOS: in preparation; there is no public build.

Compare the published SHA-256 checksum with the downloaded file before installing. Step-by-step instructions for each OS are in the install guide.

What Kitedesk does not do yet

  • There is no iOS app yet; it is in preparation.
  • There is no web client; Kitedesk runs as an installed app.
  • Korean input is still being improved. Please report how it works with your OS and input method.
  • The Windows installers are not code-signed and the macOS app is not notarized by Apple yet.
  • Kitedesk is not listed in app stores such as Google Play.
  • Public builds include no hardware codecs and no H.264 or H.265 implementations.
  • Kitedesk has not published latency or frame-rate measurements and makes no speed promises.
  • There is no public Git repository; the source is available as an archive for each release.

Beta program

The Kitedesk beta program is currently run in Korean; see the beta page for details.

Kitedesk is an independent fork of RustDesk. It is not affiliated with, endorsed by, or sponsored by the RustDesk project.