Skip to main content
Glama
KingAkeem

Linux Desktop Control

by KingAkeem

Linux Desktop Control

Let Codex see and control apps on your Linux desktop through a local MCP server. It can click, type, scroll, drag, and paste text, with a visible Stop button so you can take back control.

Beta 0.1.0b1: tested on Ubuntu GNOME, X11, and Python 3.12. Wayland is not supported. Other setups and MCP clients are unverified. This is an independent project, available under the MIT license.

The disposable test app after typing, pasting, clicking, scrolling, and dragging

Get started

You need an unlocked Ubuntu GNOME desktop running X11. Check your session:

echo "$XDG_SESSION_TYPE"

It should print x11. XWayland inside a Wayland session is not enough.

On Ubuntu 24.04 with Python 3.12, install the prerequisites and register with Codex:

sudo apt-get update
sudo apt-get install python3-venv python3-gi gir1.2-gtk-3.0 libglib2.0-bin

git clone https://github.com/KingAkeem/linux-desktop-control.git
cd linux-desktop-control
./install --register

The installer downloads pinned dependencies into .venv. Registration adds an MCP server, a skill link, and a marked section in AGENTS.md under ~/.codex (or CODEX_HOME if set). Review those changes, then reload MCP servers or restart Codex. Keep the checkout in place while registered.

Related MCP server: claude-workman

Try it

Open an empty text editor and ask Codex:

Use Linux Desktop Control to select the empty editor, type Hello Linux, capture the result, and stop.

Check the screenshot to confirm the result. This uses your current desktop and shares your pointer and keyboard. Stay present while it runs.

To stop: move your mouse, press a key, click Stop, or use Ctrl+Alt+Escape. Detection is reactive, so your first input may still reach the app. A latched Stop needs a local Resume permission click before a new task can start.

This is not an OS sandbox. Screenshots go to your MCP client, where its normal data handling applies. Keep sensitive apps closed during initial testing.

Troubleshooting and removal

Check dependencies and desktop readiness without starting control:

.venv/bin/linux-desktop-control doctor

To remove the client integration, stop any active task and run:

.venv/bin/linux-desktop-control uninstall

This removes the managed configuration, skill link, and guidance. Source files, dependencies, logs, and Stop state stay in place. To install without changing client configuration, use ./install without --register.

More details

Native Wayland, remote access, separate background desktops, and accessibility element targeting are outside this beta's scope. It does not add Codex's native @Computer interface.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Controls a real Linux desktop from any MCP host. Reads accessibility trees, takes screenshots, and drives clicks, scrolls, and keystrokes across GNOME, KDE/KWin, Hyprland, i3, and COSMIC.
    1,808 npm
    696
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to control a Linux/X11 desktop like a human: see the screen, move the mouse, click UI elements via the accessibility tree, type text, and manage windows.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables MCP-speaking clients to control a real desktop via the computer_use tool, including clicking, typing, scrolling, dragging, key combos, app focus, and screen/accessibility capture. It also provides a verdict system that verifies whether input actions had their intended effect, with configurable approval modes.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables supervised, visible control of a Windows desktop from an MCP client, providing real mouse and keyboard input, screenshots, local safety controls, and a teaching mode for guidance without injection.
    MIT