---
name: adom-desktop-rustdesk-bridge
description: Drive RustDesk remote-desktop sessions via Adom Desktop — connect out to / control / view / screen-share a remote host that RDP can't reach (Windows Home, no RDP server). Trigger words: rustdesk, connect via rustdesk, remote desktop, remote into my machine, control a remote host, screen share my other pc, view my other pc, connect to my office computer, remote into my work pc, rdp alternative, vnc alternative, take over a remote pc, watch the install on my test laptop, rustdesk_connect, rustdesk_readiness.
---

# Adom Desktop - RustDesk Bridge

Use this when the user wants to **control or view a remote machine's screen** and RDP isn't an option (Windows **Home** can't host RDP; or the host has no RDP server). Client side — it drives the controlling machine out to a host.

## FIRST-TIME / COLD-START — read before you panic

A fresh machine may not have the RustDesk client yet. **`not present` / `installing` is EXPECTED, not failure** — prewarm and poll, don't declare defeat.

| You see (field / errorCode) | Meaning | What you do |
|---|---|---|
| `rustdesk_connect` → `error: rustdesk client not found` | client not downloaded yet | call `rustdesk_prewarm` (non-blocking), poll `rustdesk_readiness` until `ready:true`, retry connect |
| `rustdesk_readiness` → `installing:true` | client downloading in background | re-poll `rustdesk_readiness`; **never block, never re-trigger** |
| `rustdesk_readiness` → `ready:true` | client present | `rustdesk_connect {to,password}` |
| `rustdesk_readiness` → `lastError` set | download failed | relay the `_hint`; retry `rustdesk_prewarm` |

For **"what tools do I have / is it ready"**, call the AD-level **`bridge_readiness`** — NOT `rustdesk_client_status` (status may spawn the bridge; `bridge_readiness` never does).

## Core verbs (80% path)

| Command | Description | Key args |
|---|---|---|
| `rustdesk_connect` | open a session to a host | `{to: <id-or-ip>, password?}` |
| `rustdesk_client_status` | installed path + active sessions | — |
| `rustdesk_disconnect` | close one session (or all) | `{to?}` |
| `rustdesk_readiness` | READ-ONLY cold-start probe (never downloads) | — |
| `rustdesk_prewarm` | start the client download in background | `{wait?}` |

Full machine-readable catalog: `rustdesk_describe '{}'`.

## Conventions
- **Surface `_hint` verbatim.** Every verb returns an actionable `_hint`; relay it unchanged; branch on the stable field/`errorCode`, not the prose.
- **`ok:true` is not enough** — `rustdesk_connect` returns on session-START. Verify with `rustdesk_client_status` (session shows as `<id> - Remote Desktop - RustDesk`).
- **Pass the password** to auto-authenticate; without it the session waits at a prompt on the controlling machine.
- Multi-machine: `adom-desktop --target <name> rustdesk_connect ...`. On the same LAN/VPN RustDesk auto-upgrades to a direct P2P link.
