skills/computer-use/SKILL.md
Full desktop computer use for headless Linux servers. Xvfb + XFCE virtual desktop with xdotool automation. 17 actions (click, type, scroll, screenshot, drag, etc). Unlike OpenClaw's browser tool, operates at the X11 level so websites cannot detect automation. Includes VNC for live viewing.
npx skillsauth add leoyeai/openclaw-master-skills computer-useInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
:99Run the setup script to install everything (systemd services, flicker-free VNC):
./scripts/setup-vnc.sh
This installs:
:99All services auto-start on boot and auto-restart on crash.
| Action | Script | Arguments | Description |
|--------|--------|-----------|-------------|
| screenshot | screenshot.sh | — | Capture screen → base64 PNG |
| cursor_position | cursor_position.sh | — | Get current mouse X,Y |
| mouse_move | mouse_move.sh | x y | Move mouse to coordinates |
| left_click | click.sh | x y left | Left click at coordinates |
| right_click | click.sh | x y right | Right click |
| middle_click | click.sh | x y middle | Middle click |
| double_click | click.sh | x y double | Double click |
| triple_click | click.sh | x y triple | Triple click (select line) |
| left_click_drag | drag.sh | x1 y1 x2 y2 | Drag from start to end |
| left_mouse_down | mouse_down.sh | — | Press mouse button |
| left_mouse_up | mouse_up.sh | — | Release mouse button |
| type | type_text.sh | "text" | Type text (50 char chunks, 12ms delay) |
| key | key.sh | "combo" | Press key (Return, ctrl+c, alt+F4) |
| hold_key | hold_key.sh | "key" secs | Hold key for duration |
| scroll | scroll.sh | dir amt [x y] | Scroll up/down/left/right |
| wait | wait.sh | seconds | Wait then screenshot |
| zoom | zoom.sh | x1 y1 x2 y2 | Cropped 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
ctrl+End to jump to page bottom in browsersWatch 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
-noxdamage for stabilityexport 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.
pgrep xfwm4sudo systemctl restart xfce-minimal/usr/bin/xfdesktop)--heartbeat 30 flag-noxdamage flag-noxdamage -noxfixes flagsInstalled by setup-vnc.sh:
xvfb xfce4 xfce4-terminal xdotool scrot imagemagick dbus-x11 x11vnc novnc websockify
testing
AI-powered diary generation for agents - creates rich, reflective journal entries (400-600 words) with Quote Hall of Fame, Curiosity Backlog, Decision Archaeology, Relationship Evolution, mood analytics, weekly digests, "On This Day" resurfacing, and cron auto-generation. Works best with Claude models (Haiku, Sonnet, Opus).
development
Multi-agent UX for OpenClaw Control UI — agent selector, per-agent sessions, session history viewer with search, agent-filtered Sessions tab with friendly names, Create Agent wizard, emoji picker, and backend agent CRUD.
tools
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
tools
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.