LABSCO SUMMARY
The gap it fills is real: xdotool breaks under Wayland, and Wayland is now the default.
macOS agents have AppleScript and Windows has UI Automation; Linux had a tool that stops working on the display protocol most distributions now ship. Deskbrid detects the compositor and loads a matching backend, so the same tool call works on GNOME and Hyprland without your agent knowing the difference. The repository is unusually direct about where that breaks down — per-compositor gaps are listed by name, with Hyprland missing window minimise and primary monitor control, and some actions stubbed to return not supported. Read that matrix before planning around a specific action.
What it is
A single Rust daemon that detects your desktop environment, loads the right backend for it, and exposes the whole desktop as MCP tools — with the same protocol available over a Unix socket and a CLI.
What you get
- Windows and workspaces: windows.list, windows.focus by app_id or title, windows.close, windows.move_resize, windows.tile and windows.activate_or_launch, plus saved layout profiles
- Input: keyboard typing, individual keys and combinations, and full mouse control
- Clipboard read and write, with history
- Screenshots, with OCR through Tesseract and a diff between two captures
- System: desktop info, battery, idle detection, power management, systemd units, journal queries and PTY terminal sessions
- Monitors, network and Wi-Fi, Bluetooth pairing, MPRIS media control and colour picking
- Speech output through spd-say or espeak-ng, with voice listing and cancellation
- More than a hundred MCP tools across twenty categories, including AT-SPI accessibility, files, keyring, notifications, rules, macros and agent messaging
- A local web dashboard showing system state live, with an audit log of what the agent did
Requirements
Linux, and no account or key — it drives your own session. Install with the published one-line script, which detects the distro and desktop, installs dependencies and sets up uinput; a container image exists as well. Run deskbrid mcp for the MCP server over stdio. Support is uneven by compositor: the repository calls GNOME, KDE Plasma, Hyprland and Sway core and tested, marks Labwc and COSMIC partial, and lists Niri, Wayfire, Cinnamon, MATE and generic X11 as untested code paths.
Setup effort
One command — bash <(curl -fsSL https://deskbrid.patchhive.dev/install.sh)
USE CASES
01
Letting an agent drive an application that has no API
Focus the window, type into it, and read the result back from the clipboard or a screenshot.
02
Reading something only visible on screen
Take the screenshot and run OCR over it rather than asking the user to copy the text out.
03
Setting up your workspace at the start of the day
Launch or focus the apps you need and restore the saved layout instead of arranging them by hand.
04
Checking whether a change actually rendered
Capture before and after, then diff the two images rather than eyeballing them.
05
Getting an agent's attention when you are not at the keyboard
Have it speak the result aloud through the desktop's speech synthesis.
06
Seeing what the agent has been doing to your desktop
Open the local dashboard and read the audit log of actions alongside live system state.
BEFORE YOU INSTALL
What to know first
Requires
A Linux desktop session — GNOME, KDE Plasma, Hyprland and Sway are tested; the other backends (COSMIC, Niri, Wayfire, Labwc and others) have code but no runtime verification
INSTALLATION
Connect your client
Server setup
TERMINAL
bash <(curl -fsSL https://deskbrid.patchhive.dev/install.sh)MCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"deskbrid": {
"command": "/usr/local/bin/deskbrid",
"args": [
"mcp"
]
}
}
}Hermes Agent
HERMES AGENT · TERMINAL
hermes mcp add deskbrid --command "deskbrid mcp"Any MCP client
Add a stdio MCP server in your client whose command is deskbrid with the argument mcp (deskbrid mcp) — the protocol is standard JSON-RPC over stdio. The Claude Desktop tab shows the same entry as JSON.