# Desktops

> See a machine’s screen live, next to its terminal, and use its mouse and keyboard.

**Show desktop** on a machine’s page (or its right-click menu) shows its screen live and sends your mouse and keyboard to it. An open desktop is listed under its machine in the sidebar and keeps streaming while you look elsewhere; close it there.

![A terminal on Beacon running a Vite dev server, and beside it Beacon's live screen with Chrome showing the app.](https://muxin.dev/images/shots/desktop-dark.png?v=e1d7c0a1)

*A dev server running in a session on a Linux machine, and that machine’s screen beside it, showing the app in Chrome.*

## Which machines

- **A Mac.** The first time, the Mac asks, on its own screen, to allow `muxen-agent` under Privacy & Security › Screen Recording (to see it) and Accessibility (to control it).
- **Linux** with an X11 desktop. Wayland-only desktops can’t be shown yet.
- **Windows**, when someone is signed in to it. See [Windows](https://muxin.dev/docs/windows).

On Linux, `⌘` works as Ctrl; on a Mac it stays `⌘`.

## Beside a session

In an agent session, **Desktop** in its header puts the machine’s screen next to the terminal. Drag the divider to resize. It’s the quickest way to check what an agent did in a browser or an app without leaving it.

## Size and sharpness

Pick 720p, 1080p, 1440p, 4K or Native from the bar above the screen. On your local network it starts at the screen’s own size, further away at 1080p. Only the parts of the screen that change are sent, so a still screen costs nothing.

On Macs and Linux you can also change the monitor itself: its resolution, and on Linux desktops that offer it, its scale. At 200% a 4K monitor reads like 1080p and stays sharp. **Open in window** gives the desktop a window of its own.

## More monitors, real and virtual

A machine with several monitors gets a picker above its desktop. On Macs and Linux, **Add monitor** plugs in a virtual one: pick a name and a size, and it joins the desktop to the right of the others, as if you’d plugged in a screen. Windows move onto it and the machine’s own settings see it.

- Handy on a machine with no screen, or to give an agent a monitor of its own.
- It stays until you remove it or the machine restarts.
- On Linux it takes root: when sudo wants your password, Muxen asks for it, keeps it in memory only, and sends it over its encrypted connection.

## The clipboard

Text you copy on your Mac can be pasted on a Linux or Mac desktop, and what you copy there comes back. Passwords copied from a password manager stay on your Mac. Turn it off in **Settings › General › Clipboard**. See [Files and the clipboard](https://muxin.dev/docs/files).

## Making it smooth

A desktop works over ssh, but it’s smoother with a [direct connection](https://muxin.dev/docs/connections). The bar above the screen says how it travels: direct or over ssh, and on which network (your local network, Tailscale or the internet).

> **Tip:** On your local network, pair the machine (**Connect directly** on its page). Away from home, Tailscale’s peer-to-peer path is faster than its relay; the Connection card says which one you’re on.

## For your agents

Agents can look at a screen and use it too: `desktop_screenshot` returns an image, and `desktop_input` clicks, types and scrolls, in that image’s pixels. It’s the real screen, so they should only do it when you ask.

```
muxen desktop shot beacon -o screen.jpg
muxen desktop input beacon '[{"type":"click","x":100,"y":200},{"type":"text","text":"hello"}]'
muxen desktop add beacon --size 2560x1440    # a virtual monitor
```
