Skip to content
oocsngPublic

About

An open-source remote desktop alternative for Windows, inspiried by RustDesk

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

CppDesk App Icon
CppDesk
Portable remote desktop client and host for Windows, macOS, and Linux

Features • Quick start • Build • Structure • Video demo • Releases • Issues

Download CppDesk License: MIT Platform: Windows | macOS | Linux

CppDesk Product Showcase Demo
Watch demo video (1080p 60 FPS with audio)

CppDesk is a portable remote desktop application built with modern C++ and hardware-accelerated rendering (Direct2D on Windows, Cocoa and Metal on macOS, X11 and MIT-SHM on Linux). It runs standalone with no installer, registry clutter, or external runtime requirements. Sessions authenticate via ephemeral or permanent keys and run end-to-end encrypted over direct LAN, NAT hole punching (STUN), or an optional relay server.

Hosts and clients identify each other with a 9-digit desk ID (XXX XXX XXX). Access can be granted with a password or through interactive on-screen approval.

Features

  • Screen streaming: Low-latency desktop capture using DXGI Desktop Duplication with GDI fallback on Windows, AVFoundation / CoreGraphics on macOS, and MIT-SHM / X11 on Linux; multi-monitor selection, dynamic resolution matching, and 4-tier quality presets (Low Bandwidth 15 FPS, Balanced 30 FPS, High Bandwidth 45 FPS, Ultra LAN 60 FPS).
  • Multi-session management: Tabbed interface for controlling multiple remote machines at once, with live ping indicators and unread chat counters.
  • File transfer and directory sync: Drag-and-drop file delivery with chunked progress tracking, SHA-256 integrity checks, and background bidirectional folder mirroring.
  • Audio and voice intercom: Full-duplex microphone chat with live VU meters, device selection dropdowns, and remote system loopback sound streaming.
  • Session recording and instant rewind: Record sessions directly into self-contained video files with an integrated in-app player, or scrub backwards through a rolling frame cache without interrupting the connection.
  • Terminal, process control, and command palette: Built-in remote command prompt, PowerShell / bash execution, live task manager with process killing, and an omnibar command palette (Ctrl+K).
  • Security and privacy: ECDH (NIST P-256) key exchange, AES-256-GCM AEAD authenticated encryption, optional TOTP 2FA (RFC 6238) with QR setup, brute-force rate limiting, curtain screen privacy mode, and real-time privacy cloak redaction zones.
  • Collaboration tools: In-session screen drawing tools (pens, highlighters, pointers), shared clipboard sync, and a real-time collaborative scratchpad.
  • Built-in networking tools: Port forwarding presets (RDP, SSH, VNC, HTTP), STUN diagnostics, and address book with quick tags.

Quick start

1. Download and run

Grab CppDesk.exe (Windows) or the platform binary from the latest release. No installation needed.

# Windows
.\CppDesk.exe

# Linux
./CppDesk

To test connections locally on a single machine, open two isolated instances:

.\CppDesk.exe --instance 1
.\CppDesk.exe --instance 2

Headless Linux host / service mode:

./CppDesk --daemon              # Headless background host
./CppDesk --host-only           # Run host engine only without UI

2. Connect

  1. On the host: Note your 9-digit ID and one-time session password (or set a permanent password in settings).
  2. On the viewer: Enter the host's 9-digit ID, type the password (or leave blank to prompt the host user for approval), and click Connect.

Building from source

Requirements

  • Windows 10 or 11 (x64), macOS 12+, or Linux (X11 desktop)
  • C++20 compiler (such as MinGW-w64 from MSYS2, MSVC, Apple Clang, or GCC 11+)
  • CMake 3.20+ (for cross-platform builds)

On Linux (Debian / Ubuntu / derivatives):

sudo apt install build-essential cmake libx11-dev libxext-dev libxtst-dev libxrandr-dev libzstd-dev libjpeg-turbo8-dev

Build commands

# Build standalone CppDesk.exe via PowerShell (Windows)
powershell -ExecutionPolicy Bypass -File .\build.ps1

# Run the automated test suite (Windows)
powershell -ExecutionPolicy Bypass -File .\build.ps1 -Test

# Or build via CMake (Windows, macOS, Linux)
cmake -B build
cmake --build build --config Release

# Run automated tests (52 test suites)
./build/CppDeskTests

Project structure

├── CppDesk.exe                   # Standalone portable Windows executable
├── build.ps1                     # Windows build and test automation script
├── CMakeLists.txt                # Cross-platform CMake build configuration
├── src/
│   ├── capture/                  # Screen capture (DXGI, GDI, AVFoundation, X11 SHM), display management, rewind buffer
│   ├── control/                  # Input injection (SendInput, CGEvent, XTest), session tabs, whiteboard, scratchpad
│   ├── core/                     # Protocol definitions, crypto identity, and TOTP 2FA
│   ├── media/                    # Voice intercom, session recorder, and player
│   ├── net/                      # Socket engine, NAT traversal, and auto-updater
│   ├── simd/                     # Vectorized image conversion and diffing (AVX2 & scalar fallback)
│   └── ui/                       # Direct2D (Windows), Cocoa/Metal (macOS), and X11 (Linux) interface
├── relay-dotnet/                 # Optional self-hosted relay server (.NET 10)
├── scripts/                      # Verification and benchmark utilities
└── tests/                        # Automated unit and integration test suite (52 suites)

Issues and support

If you hit a bug, connection failure, or want to suggest an improvement:

Include the following in your report to help diagnose the issue:

  • Operating system and version (for example, Windows 11 23H2 x64, macOS 14.5, Ubuntu 24.04 X11)
  • CppDesk version (for example, v3.9.0)
  • Connection type (Direct LAN, STUN NAT traversal, or Relay)
  • Steps to reproduce, along with relevant log lines or status messages

License

CppDesk is licensed under the MIT License. Copyright (c) 2026 CppDesk.

About

An open-source remote desktop alternative for Windows, inspiried by RustDesk

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages