Remote Computer Use — Python / CLI#
Use an opendesk agent on one machine to control another over the LAN. Every
existing tool (screenshot, mouse, keyboard, ui, app, clipboard, ocr) works
the same — the Computer abstraction just lives on the other end of an
encrypted WebSocket.
flowchart LR
A["<b>Controller</b><br/>Claude Code, etc<br/>RemoteComputer"]
B["<b>Controlled Machine</b><br/>opendesk serve<br/>LocalComputer"]
A <-->|"ws + msgpack + AEAD · Wi-Fi / Ethernet"| B
Mental model#
Term |
Means |
|---|---|
Controlled machine |
The one being controlled. Runs |
Controller |
The machine running the agent (Claude Code, Claude Desktop, etc.). Runs |
Pairing |
One-time exchange that establishes mutual trust via a 6-digit code shown on the controlled machine. After pairing, both ends know each other’s long-lived public keys and can reconnect without the code. |
Trusted-peers store |
|
Guides#
Setup — one-time pairing
Running —
opendesk serveandopendesk connectMCP Integration — peer resolution, admin tools, agent example
Security — threat model, files on disk
Service Install — survive reboots
Concurrency — single-controller policy, disconnect vs unpair
Programmatic Use — Python and JS APIs