Advanced desktop automation with mouse, keyboard, and screen control
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install desktop-control或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install desktop-control⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/desktop-control/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- description: Advanced desktop automation with mouse, keyboard, and screen control ---
The most advanced desktop automation skill for OpenClaw. Provides pixel-perfect mouse control, lightning-fast keyboard input, screen capture, window management, and clipboard operations.
---
First, install required dependencies:
pip install pyautogui pillow opencv-python pygetwindow
from skills.desktop_control import DesktopController
# Initialize controller
dc = DesktopController(failsafe=True)
# Mouse operations
dc.move_mouse(500, 300) # Move to coordinates
dc.click() # Left click at current position
dc.click(100, 200, button="right") # Right click at position
# Keyboard operations
dc.type_text("Hello from OpenClaw!")
dc.hotkey("ctrl", "c") # Copy
dc.press("enter")
# Screen operations
screenshot = dc.screenshot()
position = dc.get_mouse_position()
---
move_mouse(x, y, duration=0, smooth=True)
Move mouse to absolute screen coordinates.
Parameters:
x (int): X coordinate (pixels from left)
y (int): Y coordinate (pixels from top)
duration (float): Movement time in seconds (0 = instant, 0.5 = smooth)
smooth (bool): Use bezier curve for natural movement
Example:
# Instant movement
dc.move_mouse(1000, 500)
# Smooth 1-second movement
dc.move_mouse(1000, 500, duration=1.0)
move_relative(x_offset, y_offset, duration=0)
Move mouse relative to current position.
Parameters:
x_offset (int): Pixels to move horizontally (positive = right)
y_offset (int): Pixels to move vertically (positive = down)
duration (float): Movement time in seconds
Example:
# Move 100px right, 50px down
dc.move_relative(100, 50, duration=0.3)
click(x=None, y=None, button='left', clicks=1, interval=0.1)
Perform mouse click.
Parameters:
x, y (int, optional): Coordinates to click (None = current position)
button (str): 'left', 'right', 'middle'
clicks (int): Number of clicks (1 = single, 2 = double)
interval (float): Delay between multiple clicks
Example:
# Simple left click
dc.click()
# Double-click at specific position
dc.click(500, 300, clicks=2)
# Right-click
dc.click(button='right')
drag(start_x, start_y, end_x, end_y, duration=0.5, button='left')
Drag and drop operation.
Parameters:
start_x, start_y (int): Starting coordinates
end_x, end_y (int): Ending coordinates
duration (float): Drag duration
button (str): Mouse button to use
Example:
# Drag file from desktop to folder
dc.drag(100, 100, 500, 500, duration=1.0)
scroll(clicks, direction='vertical', x=None, y=None)
Scroll mouse wheel.
Parameters:
clicks (int): Scroll amount (positive = up/left, negative = down/right)
direction (str): 'vertical' or 'horizontal'
x, y (int, optional): Position to scroll at
Example:
# Scroll down 5 clicks
dc.scroll(-5)
# Scroll up 10 clicks
dc.scroll(10)
# Horizontal scroll
dc.scroll(5, direction='horizontal')
get_mouse_position()
Get current mouse coordinates.
Returns: (x, y) tuple
Example:
x, y = dc.get_mouse_position()
print(f"Mouse is at: {x}, {y}")
---
type_text(text, interval=0, wpm=None)
Type text with configurable speed.
Parameters:
text (str): Text to type
interval (float): Delay between keystrokes (0 = instant)
wpm (int, optional): Words per minute (overrides interval)
Example:
# Instant typing
dc.type_text("Hello World")
# Human-like typing at 60 WPM
dc.type_text("Hello World", wpm=60)
# Slow typing with 0.1s between keys
dc.type_text("Hello World", interval=0.1)
press(key, presses=1, interval=0.1)
Press and release a key.
Parameters:
key (str): Key name (see Key Names section)
presses (int): Number of times to press
interval (float): Delay between presses
Example:
# Press Enter
dc.press('enter')
# Press Space 3 times
dc.press('space', presses=3)
# Press Down arrow
dc.press('down')
hotkey(*keys, interval=0.05)
Execute keyboard shortcut.
Parameters:
*keys (str): Keys to press together
interval (float): Delay between key presses
Example:
# Copy (Ctrl+C)
dc.hotkey('ctrl', 'c')
# Paste (Ctrl+V)
dc.hotkey('ctrl', 'v')
# Open Run dialog (Win+R)
dc.hotkey('win', 'r')
# Save (Ctrl+S)
dc.hotkey('ctrl', 's')
# Select All (Ctrl+A)
dc.hotkey('ctrl', 'a')
key_down(key) / key_up(key)
Manually control key state.
Example:
# Hold Shift
dc.key_down('shift')
dc.type_text("hello") # Types "HELLO"
dc.key_up('shift')
# Hold Ctrl and click (for multi-select)
dc.key_down('ctrl')
dc.click(100, 100)
dc.click(200, 100)
dc.key_up('ctrl')
---
screenshot(region=None, filename=None)
Capture screen or region.
Parameters:
region (tuple, optional): (left, top, width, height) for partial capture
filename (str, optional): Path to save image
Returns: PIL Image object
Example:
# Full screen
img = dc.screenshot()
# Save to file
dc.screenshot(filename="screenshot.png")
# Capture specific region
img = dc.screenshot(region=(100, 100, 500, 300))
get_pixel_color(x, y)
Get color of pixel at coordinates.
Returns: RGB tuple (r, g, b)
Example:
r, g, b = dc.get_pixel_color(500, 300)
print(f"Color at (500, 300): RGB({r}, {g}, {b})")
find_on_screen(image_path, confidence=0.8)
Find image on screen (requires OpenCV).
Parameters:
image_path (str): Path to template image
confidence (float): Match threshold (0-1)
Returns: (x, y, width, height) or None
Example:
# Find button on screen
location = dc.find_on_screen("button.png")
if location:
x, y, w, h = location
# Click center of found image
dc.click(x + w//2, y + h//2)
...
安装 Desktop Control 后,可以对 AI 说这些话来触发它
Help me get started with Desktop Control
Explains what Desktop Control does, walks through the setup, and runs a quick demo based on your current project
Use Desktop Control to advanced desktop automation with mouse, keyboard, and screen control
Invokes Desktop Control with the right parameters and returns the result directly in the conversation
What can I do with Desktop Control in my ai agent & automation workflow?
Lists the top use cases for Desktop Control, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/desktop-control/ 目录(个人级,所有项目可用),或 .claude/skills/desktop-control/(项目级)。重启 AI 客户端后,用 /desktop-control 主动调用,或让 AI 根据上下文自动发现并使用。
Desktop Control 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Desktop Control 可免费安装使用。请查阅仓库了解许可证信息。
Advanced desktop automation with mouse, keyboard, and screen control
Desktop Control 属于「AI Agent & Automation」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my ai agent & automation tasks using Desktop Control
Identifies repetitive steps in your workflow and sets up Desktop Control to handle them automatically