经 AI Skill Hub 精选评估,Linux桌面控制 获评「强烈推荐」。这款MCP工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.0 分,适合有一定技术背景的用户使用。
Linux桌面控制 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
Linux桌面控制 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/agent-sh/computer-use-linux
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"linux----": {
"command": "npx",
"args": ["-y", "computer-use-linux"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 Linux桌面控制 执行以下任务... Claude: [自动调用 Linux桌面控制 MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"linux____": {
"command": "npx",
"args": ["-y", "computer-use-linux"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
⚡ Running this agent 24/7? tiyuvta inference — hosted LLM inference built for always-on agents, OpenAI/Anthropic-compatible APIs.
computer-use-linux reads accessibility trees, takes screenshots, and drives clicks, scrolls, and keystrokes across GNOME, KDE/KWin, Hyprland, i3, and COSMIC — Wayland-first, X11 best-effort.
npm install -g @agent-sh/computer-use-linux
computer-use-linux doctor | jq .readiness
The Rust crate is published as computer-use-linux and the npm wrapper as @agent-sh/computer-use-linux. Prebuilt binaries ship with the latest release.
MCP tools exposed by the server:
Diagnostics
doctor — single-shot JSON readiness report (platform, portals, accessibility, windowing, input, readiness summary, and a capability map of available backends)setup_accessibility — enables GNOME's org.gnome.desktop.interface toolkit-accessibility setting so toolkit apps expose AT-SPI treessetup_window_targeting — installs and enables the bundled GNOME Shell extension when org.gnome.Shell.Introspect is locked downDiscovery
list_apps — running desktop apps visible to the AT-SPI registrylist_windows — compositor windows with title, app id, wm_class, focus state, client type (Wayland/X11), and boundsfocused_window — the window currently holding keyboard focusget_app_state — combined screenshot + accessibility tree for a chosen app, with element indices that the input tools acceptscreenshot — capture the screen as a bounded PNG or JPEG image; can target a window, which is raised to the front and cropped to just that windowScreenshot payloads are size-bounded by default before they are returned to the MCP host: max 1920 px width/height and 2 MiB image bytes, with hard caps even when callers request more. Agents that need more detail can pass max_width, max_height, max_bytes, scale, format: "jpeg", or quality, preferably with a window target or crop. PNG remains the default; JPEG lets callers trade lossless pixels for a smaller payload before the byte cap forces further resizing. Returned screenshot metadata includes coordinate_width, coordinate_height, scale, format, and quality so callers can convert from a downscaled preview to desktop coordinate pixels.
Input
click — by element index, semantic selector, or desktop coordinate pixelsdrag — desktop coordinate drag (start / end)scroll — page-based scroll on an element or at a pixel locationpress_key — keys / chords; can focus a window or terminal firsttype_text — literal text input, optionally targeted at a window or terminalTargeted press_key/type_text results append focused-element feedback from AT-SPI (role, name, editable) and warn when no editable element holds focus. Click/screenshot/input results warn when the target window or coordinate is partially or fully off-screen. get_app_state returns a compact readiness block by default; pass verbose: true for the full diagnostics report.
Semantic actions
perform_action — invoke any AT-SPI action exposed by an element (Press, Activate, Toggle, …); defaults to the primary actionset_value — write to a settable accessibility element (text fields, sliders, spinners)Navigation
activate_window — focus a window by window_id, pid, app_id, wm_class, title, or terminal selectorsmove_window / resize_window — reposition or resize a window in desktop coordinates (GNOME Shell extension backend); useful to recover windows that are partially off-screenConditional host execution
run_shell — same-user /bin/sh -c execution without login-profile loading, registered only when the server operator starts the MCP process with COMPUTER_USE_LINUX_ENABLE_SHELL=1. It is deliberately absent by default and is not a sandbox.COSMIC users do not need a second package or a separate helper install when using ./install.sh, cargo install, or the npm wrapper. Those paths install computer-use-linux-cosmic alongside the main binary automatically. Only manual prebuilt-binary installs need you to copy both release assets.
Installs system packages on Debian/Ubuntu, Fedora/RHEL-like, Arch-like, or Artix systems; installs Rust if needed; builds both release binaries; installs them to ~/.local/bin; configures ydotoold as a systemd user service when available; enables GNOME AT-SPI settings when running under GNOME; and installs the bundled GNOME Shell extension on GNOME Wayland.
```bash git clone https://github.com/agent-sh/computer-use-linux cd computer-use-linux ./install.sh
computer-use-linux doctor | jq .readiness ```
ydotool is an optional fallback. On X11, the installer includes xdotool as the required keyboard backend. If ydotool is unavailable from the configured repositories, the installer continues, but doctor still requires a keyboard-capable RemoteDesktop portal on Wayland or xdotool on X11; direct uinput provides absolute pointer input only. On non-systemd hosts, automatic ydotoold service setup is skipped and the installer prints a command suitable for a per-user supervisor. For an unrecognized distro, pass --package-manager apt|dnf|pacman; --force-unknown-distro auto-selects only when exactly one of those managers is available.
Installs the Rust binaries from crates.io. You still handle the system-level pieces yourself: AT-SPI, desktop portals, the optional ydotoold fallback, and the GNOME extension if you need the GNOME Wayland exact-focus backend.
cargo install computer-use-linux
computer-use-linux doctor
For unreleased changes from main, install directly from Git:
cargo install --git https://github.com/agent-sh/computer-use-linux
Then, as needed:
sudo apt install ydotool at-spi2-core # ydotool 1.0.3+ when using this fallback
sudo apt install wtype # optional Unicode typing on wlroots/Hyprland Wayland
systemctl --user enable --now ydotoold # only when doctor selects ydotool
computer-use-linux setup # gsettings AT-SPI bridge
computer-use-linux setup-window-targeting # GNOME Shell extension
The Linux build of Codex Desktop already bundles this binary as a plugin. You don't need to wire it up manually — the plugin definition lives in codex-desktop-linux under its plugins/ directory and is enabled by default. To upgrade the plugin in place, replace the binary it ships with the one from this repo's release assets.
claude mcp add --scope user computer-use-linux -- computer-use-linux mcp
Good for users who already have Node.js and want a no-Rust install. The npm package downloads and verifies the matching main and COSMIC helper binaries during install, then the wrapper sets COMPUTER_USE_LINUX_COSMIC_HELPER to the bundled helper automatically.
npm install -g @agent-sh/computer-use-linux
computer-use-linux doctor
You will still need AT-SPI enabled (computer-use-linux setup) and one input backend reported ready by doctor. Start ydotoold only when using the ydotool fallback.
Linux x86_64 / aarch64 builds are published with each tag. Each binary ships a .sha256 next to it.
target=x86_64-unknown-linux-gnu
base=https://github.com/agent-sh/computer-use-linux/releases/latest/download
for binary in computer-use-linux computer-use-linux-cosmic; do
asset="$binary-$target"
curl -L -O "$base/$asset"
curl -L -O "$base/$asset.sha256"
sha256sum -c "$asset.sha256"
install -m 0755 "$asset" "$HOME/.local/bin/$binary"
done
You will still need ydotoold running and AT-SPI enabled (run computer-use-linux setup and the systemd commands above).
inherit_mcp_toolsets: true
If you installed the binary somewhere that is not on `PATH`, pass the absolute path as `--command`.
Restart Hermes after editing the config. Hermes registers the tools as `mcp_computer_use_linux_<tool>` and creates the `mcp-computer-use-linux` runtime toolset.
You can verify both sides before asking Hermes to use the desktop:
bash computer-use-linux doctor | jq .readiness hermes skills inspect agent-sh/computer-use-linux/computer-use-linux hermes chat --toolsets mcp-computer-use-linux -q "List the current desktop windows." ```
For one-off installs without adding the tap first, Hermes also accepts hermes skills install agent-sh/computer-use-linux/skills/computer-use-linux.
Most setups need none of these — doctor and the installers pick sensible defaults. They exist for overriding auto-detected paths and input backends.
Server runtime (set in the MCP host's environment):
| Variable | Effect |
|---|---|
COMPUTER_USE_LINUX_COSMIC_HELPER | Path to the computer-use-linux-cosmic helper when it isn't next to the binary or on PATH. |
CU_DISABLE_ABS_POINTER | Disable the uinput absolute pointer and click through ydotool instead for setups where the abs-pointer device misbehaves. |
COMPUTER_USE_LINUX_FORCE_PORTAL_POINTER / …_KEYBOARD | Always route pointer / keyboard through the RemoteDesktop portal on Wayland, skipping auto-detection. |
COMPUTER_USE_LINUX_FORCE_YDOTOOL_POINTER / …_KEYBOARD | Always route pointer / keyboard through ydotool, skipping the portal and KDE clipboard paths; pointer forcing also skips native-X11 xdotool coordinate clicks. |
COMPUTER_USE_LINUX_FORCE_XDOTOOL_KEYBOARD | Prefer xdotool/XTEST keyboard input when DISPLAY is available. COMPUTER_USE_LINUX_FORCE_YDOTOOL_KEYBOARD=1 takes precedence. |
COMPUTER_USE_LINUX_SCREENSHOT_BACKEND | Force a single screenshot backend, skipping the fallback chain. Accepts gnome-shell, portal, or gnome-screenshot. Pin gnome-screenshot for background/systemd contexts where the GNOME Shell and portal DBus paths are denied. |
COMPUTER_USE_LINUX_ENABLE_SHELL | Set exactly to 1 before starting the MCP server to register the destructive run_shell tool. Unset by default. Do not enable for untrusted or unattended MCP hosts. |
Build-time identity overrides (set while compiling a downstream embedded bundle): CUL_GNOME_EXTENSION_UUID, CUL_DBUS_SERVICE, and CUL_DBUS_OBJECT_PATH replace the default standalone GNOME Shell extension UUID and DBus endpoint in both the Rust probes and the generated extension files.
npm wrapper (set during npm install, or before running):
| Variable | Effect |
|---|---|
COMPUTER_USE_LINUX_BIN | Run this binary instead of the one bundled by the npm package. |
COMPUTER_USE_LINUX_DOWNLOAD_BASE | Override the GitHub release base URL the installer downloads from (mirrors, air-gapped hosts). |
COMPUTER_USE_LINUX_SKIP_DOWNLOAD=1 | Skip the post-install binary download entirely. |
COMPUTER_USE_LINUX_LOCAL_BINARY / …_LOCAL_COSMIC_HELPER | Install from a local build instead of downloading (used by CI and local testing). |
computer-use-linux doctor is the source of truth. Common failure modes and fixes:
accessibility.at_spi_bus.ok = false — AT-SPI registry isn't running or the toolkit bridge is off. Fix: computer-use-linux setup (or call the setup_accessibility MCP tool). Restart the apps you want to drive.windowing.gnome_shell_introspect.ok = false and gnome_shell_extension_dbus.ok = false — GNOME blocks introspection and the extension isn't installed. Fix: computer-use-linux setup-window-targeting, then log out and log back in.input.ydotool_socket.ok = false while ydotool is the selected fallback — daemon isn't running. On systemd, run systemctl --user enable --now ydotoold. On other init systems, rerun ./install.sh and configure your per-user supervisor with the command it prints. If ydotool is not packaged for your distro, use another input backend or install a compatible ydotool release manually.input.ydotool.ok = false with an unsupported CLI message — install ydotool 1.0.3 or newer. A running daemon or socket alone is not enough; doctor verifies the raw key, wheel, stdin typing, and absolute-movement command family before advertising the backend.input.uinput.ok = false — /dev/uinput isn't accessible to your user. Fix: add yourself to the input group (sudo usermod -aG input $USER) and re-login. On distros that ship uinput as a kernel module without auto-loading it, add uinput to /etc/modules-load.d/. Direct uinput supplies absolute pointer input only, so doctor also requires a keyboard-capable portal, xdotool, or ydotool backend.xdg-desktop-portal or its backend (-gnome, -gtk, -kde, -wlr) crashed. Fix: check journalctl --user -u xdg-desktop-portal -u xdg-desktop-portal-gnome --since '5 min ago' and restart the relevant unit.doctor.windowing.backends. KWin needs session-bus scripting; Hyprland needs hyprctl; i3 needs i3-msg and its IPC socket; generic X11 needs wmctrl and xprop. COSMIC needs computer-use-linux-cosmic, which the standard installers provide automatically; if you copied binaries by hand, copy the helper too or set COMPUTER_USE_LINUX_COSMIC_HELPER.get_app_state with include_screenshot: false and rely on AT-SPI until the portal backend is healthy.type_text types into the wrong window — pass an explicit target (window_id, pid, wm_class, title, or for terminals tty / terminal_pid / terminal_command / terminal_cwd). Without a target, input goes to whatever window currently has compositor focus.If doctor is green and a specific tool still misbehaves, file an issue with the JSON output of doctor and the failing tool's request payload.
高质量的开源MCP工具
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
AI Skill Hub 点评:Linux桌面控制 的核心功能完整,质量优秀。对于Claude Desktop / Claude Code 用户来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | computer-use-linux |
| 原始描述 | 开源MCP工具:Linux desktop control over MCP — AT-SPI, GNOME Shell, Wayland portals, ydotool。⭐55 · Rust |
| Topics | linuxmcpdesktop |
| GitHub | https://github.com/agent-sh/computer-use-linux |
| License | MIT |
| 语言 | Rust |
收录时间:2026-05-25 · 更新时间:2026-05-30 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端