Desktop Control Skill
🤖 AI Agent Skill for desktop automation using PyAutoGUI.
Control mouse, keyboard, and screen programmatically through a simple CLI interface.
⚡ Quick Install
For AI Agents
Add this skill to your AI coding agent with a single command:
npx skills add patrickporto/desktop-agent
For Users
Install the CLI with pipx (recommended):
pipx install desktop-agent
Or run without installing using uvx:
uvx desktop-agent --help
Or using pip:
pip install desktop-agent
🎯 For AI Agents
This project is packaged as an AI Agent Skill. To use it:
- Read the skill documentation: SKILL.md
- Install the CLI: Use
pip install desktop-agentorpipx install desktop-agent - Invoke commands: Use
desktop-agent <category> <command>
Quick Reference for Agents:
- All commands documented in SKILL.md
- Practical examples in examples/automation_examples.md
- Help system:
desktop-agent --help - All commands return JSON output by default
📦 Installation
Using pipx (Recommended)
pipx install desktop-agent
Using pip
pip install desktop-agent
Run without installing (using uvx)
uvx desktop-agent
Usage
The CLI is organized into command categories:
🖱️ Mouse (mouse)
# Move mouse to coordinates
desktop-agent mouse move 100 200
# Move with duration (animation)
desktop-agent mouse move 100 200 --duration 1.0
# Click at current position
desktop-agent mouse click
# Click at specific coordinates
desktop-agent mouse click 500 500
# Right click
desktop-agent mouse right-click
# Double click
desktop-agent mouse double-click 300 400
# Drag to coordinates
desktop-agent mouse drag 200 300
# Scroll (positive = up, negative = down)
desktop-agent mouse scroll 5
desktop-agent mouse scroll -3
# Get current mouse position
desktop-agent mouse position
⌨️ Keyboard (keyboard)
# Write text
desktop-agent keyboard write "Hello World"
# Write with interval between keys
desktop-agent keyboard write "Slow typing" --interval 0.1
# Press a key
desktop-agent keyboard press enter
# Press multiple times
desktop-agent keyboard press a --presses 5
# Execute keyboard shortcut
desktop-agent keyboard hotkey "ctrl,c"
desktop-agent keyboard hotkey "ctrl,shift,esc"
# Hold/release key
desktop-agent keyboard keydown shift
desktop-agent keyboard keyup shift
🖼️ Screen (screen)
# Capture screenshot (full screen)
desktop-agent screen screenshot my_screen.png
# Take screenshot of active window
desktop-agent screen screenshot active_window.png --active
# Take screenshot of specific window
desktop-agent screen screenshot notepad.png --window "Notepad"
# Screenshot of specific region (x,y,width,height)
desktop-agent screen screenshot region.png --region "100,100,500,400"
# Locate image within active window
desktop-agent screen locate button.png --active
# Locate center of image on screen
desktop-agent screen locate-center button.png --confidence 0.8
# Find text coordinates within active window
desktop-agent screen locate-text-coordinates "OK" --active
# Find text in specific image
desktop-agent screen locate-text-coordinates "Confirm" --image screenshot.png
# Case-sensitive search
desktop-agent screen locate-text-coordinates "Login" --case-sensitive
# Read all text from screen
desktop-agent screen read-all-text
# Read text from image
desktop-agent screen read-all-text --image capture.png
# Specify languages for OCR (default: pt,en)
desktop-agent screen locate-text-coordinates "Button" --lang "en"
💬 Messages (message)
# Show alert
desktop-agent message alert "Hello!"
# Confirmation
desktop-agent message confirm "Are you sure?"
# Input prompt
desktop-agent message prompt "Enter your name:"
# Password
desktop-agent message password "Enter your password:"
📱 Applications (app)
# Open an application (cross-platform)
desktop-agent app open notepad
desktop-agent app open "Google Chrome"
# Open with arguments
desktop-agent app open chrome --arg "https://google.com"
# Focus on a window by title
desktop-agent app focus "Untitled - Notepad"
# List all visible windows
desktop-agent app list
Automation Examples
Open Notepad and write
desktop-agent app open notepad
desktop-agent app focus notepad
desktop-agent keyboard write "Hello from Desktop Skill!"
Capture screenshot and analyze
desktop-agent screen screenshot full_screen.png
desktop-agent screen pixel 500 500
Available Commands
Run desktop-agent --help to see all commands:
desktop-agent --help
desktop-agent mouse --help
desktop-agent keyboard --help
desktop-agent screen --help
desktop-agent message --help
Project Structure
desktop-skill/
├── desktop_agent/ # Main package
│ ├── __init__.py
│ ├── commands/ # Command modules
│ │ ├── __init__.py
│ │ ├── mouse.py # Mouse commands
│ │ ├── keyboard.py # Keyboard commands
│ │ ├── screen.py # Screen/screenshot/OCR commands
│ │ └── message.py # Message boxes
├── pyproject.toml # Project configuration
└── README.md # This documentation
Technologies
- PyAutoGUI: GUI automation
- EasyOCR: Optical character recognition
- Typer: Modern CLI framework
Metadata
Release files for desktop-agent 1.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| desktop_agent-1.3.1.tar.gz | 170.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| desktop_agent-1.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 186.5 kB
Release files / desktop_agent-1.3.1.tar.gz
| Download URL | desktop_agent-1.3.1.tar.gz |
|---|---|
| Size | 170.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8ca22c98c0d8413da944fa94dea2cf6a3b85232470cea6db892885b0684555d7
|
|
BLAKE2b-256 checksum How to use checksums |
b032194b73690b6189b5a3426fa472896c0ebbb3d5ca58bbc208e16a2fb6d31a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 31, 2026.
Transparency logRelease files / desktop_agent-1.3.1-py3-none-any.whl
| Download URL | desktop_agent-1.3.1-py3-none-any.whl |
|---|---|
| Size | 16.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5db6c77c5e87e3a6082ca7cce386d09104b78e80663137ef7c1081dc2dc8fd49
|
|
BLAKE2b-256 checksum How to use checksums |
6b3c56d2b08b700d7bb60c129c586e5e351e473e5d8191ca5b6bad74621347df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 31, 2026.
Transparency log