v6.10 · Open source · Windows 10/11

High-performance remote access
for Windows

Peer-to-peer and end-to-end encrypted. Devices find each other by a short ID, so there are no IP addresses, ports or virtual adapters to set up. Chat, send files and talk, and run your own directory server with one command.

Windows 10/11 x64 · needs the .NET 8 desktop runtime
Illustration: the device list and the floating island during a voice call, with a new message bubble
P2P firstdirect UDP, relay only if needed
E2Eencrypted end to end, server off the data path
24 kbpsOpus voice calls over the same link
1 commandto self-host the directory server
Why ArdUi

Fast, direct and yours

Built on ARD (Iroh). Every device has a permanent key; its public key is its identity.

High performance

Direct UDP paths between devices, with automatic fallback to a relay when a direct path is not possible. Low-latency desktop streaming through FRD.

Peer-to-peer

Your data goes straight from one device to the other. The directory server only hands out device IDs and coordinates the connection; it is never in the data path.

End-to-end encrypted

Identities are verified before any password is sent, and the server never receives passwords. The host approves each controlling device, and can revoke it at any time.

Self-hostable

Run your own directory server on a Linux machine with a single command, HTTPS included. Everything is open source.

Controllerenters ID and password
⇄
Directory serverIDs and coordination only
⇄
Hostverifies and approves
How data flows: after coordination, the two devices open an end-to-end encrypted connection through ARD (direct first, relay only if needed). The server is not on the data path and cannot read it.
What is in the box

Everything for working on another PC

Connect, control, talk and share, with the host in charge of what is allowed.

Device ID connect

Enter the device ID and a one-time password, compare the device fingerprint, and the host approves. Later connections need no password.

Per-device permissions

Allow FRD, RDP and file access separately for each device (FRD only by default), or accept a connection just once.

Voice callsNEW

Call a connected device over the same encrypted link: Opus, ringing, answer, mute, hang up from the window or the island. A side without a working microphone can still join, and both are told.

Chat and file transfer

Text, images and files up to 2 GB, with speed and progress, cancellable, and chat keeps working during a transfer.

Audit recording

While a device uses the screen, it is recorded locally on the host (10 fps, up to 10 GB, oldest overwritten) with the Windows H.264 encoder.

Microphone diagnosisNEW

Devices, Windows privacy switches, a live level test, record-and-playback and a speaker test, all on this machine.

Network diagnosis

Can two devices connect directly? Your NAT type, exits, UPnP, and a verdict, confirmed with real traffic by the server: it probes the ports you open from the outside.

Floating island

A small draggable pill near the tray: connection state, message bubbles, unread count, file progress and calls. Click to open the chat.

No admin rights

No drivers and no network changes. Your device identity and settings are kept across upgrades.

Quick start

Up and running in minutes

Install the same app on both computers. Being controlled is off by default, so if you only want to control other machines you can leave it off.

Download and install

Get the latest ArdUi-v6.10_setup.exe from GitHub Releases and run it. It installs to %LOCALAPPDATA%\ArdUi and keeps your identity and settings on upgrades. The .NET 8 desktop runtime is required; FFmpeg is not included (optional extension, see the README).

On the host: allow control

On the computer you want to reach, switch on “Allow control”. You get a device ID, and a first-connection password that shows for 10 seconds when you click it. Give both to the person connecting.

On the controller: connect

Enter the ID and password and press Connect. Compare the full device fingerprint over a separate channel, such as a phone call. The host accepts (or accepts just once) and chooses which features to allow.

Use it

Authorized devices appear in the list: FRD for the desktop, Desktop for RDP, Files for shares, and the chat icon for messages, files and voice calls.

Self-hosting

Keep everything in your hands

By default ArdUi uses a public directory service. To run your own, deploy the directory server on a Linux machine with a domain name, or just its public IP address.

One-command install
# Linux with systemd, root, a domain pointing here, ports 80/443 open
curl -fsSL https://raw.githubusercontent.com/KateY07/ArdUi/main/selfhost.sh | sudo bash -s -- --domain ardui.example.com

It installs a Python environment, the directory service and Caddy with automatic HTTPS. No domain? Pass the public IP (--domain 203.0.113.7) for a short-lived Let's Encrypt IP certificate that Caddy renews. Preview first with --dry-run; behind your own proxy use --http-only; remove with --uninstall (data is kept). Read the script.

Point the clients at it
# %LOCALAPPDATA%\ArdUi\data\config.json
{
  "server": "https://ardui.example.com/"
}

The script prints this at the end. Edit the config on every computer and restart ArdUi. Check the server: https://your-domain/api/health should return "ok": true.

Scope: the script deploys the trusted service: the device directory (IDs, presence, connection coordination) and the network probe. Relay nodes and the relay directory (M) still default to the public ones; to run your own see the relay node guide, which is a manual process for now. Verified: the whole script, Caddy included, in an offline systemd container with hardened services; a real Let's Encrypt IP certificate on a public server with ArdUi clients running end to end against it. Not yet tried: a real certificate for a domain name on a fresh server. Servers in mainland China usually cannot reach GitHub: see the README for the --file and --wheels options.
ComponentRoleSelf-hosting
Directory serviceDevice IDs, presence, connection coordination (never receives passwords)One command
Relay directory (M) and relay nodesForwarding when no direct path exists; lists available relaysManual (see guide)
ARDEnd-to-end encrypted connections and path selectionShips with the installer
Demo

See it in action

A short animated walkthrough: from entering an ID to host approval, chat and audit.

Watch the demo