VNC, RDP and SSH in one native client
Let an agent drive your remote desktops, and take the wheel back at any moment
DeskVNC is a desktop client written in Rust on Tauri 2 that runs on Windows, macOS and Linux. It holds your saved machines, their credentials and their sessions. It also ships dvv, an agent control plane that hands an AI agent those same connections.
What MCP isThe Model Context Protocol, or MCP, is a standard way for an AI agent to call tools inside another program, so it can act in your software rather than only talk about it. dvv is that kind of server, and it speaks about your machines.
Agent plane, measured
- Observe then act cycle
- 19 ms
- Actions per second that implies
- 52 /s
dvv_openand attach- 4 ms
- Screen at
scale: 0.25 - 25 ms
- Installed on the target
- none
Measured by the project on a real 1920x1080 Windows desktop over a LAN. The full table and the methodology.
Open a machine, look at the screen, click and type
The agent works over the ordinary VNC, RDP or SSH connection you already have open. Nothing is installed on the remote machine, because the connection is the one that machine already speaks. Input travels over the protocol to the far end, so the viewer can be minimised while the work carries on.
-
Reads a real desktop
dvv_screenreturns the framebuffer as an image with the size, the geometry generation and an image space beside it, which is what turns a point you pick on the picture into a coordinate on the remote machine. -
Acts on it
dvv_click,dvv_typeanddvv_keysend real pointer and keyboard events. A keystroke follows the remote keyboard layout, so CJK input methods and dead keys arrive intact. -
Moves files and text
dvv_filestransfers over the machine's own SFTP channel, anddvv_clipboardputs text on the remote clipboard in one message instead of hundreds of key events. -
Works on SSH terminals
dvv_term_sendwrites to a PTY, anddvv_runruns a command on a channel of its own and returns its stdout, its stderr and the exit status the far side reported. -
Runs several machines at once
Every machine is its own limb with its own lease, so ten machines are ten independent loops.
dvv_group_openreturns a group id anddvv_group_runacts on every member concurrently. -
Hands over to a person
Click into the pane and the agent is fenced out of that session. Held keys and buttons are released as it goes, so a half finished drag cannot strand the desktop, and one click hands it back.
Every call, with its arguments, is served by the server itself: dvv answers the initialize handshake with its own instructions and returns the full schema for every tool on request. Guide 3 walks the loop end to end.
From download to an agent holding the wheel
Three steps and four commands. Everything below is real syntax taken from the shipped binaries.
-
Step 01
Install it
macOS is signed and notarised, the Windows installer is signed, and Linux ships as a
.deb, an.rpmand an AppImage. The page links the build for your platform by name. -
Step 02
Save a machine
Open the app and press New Host, or paste an address into the bar at the top and press Connect. Addresses read the way you already think of them.
-
Step 03
Turn the plane on
Switch the agent plane on in the AI Agents panel, then register
dvvwith your agent. The panel also has a button that does the Claude Code registration for you.
Register dvv with Claude Code
claude mcp add deskvnc -- /Applications/DeskVNCViewer.app/Contents/MacOS/dvv mcp --stdio
Or with OpenCode
Put this in opencode.json, at the project root or in ~/.config/opencode/opencode.json.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"deskvnc": {
"type": "local",
"command": ["/Applications/DeskVNCViewer.app/Contents/MacOS/dvv", "mcp", "--stdio"],
"enabled": true
}
}
}
For any other client, dvv prints the exact line for it:
dvv doctor
dvv setup writes the registration for OpenCode, Pi, Codex and Claude Code itself, keeping a backup and any comments in your config. dvv setup opencode, dvv setup pi, dvv setup codex and dvv setup claude do one agent each.
Ask for something, from a shell
The same surface is available as commands, for an agent that drives a shell rather than an MCP client, and for you at a terminal.
dvv hosts # the saved machines and their ids
dvv open front-desk --perceive # open one, with a screen mirror
dvv control acquire lmb_frontdesk # take the wheel
dvv screen lmb_frontdesk --scale 0.5 --out ./dvv-screen.png
dvv click lmb_frontdesk 700 400
dvv type lmb_frontdesk "notepad"
dvv key lmb_frontdesk ctrl+s
dvv close lmb_frontdesk
One window for every machine you look after
The agent plane is optional. The client around it is a working remote desktop tool: a saved host library with live thumbnails, tabs, split panes, credentials in the operating system keychain, clipboard and SFTP file transfer in both directions, reconnection after a drop, screenshots, fullscreen, view only, network discovery and Wake on LAN.
- 3 protocols VNC, RDP and SSH in one library, each core written rather than wrapped
- 3 platforms Windows, macOS and Linux, native on each
- RFB 3.3 to 3.8 VeNCrypt, RA2 and Apple authentication, continuous updates
- MIT or Apache-2.0 Dual licensed, free and open source
The VNC core is filed down against real servers including x11vnc, TigerVNC, QEMU, RealVNC and macOS Screen Sharing. The RDP core covers Windows desktops with NLA, RemoteApp, resolution control and the usual codecs. The SSH core gives a terminal that survives a drop, SFTP transfers, tunnels and PuTTY key files.
The material to act on
-
Guides
Installing on Windows, macOS and Linux, registering the MCP server, the four call loop, file transfer, clipboard, SSH terminals, several machines at once, the keychain, discovery and Wake on LAN. Copy and paste.
-
Use cases
Machines that refuse installed agents, an agent that needs to read a screen and act, one window for a mixed estate, and remote support where a person takes the wheel back mid task.
-
Benchmarks
The measured numbers, the machine they were measured on, and what each one means for a loop you intend to run.
-
The official project page
Maintained by the project itself, with the screenshots, the feature tour and the release notes.