Published on ClawHub as computer-use-linux.
clawhub install computer-use-linuxThis repository is:
- a top-level
skill - a standalone Linux desktop-control runtime
- a computer-use MCP server for agent ecosystems
It is packaged skill-first instead of depending on any local Claude install.
The requirement is stricter than "wrap an existing install":
- no dependency on a local Claude app
- no private
.nodebinaries - no extracted hidden assets
- install the skill, build the server, and use it
This project follows that rule on Linux.
- top-level Linux computer-use skill
- standalone MCP server for screenshots, mouse, keyboard, app launch, window/display mapping, and clipboard
- public dependency chain only:
Node.js + Python + pyautogui + mss + Pillow + psutil + python-xlib - first-run runtime bootstrap: the server creates its own virtualenv and installs dependencies automatically
- bundled skill install that copies the full project into
~/.codex/skills/computer-use-linux/project - extracted TypeScript tool layer wired to a Linux-native Python backend
Implemented in this repository:
- Linux Python helper and runtime bootstrap
- display enumeration and screenshot pipeline
- mouse, keyboard, drag, scroll, and clipboard primitives
- frontmost app, app-under-point, running app, installed app, and window-display lookup paths
- Linux-first skill packaging and bundled project payload
- TypeScript build passing
Still recommended before production use:
- validate on a real Linux host
- test multiple desktop environments and monitor layouts
- test focus, clipboard, and permission edge cases
This session did not have a live Linux machine attached, so runtime behavior on Linux has been implemented and built, but not end-to-end verified on a real Linux desktop.
Version 0.1.1 fixes a Linux packaging regression in the shared system-key blocklist and platform typing. The migrated shared files had been edited into an invalid copied branch, which meant Linux builds were not using a clearly defined Linux shortcut denylist.
This release restores explicit Linux handling for system-level shortcut checks and syncs the fix into both the source tree and the bundled skill payload.
Current desktop-control support is aimed at X11 sessions.
Notable implications:
- X11 desktop sessions are the primary target
- Wayland may block or limit screenshots, focus inspection, clipboard access, and synthetic input depending on compositor policy
- distro / desktop-environment differences can affect behavior
flowchart LR
A[Agent / MCP Client] --> B[linux-computer-use-skill]
B --> C[Extracted TypeScript MCP tools]
B --> D[Standalone Python bridge]
D --> E[pyautogui]
D --> F[mss + Pillow]
D --> G[psutil + python-xlib]
E --> H[Mouse / Keyboard]
F --> I[Screenshots]
G --> J[Apps / Windows / Displays / Clipboard]
git clone https://github.com/wimi321/linux-computer-use-skill.git
cd linux-computer-use-skill
npm install
npm run buildnode dist/cli.jsOn first launch, the project will automatically:
- create
.runtime/venv - bootstrap
pipif needed - install the Python runtime dependencies from
runtime/requirements.txt
{
"mcpServers": {
"computer-use": {
"command": "node",
"args": [
"/absolute/path/to/linux-computer-use-skill/dist/cli.js"
],
"env": {
"CLAUDE_COMPUTER_USE_DEBUG": "0",
"CLAUDE_COMPUTER_USE_COORDINATE_MODE": "pixels"
}
}
}
}This repo ships a top-level skill at skill/computer-use-linux.
clawhub install computer-use-linuxbash skill/computer-use-linux/scripts/install.shAfter installation, the bundled project lives at:
~/.codex/skills/computer-use-linux/project
If CODEX_HOME is set, use that location instead.
Validated in this session:
npm run checknpm run build- Python syntax compile check for
runtime/linux_helper.py - bundled skill source integrity checks
- bundled project version sync checks
- review of Linux-specific runtime paths for X11 display discovery, screenshots, clipboard, frontmost app, app enumeration, and window/display lookup
Not yet validated in this session:
- real Linux GUI control
- live screenshot capture on Linux
- foreground-window enforcement against real Linux apps
- Wayland behavior under different compositors
- mixed desktop-environment and multi-monitor edge cases
Linux desktop control can still be limited by:
- Wayland compositor restrictions
- sandboxed app isolation
- session / remote desktop boundaries
- desktop-environment specific focus and clipboard behavior
This standalone runtime reports screenshotFiltering: none.
That means screenshot filtering is not compositor-native; gating still happens at the MCP layer.
This repository is intentionally Linux-only.
Covered capabilities:
- screenshots
- mouse control
- keyboard input
- frontmost app inspection
- installed / running app discovery
- window-to-display mapping
- clipboard access
- app launch
npm run build
node dist/cli.jsnode --input-type=module -e "import { callPythonHelper } from './dist/computer-use/pythonBridge.js'; console.log(await callPythonHelper('list_displays', {}));"src/
computer-use/
executor.ts
hostAdapter.ts
pythonBridge.ts
vendor/computer-use-mcp/
runtime/
linux_helper.py
requirements.txt
skill/
computer-use-linux/
examples/
assets/
CLAUDE_COMPUTER_USE_DEBUG=1CLAUDE_COMPUTER_USE_COORDINATE_MODE=pixelsCLAUDE_COMPUTER_USE_CLIPBOARD_PASTE=1CLAUDE_COMPUTER_USE_MOUSE_ANIMATION=1CLAUDE_COMPUTER_USE_HIDE_BEFORE_ACTION=0
- validate and harden on real Linux hardware
- improve app identity and icon extraction on Linux
- add automated Linux integration tests
- document Wayland-specific limitations and alternatives
MIT
This project preserves and adapts reusable TypeScript computer-use logic recovered from the Claude Code workflow, then replaces the missing private runtime with a fully standalone public Linux implementation.
