Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Full desktop computer use for headless Linux servers. Xvfb + XFCE virtual desktop with xdotool automation. 17 actions (click, type, scroll, screenshot, drag,...
Full desktop computer use for headless Linux servers. Xvfb + XFCE virtual desktop with xdotool automation. 17 actions (click, type, scroll, screenshot, drag,...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Full desktop GUI control for headless Linux servers. Creates a virtual display (Xvfb + XFCE) so you can run and control desktop applications on VPS/cloud instances without a physical monitor.
Display: :99 Resolution: 1024x768 (XGA, Anthropic recommended) Desktop: XFCE4 (minimal — xfwm4 + panel only)
Run the setup script to install everything (systemd services, flicker-free VNC): ./scripts/setup-vnc.sh This installs: Xvfb virtual display on :99 Minimal XFCE desktop (xfwm4 + panel, no xfdesktop) x11vnc with stability flags noVNC for browser access All services auto-start on boot and auto-restart on crash.
ActionScriptArgumentsDescriptionscreenshotscreenshot.sh—Capture screen → base64 PNGcursor_positioncursor_position.sh—Get current mouse X,Ymouse_movemouse_move.shx yMove mouse to coordinatesleft_clickclick.shx y leftLeft click at coordinatesright_clickclick.shx y rightRight clickmiddle_clickclick.shx y middleMiddle clickdouble_clickclick.shx y doubleDouble clicktriple_clickclick.shx y tripleTriple click (select line)left_click_dragdrag.shx1 y1 x2 y2Drag from start to endleft_mouse_downmouse_down.sh—Press mouse buttonleft_mouse_upmouse_up.sh—Release mouse buttontypetype_text.sh"text"Type text (50 char chunks, 12ms delay)keykey.sh"combo"Press key (Return, ctrl+c, alt+F4)hold_keyhold_key.sh"key" secsHold key for durationscrollscroll.shdir amt [x y]Scroll up/down/left/rightwaitwait.shsecondsWait then screenshotzoomzoom.shx1 y1 x2 y2Cropped region screenshot
export DISPLAY=:99 # Take screenshot ./scripts/screenshot.sh # Click at coordinates ./scripts/click.sh 512 384 left # Type text ./scripts/type_text.sh "Hello world" # Press key combo ./scripts/key.sh "ctrl+s" # Scroll down ./scripts/scroll.sh down 5
Screenshot — Always start by seeing the screen Analyze — Identify UI elements and coordinates Act — Click, type, scroll Screenshot — Verify result Repeat
Screen is 1024x768, origin (0,0) at top-left Click to focus before typing in text fields Use ctrl+End to jump to page bottom in browsers Most actions auto-screenshot after 2 sec delay Long text is chunked (50 chars) with 12ms keystroke delay
Watch the desktop in real-time via browser or VNC client.
# SSH tunnel (run on your local machine) ssh -L 6080:localhost:6080 your-server # Open in browser http://localhost:6080/vnc.html
# SSH tunnel ssh -L 5900:localhost:5900 your-server # Connect VNC client to localhost:5900
Add to ~/.ssh/config for automatic tunneling: Host your-server HostName your.server.ip User your-user LocalForward 6080 127.0.0.1:6080 LocalForward 5900 127.0.0.1:5900 Then just ssh your-server and VNC is available.
# Check status systemctl status xvfb xfce-minimal x11vnc novnc # Restart if needed sudo systemctl restart xvfb xfce-minimal x11vnc novnc
xvfb → xfce-minimal → x11vnc → novnc xvfb: Virtual display :99 (1024x768x24) xfce-minimal: Watchdog that runs xfwm4+panel, kills xfdesktop x11vnc: VNC server with -noxdamage for stability novnc: WebSocket proxy with heartbeat for connection stability
export DISPLAY=:99 # Chrome — only use --no-sandbox if the kernel lacks user namespace support. # Check: cat /proc/sys/kernel/unprivileged_userns_clone # 1 = sandbox works, do NOT use --no-sandbox # 0 = sandbox fails, --no-sandbox required as fallback # Using --no-sandbox when unnecessary causes instability and crashes. if [ "$(cat /proc/sys/kernel/unprivileged_userns_clone 2>/dev/null)" = "0" ]; then google-chrome --no-sandbox & else google-chrome & fi xfce4-terminal & # Terminal thunar & # File manager Note: Snap browsers (Firefox, Chromium) have sandbox issues on headless servers. Use Chrome .deb instead: wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i google-chrome-stable_current_amd64.deb sudo apt-get install -f
If you prefer manual setup instead of setup-vnc.sh: # Install packages sudo apt install -y xvfb xfce4 xfce4-terminal xdotool scrot imagemagick dbus-x11 x11vnc novnc websockify # Run the setup script (generates systemd services, masks xfdesktop, starts everything) ./scripts/setup-vnc.sh If you prefer fully manual setup, the setup-vnc.sh script generates all systemd service files inline -- read it for the exact service definitions.
Check if xfwm4 is running: pgrep xfwm4 Restart desktop: sudo systemctl restart xfce-minimal
Ensure xfdesktop is masked (check /usr/bin/xfdesktop) xfdesktop causes flicker due to clear→draw cycles on Xvfb
Check noVNC has --heartbeat 30 flag Check x11vnc has -noxdamage flag
Add -noxdamage -noxfixes flags The DAMAGE extension causes crashes on Xvfb
Installed by setup-vnc.sh: xvfb xfce4 xfce4-terminal xdotool scrot imagemagick dbus-x11 x11vnc novnc websockify
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.