Deskbrid
About
Linux desktop HAL for AI agents.
Details
- Author
- coe0718
- Categories
- Productivity, Infrastructure
Jump to
Setup
Install Deskbrid in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/coe0718/deskbrid
Follow the installation instructions in the repository README, then restart your MCP client.
The HAL your Linux desktop agents are missing.
Deskbrid is a single Rust binary that auto-detects your desktop environment and wraps it into a JSON-over-Unix-socket protocol. GNOME, Hyprland, KDE, COSMIC, Sway, Niri, Wayfire, Labwc, Cinnamon, MATE — one daemon, one protocol, one binary.
# Human deskbrid windows list deskbrid clipboard read # Agent (same socket) {"action": "windows.list"} → [{"title": "VS Code", "app_id": "code", ...}]
- Why Deskbrid
- Supported Desktops
- Installation
- Quick Start
- Features
- Protocol
- Python Client
- MCP Integration
Every major AI lab is racing to ship desktop agents. AppleScript gives macOS agents native control. Windows has UI Automation. Linux hasxdotool— which breaks on Wayland, the default display protocol for every major distro.
Deskbrid fills that gap. It auto-detects your compositor and loads the right backend — GNOME (Mutter RemoteDesktop DBus), Hyprland (hyprctl + ydotool + grim), KDE (KWin D-Bus + ydotool + spectacle), wlroots-style compositors, or shared X11. Same binary, same protocol, same socket.
Deskbrid ships with a built-in web dashboard atlocalhost:20129— system info, monitors, windows, network, audio, clipboard, and an audit log of agent actions, all live:
Honest coverage:Deskbrid works well on GNOME, KDE, Hyprland, and Sway — tested on real hardware (Turtle, a 2014 Haswell laptop). The other seven backends have code but zero runtime verification. Even within core backends, support is uneven: Hyprland lackswindows.minimizeandmonitor.set_primary, COSMIC lacks window move/resize and tiling, Labwc lacks move/resize, minimize, tile, and primary monitor control. Stubbed actions (ui.tree.get,ui.element.click,bluetooth.pair) return "not supported." This isbroad but partialLinux desktop automation, not universal cross-desktop control. See the fullDE Test Matrixfor per-action, per-compositor detail.
bash <(curl -fsSL https://deskbrid.patchhive.dev/install.sh)
Auto-detects your distro and desktop environment, installs dependencies, sets up uinput, and downloads the binary.
Download the latest release tarball from thereleases page:
ARCH=$(uname -m) case "$ARCH" in x86_64) ARCH="x86_64-unknown-linux-gnu";; aarch64|arm64) ARCH="aarch64-unknown-linux-gnu";; esac curl -LO "https://github.com/coe0718/deskbrid/releases/latest/download/deskbrid-${ARCH}.tar.gz" curl -LO "https://github.com/coe0718/deskbrid/releases/latest/download/deskbrid-${ARCH}.tar.gz.sha256" sha256sum -c "deskbrid-${ARCH}.tar.gz.sha256" tar -xzf "deskbrid-${ARCH}.tar.gz" sudo mv deskbrid /usr/local/bin/ chmod +x /usr/local/bin/deskbrid
git clone https://github.com/coe0718/deskbrid cd deskbrid cargo build --release sudo cp target/release/deskbrid /usr/local/bin/
sudo apt install -y grim wl-clipboard python3-gi gstreamer1.0-tools gstreamer1.0-pipewire deskbrid setup
Hyprland (and other standalone Wayland compositors — Sway, Niri, Wayfire, Labwc):
sudo pacman -S grim wl-clipboard ydotool echo 'KERNEL=="uinput", GROUP="input", MODE="0660"' | sudo tee /etc/udev/rules.d/99-input.rules sudo usermod -aG input $USER
⚠️ Standalone Wayland compositors don't ship a notification daemon. Deskbrid'snotify sendwill hang without one. Installdunst,mako, orswayncand add it to your compositor's autostart.
sudo apt install spectacle imagemagick wl-clipboard ydotool
deskbrid daemon & deskbrid windows list # List open windows deskbrid clipboard read # Read clipboard deskbrid screenshot # Take screenshot deskbrid system info # Get system info deskbrid windows focus --app code # Focus VS Code deskbrid input keyboard type "Hello!" # Type text
Deskbrid uses JSON-over-Unix-socket. SeePROTOCOL.mdfor the complete specification.
→ {"action": "windows.list"} ← {"type": "response", "status": "ok", "data": [{"title": "VS Code", ...}]} → {"action": "windows.focus", "window_id": "code"} ← {"type": "response", "status": "ok"}
Deskbrid exposes a full Model Context Protocol server for AI coding tools:
Deskbrid ships with a Hermes skill for one-command setup. In any Hermes session:
hermes mcp add deskbrid --command "deskbrid mcp" hermes mcp test deskbrid # → ✓ deskbrid: connected
After a session restart (/reset), the agent gains 100+ Linux desktop control tools.
~/.config/Claude/claude_desktop_config.json:
{ "mcpServers": { "deskbrid": { "command": "/usr/local/bin/deskbrid", "args": ["mcp"] } } }
Configure the MCP server with commanddeskbrid mcp— the protocol is standard JSON-RPC over stdio.
Available MCP tools (100+ across 20 categories):windows, input, clipboard, screenshots, system, AT-SPI accessibility, terminal PTY, files, audio, network, MPRIS, print, notifications, keyring, rules, confirmation, agent messaging, search, macros, capabilities, speech.
Deskbrid began with Tuck — an autonomous agent that needed to control a real Linux desktop. When the community asked for Hyprland support, Tuck asked Jeremy for a bare Arch Linux box with SSH and sudo. He installed Hyprland himself and built the backend from inside the environment he just configured.
The first working demo was a Telegram message: Tuck focused a window and typed "Hello from the other side" in under 60 seconds. That moment — an agent controlling a real desktop through a Unix socket — became Deskbrid. It's built for agents first: same protocol for humans on the CLI, same socket for AIs, one binary that works everywhere.
Official Atlassian MCP server for connecting AI agents to Jira, Confluence, Opsgenie, and other Atlassian products.
A MCP server to allow your AI agent to manage your SikkerKey secrets vault.
MCP server that exposes GenieACS TR-069 ACS instances to LLMs for device management, firmware downloads, and parameter reads
MCP servers for managing homelab infrastructure through Claude Desktop. Monitor Docker/Podman containers, Ollama AI models, Pi-hole DNS, Unifi networks, and Ansible inventory.
Manage and monitor homelab systems via SSH.
Provides JMX monitoring and management capabilities for AI assistants. Requires Java 17+.
mcp-broker is a local Model Context Protocol process broker for MCP clients. Think PgBouncer for MCP: one stable local endpoint in front of many upstream MCP servers. The broker owns upstream startup, reuse, cleanup, profile exposure, status, and safe tool routing. The core idea is simple: do not make every agent session load every upstream tool definition before the user asks a task.
A manager server for MCP servers that handles process management and tool routing.
MCPMate is a comprehensive Model Context Protocol (MCP) management center designed to address configuration complexity, resource consumption, security risks, and other issues in the MCP ecosystem, providing users with a unified management platform.
The nginx of MCP — drop-in resilience middleware for any MCP server.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


