3,365 apps tracked 0 new today 17 updated today Synced 7m ago

RustDesk

Secure remote desktop access

RustDesk ✓ Verified

com.rustdesk.RustDesk
View on Flathub ↗

RustDesk is a full-featured open source remote control alternative for self-hosting and security with minimal configuration.

  • Works on Windows, macOS, Linux, iOS, Android, Web.
  • Supports VP8 / VP9 / AV1 software codecs, and H264 / H265 hardware codecs.
  • Own your data, easily set up self-hosting solution on your infrastructure.
  • P2P connection with end-to-end encryption based on NaCl.
  • No administrative privileges or installation needed for Windows, elevate privilege locally or from remote on demand.
  • We like to keep things simple and will strive to make simpler where possible.

For self-hosting setup instructions please go to our home page.

Screenshots

Remote desktop session
Remote desktop session

Observed history

App ChangeVersionWhen ↑
updated1.5.04 Oct 2026

Upstream releases

Release notes supplied by the developer. These dates are not Flathub package publication times.

1.5.030 Sept 2026
  • Webrtc #15684
  • Id whitelist #15586
  • Hdr tonemap #16033
  • optionally sync clipboard between connected sessions #15934
  • feat(terminal): add Ctrl and Alt toggles to mobile terminal keyboard #15532
  • feat(recording): add visibility and service storage options #15662
  • feat(rdp): title the mstsc window after the peer instead of "localhost" #15781
  • feat(flutter): add mobile canvas lock #15877
  • Kx v1 #16326
  • feat(terminal): add opt‑in OSC 52 clipboard writes #16072

Changes

  • improve qos #16082
  • refact: remove feature cli #15524
  • WebClient: 3.44 webcodecs offline #15722
  • Linux drop shell from service loop #15979
  • port forward shared conn #16062
  • temporary password: rotate when a peer is let in, not when it leaves #16080
  • cursor: bound the decoded cursor caches on the Flutter client #16304

Fixes

  • fix: update download, force tls #15529
  • harden wf_cliprdr.c #15515
  • fix: check valid id #15535
  • Fix Adjust Window sizing across DPI #15592
  • restrict switch sides to remote desktop sessions #15610
  • fix(linux): forward forced display server to user server #15627
  • fix: refresh wayland uinput range on compositor layout change #15628
  • fix(deploy): don't wipe local id when --deploy gets an empty --id #15633
  • fix(keyboard): jis, macos, muhenkan henkan #15669
  • fix: validate RGBA clipboard dimensions #15672
  • fix: validate remote audio channel count #15673
  • fix(wayland): scale portal pointer coordinates on niri #15683
  • fix(clipboard): win, populate file formats #15692
  • fix(clipboard): validate files #15693
  • refact(oidc): manually open the browser #15706
  • Fix flutter white window forceredraw #15717
  • fix(linux): make quit_cm actually quit the connection manager #15718
  • fix(linux): load librustdesk.so relative to the executable #15719
  • fix(wayland): subscribe to portal Response before making the request #15726
  • fix(linux): keep‑awake does nothing on a GNOME login screen #15772
  • fix(terminal): send SGR mouse wheel reports with the button codes app… #15817
  • fix(file‑transfer): improve large directory loading #15830
  • fix(terminal): keep selection aligned after clearing scrollback #15831
  • fix(flutter): make Adjust Window reliable across desktop platforms #15853
  • fix(wayland): back off the polling display lookups after a failure (drm) #15865
  • fix(drm): deliver a rotated output upright (#15886) #15889
  • fix(flutter): initialize the cursor hotspot y from its own origin #15898
  • fix(linux): a session logout should hand the peer to the login screen #15905
  • feat(terminal): use platform‑native copy and paste shortcuts #15931
  • Prefer active X11 session display #15933
  • fix: Show My Cursor freezes in View Only mode when remote user moves mouse #15936
  • fix appimage: gdk‑pixbuf PNG decode crash on remote cursors #15938
  • fix(flutter): align terminal shortcuts with platform conventions #15970
  • fix(linux): a Wayland session without XAUTHORITY is not incomplete #15978
  • fix: show speed in desktop file transfer status #15980
  • fix(linux): Set AppIndicator ID for tray‑icon #15981
  • fix: recover DXGI capture after access loss #16024
  • fix(custom client): preserve executable name casing during update #16057
  • Fix/audio stream continuity #16095
  • fix: clipboard, preserve uncompressed special format data #16100
  • fix(audio): update CPAL for WASAPI thread priority #16110
  • Dead peer recovery #16117
  • fix(screenshot): keep cached image when saving fails #16120
  • fix(drm): measure the cursor hotspot on drivers without HOTSPOT_X/Y, confirm before publishing #16122
  • server: do not lock the screen for a connection whose session reconnects… #16124
  • fix(audio): restart capture when the device is unavailable #16142
  • fix(audio): preserve compatible playback and recover failed Windows outputs #16150
  • Upgrade FFmpeg to 7.1.1 to fix HEVC WPP deadlocks #16169
  • fix(cursor): correct native cursor sizing and validate received images #16213
  • fix(audio): three 100% CPU busy loops on the _pa path #16229
  • fix(rdev): macos, numpad flag, clear on text keys #16253
  • fix: avoid unnecessary clipboard reads and stale initial sync #16293
  • fix(ws): reject text frames after encryption is enabled #16295
  • fix: restrict VRAM stall detection to AMD SDK #16319
  • fix(unix): ignore SIGPIPE in native Flutter entry #16322
  • Fix clipboard range overflow #16329
  • fix(appimage): build AppRun with bounded argument splitting #16330
  • fix(clipboard): unix, check file transfer permission on incoming file… #16333
  • fix(mobile): honor reverse mouse wheel setting #16337
  • Fix, online state, validate the data length #16339
  • fix(clipboard): unix, don't let the next file's preload fail a request #16364
  • fix(linux): use BUS_VIRTUAL for the virtual mouse device #16382
  • fix(clipboard): unix, keep Windows directories searchable #16406
  • Don't retry the _pa ipc at a Linux login screen #16390
1.4.96 Jul 2026
  • Support controller user attribution in audit logs #15407
  • Feature: Restore the last viewed monitor on auto reconnect #15441
  • auto-close terminal tab/window when shell exits #15448
  • Add authentication details to connection audit #15456
  • refact: remove feature cli #15524

Fixes

  • Fix/session scope permission audit #15469
  • fix: non-E2EE show dialog #15514
  • fix(wayland): clipboard, support ext-data-control #15366
  • refact: file transfer, do this for all conflicts(tasks) #15385
  • fix(clipboard): unix, refresh cached file size/mtime on re-copy #15392
  • fix(custom-client): show options, incoming-only #15394
  • fix(fuse): fuse path broken, since ipc path changed #15406
  • Tray menu opens on left-click after tray-icon ≥0.17 update (regression from 1.4.6) #15413
  • fix(fuse): umount #15426
  • fix(update): msi, norestart #15440
  • fix(clipboard): make CLIPRDR format-map growth checked #15493
1.4.821 Jun 2026
  • Feature: Add monitor-switch buttons to remote toolbars #15342
  • Refact/privacy mode 1 multi monitors #15321
  • autocomplete online #15313
  • feat: theme logo #15268

Changes

  • refact: restart remote device, autoconnect #15290
  • refact(oidc): icon azure to microsoft #15278
  • Refact/printer driver default unchecked #15191

Fixes

  • fix Wayland→Wayland clipboard paste
  • fix(arm64-linux): fix CJK font rendering on flutter-elinux #15324
  • fix(linux): reap leftover logind session procs on headless teardown #15337
  • Fix/generate py target injection #15248
  • Fix clipboard synchronization not fully disabled in View Only mode #15224
  • fix(keyboard): win, key, Pause #15351
1.4.72 Jun 2026
  • Add advanced option to allow CLI settings when custom client toggles Disable settings #15138
  • Drag whole toolbar; snap to all four edges of the remote session window #15051
  • Github action hash pinned
  • feat: option, enable-privacy-mode & enable-perm-change-in-accept-window #14875
  • impl(cm): implement change_theme and change_language callbacks #14782
  • add brute-force protection for one-time password #14682
  • add option to hide stop-service when service is running #14563
  • --deploy, reuse the device token #15035
  • refact(password): encrypt #15073
  • Harden os password (terminal windows and headless linux) anti brute force #14985
  • stop retrying on restricted mobile access errors #14797
  • (keyboard): wayland clipboard input prompt #14700

Fixes

  • fix: bytes codec, reserver(), check max #15168
  • fix(crypt): symmetric crypt, zero nonce #15144
  • fix: add integer overflow check in wf_cliprdr.c #15142
  • scrap/wayland: insert videoconvert to fix screencast on COSMIC / DMA-BUF portals #15063
  • fix(ipc): scope active-user IPC routing to root CLI main requests #15058
  • fix(custom-client): desktop, incoming only, touch drag #14928
  • fix(fs): file transfer, reconnect, restore dir #14925
  • fix: remove unsafe exec() in wf_cliprdr.c #14924
  • Terminal utf8 and reconnect #14895
  • fix(sicter): control side, privacy mode #14880
  • fix safari-oidc https://github.com/rustdesk/rustdesk/issues/14861 #14867
  • fix(linux): enable mouse side buttons in remote sessions #14848
  • fix(client): serialize X11 keyboard grab and debounce focus feedback #14836
  • flutter: improve address book pull error handling #14813
  • flutter: shift after one shot IME capitalization #14695
  • fix: file transfer, path traversal #14678
  • fix(ipc): harden local IPC authorization and portable-service bootstrap flow #14671
  • fix switch sides for macOS peers #14661
  • fix(shell): restrict kv in update_install_option #14564
  • fix(linux): prevent X11 BadWindow crash in get_focused_display #14561
  • Fix(wayland): improve error message when xdg-desktop-portal is unavailable #12897 #14543
  • Fix Linux tray icon collision with other tray-icon crate apps #14530
  • Fix: note dialog not shown when closing session from reconnecting screen #14528
  • fix empty strategy value cannot apply over default advanced options #14502
  • fix(flutter): reduce accidental horizontal trackpad scrolling during vertical pan #14460
  • Move port mapping afterwards #14448
  • fix(update): macos, test before update #14446