Remote Desktop
C++ · Qt · Cloudflare Tunnel
A screen-streaming app with a custom dirty-tile diff protocol and a self-provisioned Cloudflare tunnel.
View on GitHub
An experimental app that streams a machine's screen to a remote viewer over a self-provisioned Cloudflare tunnel. It is view-only: it shows the screen and cursor, but remote input is not implemented. Built to explore screen capture, MJPEG streaming, and tunnel automation in C++. It runs on macOS and Linux, and the two interoperate in both directions.
How it works
- A custom differential protocol sends an initial full JPEG frame, then only the changed regions ("dirty tiles") as small JPEGs tagged with their coordinates, so unchanged areas are never re-sent.
- The server creates and manages a Cloudflare tunnel that exposes the stream at a public hostname, and parses the credentials it generates. You never run a cloudflared command yourself.
- A hand-written tokenizer and directive parser reads an nginx-style config and reports errors with file, line, and column.
- A dedicated Qt client reconstructs the screen from the custom wire format, which a browser cannot render.
Scope
View-only and unauthenticated by design. Transport is encrypted end to end through Cloudflare, so the residual risk is unauthorized viewing rather than interception, and the barrier is the obscurity of the hostname. A production version would gate the stream behind an auth layer. These were deliberate scope decisions for a personal project.