Agent Economy Report

Skill code audit

CAUTION version 1.0.0 · audited 2026-09-17

desktop-control @matagul

This package is a local desktop-automation skill. It can move and click the mouse, type text, send hotkeys, capture the screen, inspect pixels, locate images, switch windows, read and write the clipboard, and run a rule-based agent that captures screenshots during tasks. It saves screenshots to disk but has no observed network exfiltration, persistence mechanism, wallet/payment code, or hidden decoding. The optional approval mode is incomplete: screenshot and clipboard operations can occur without approval, and the documentation suggests disabling failsafe or running with administrator privileges in some cases. Because it can see and interact with anything on the desktop, it should not be used unattended around credentials, payment pages, or private data.

Declared purposeAdvanced desktop automation with mouse, keyboard, screen control, window management, clipboard operations, and optional higher-level task planning.
Observed behaviorThe Python code wraps PyAutoGUI, pygetwindow, and pyperclip to control the mouse, keyboard, screen, windows, and clipboard. AIDesktopAgent adds rule-based task planning, launches applications by sending Win+R and typing a command, captures before/after screenshots during task execution, and includes simplified drawing and game-loop routines. No runtime network requests, shell execution, persistence, wallet operations, or download-and-execute behavior were observed.
Verdict, rules onlySAFE
Verdict, AICAUTION
Final verdictCAUTION (never better than either pass)

Capabilities

capabilityvs purposedetail
otherneededCore desktop input and observation: mouse movement, clicking, dragging, scrolling, keyboard typing, key presses, hotkeys, window activation, screen capture, pixel inspection, image matching, and clipboard read/write. Implemented in __init__.py via PyAutoGUI, pygetwindow, and pyperclip.
filesystem_writeneededSaves screenshots to disk when screenshot() is called with a filename (__init__.py line 225: img.save(filename)).
filesystem_readneededReads template image files for image matching through pyautogui.locateOnScreen (__init__.py line 259).
install_packagesneededDocumentation instructs pip install pyautogui pillow opencv-python pygetwindow pyperclip (SKILL.md line 56 and QUICK_REFERENCE.md line 250); no automatic install code runs.
networkexceeds purposeNo runtime network calls observed; only documentation links such as skill-card.md line 9 to clawhub.ai.

Findings

severityfinding
infoDeclared purpose
The skill describes itself as local desktop automation.
SKILL.md:2 Advanced desktop automation with mouse, keyboard, and screen control
infoPyAutoGUI desktop automation library
Imports the library used to move the mouse, click, type, press keys, and capture the screen.
__init__.py:6 import pyautogui
mediumProgrammatic mouse clicks
The skill can click at absolute coordinates or the current pointer position with left, right, or middle buttons. This is core to the declared purpose, but can interact with on-screen payment or account controls if present.
__init__.py:91 pyautogui.click(x=x, y=y, clicks=clicks, interval=interval, button=button)
mediumArbitrary keyboard text entry
Types any provided string into the active window. This can enter credentials or commands if the focused window is a terminal or form.
__init__.py:169 pyautogui.write(text, interval=interval)
mediumKeyboard shortcuts can control applications
Can send shortcuts such as Ctrl+C, Ctrl+V, Alt+Tab, or Win+R. Documentation examples include Win+R and Ctrl+Alt+Delete.
__init__.py:195 pyautogui.hotkey(*keys, interval=interval)
highScreenshot capture bypasses approval mode
The screenshot method does not call _check_approval, so it can capture the screen even if require_approval=True. Screenshots may expose private documents, passwords, or tokens.
__init__.py:222 img = pyautogui.screenshot(region=region)
mediumWrites screenshot files to disk
The screenshot method saves files to arbitrary paths when a filename is supplied, as used by demos and the AI agent.
__init__.py:225 img.save(filename)
highClipboard read bypasses approval mode
get_from_clipboard reads whatever is in the system clipboard without calling _check_approval. This may expose copied passwords or API tokens.
__init__.py:373 text = pyperclip.paste()
mediumClipboard write bypasses approval mode
copy_to_clipboard writes text to the system clipboard without approval check; it could overwrite a user's clipboard.
__init__.py:357 pyperclip.copy(text)
mediumKey hold bypasses approval mode
key_down and key_up change key state without _check_approval, so key combinations can be synthesized without confirmation.
__init__.py:200 pyautogui.keyDown(key)
mediumAutonomous agent captures screenshots before and after steps
AIDesktopAgent captures the screen before and after each step and returns the images in the result, which can automatically collect visible data.
ai_agent.py:115 screenshot_before = self.dc.screenshot()
mediumApp launch fallback uses raw string as command
If the app is not in the knowledge base, _do_launch_app sends the raw app string to the Windows Run dialog via Win+R and Enter, allowing launch of arbitrary local commands.
ai_agent.py:361 launch_cmd = app_info.get("launch_command", app)
infoUnused base64 import
base64 is imported but never used in the provided code. No encoded payloads were observed.
ai_agent.py:6 import base64
lowDocumentation advises disabling failsafe
It recommends disabling the failsafe for performance; failsafe is the primary emergency stop for automation.
SKILL.md:571 4. **Disable failsafe** for maximum performance (use with caution)
mediumDocumentation suggests administrator privileges
Encourages running Python as administrator for some operations, which would give the automation broad control over the host.
SKILL.md:603 - Run Python with administrator privileges for some operations
infoDocumentation example types a password
The example shows typing a hard-coded password into a form, illustrating how the skill can be used to enter credentials.
SKILL.md:505 dc.type_text("SecurePassword123", wpm=60)
mediumPublished risk note confirms approval bypass
The skill card itself reports that some sensitive actions bypass the advertised approval mode. The code confirms screenshot and clipboard methods do not check approval.
skill-card.md:32 Risk: Server security guidance says some sensitive actions bypass the advertised approval mode.
infoInstall instructions
The package instructs installing Python packages; it does not run this command automatically.
QUICK_REFERENCE.md:250 pip install pyautogui pillow opencv-python pygetwindow pyperclip

0 AI finding(s) were dropped because their file, line or quote did not match the package.

Network destinations in the code

domainservice ratingwhere
clawhub.ainot in the service indexskill-card.md:9

Other facts

Binaries invokedbase64, bash, pip, python
Environment variables readnone
Hard-coded walletsnone
Pipes a download to a shell0
eval / exec / subprocess0
base64 blobs0
File writes0
Persistence0

Files audited

filelinessha256
AI_AGENT_GUIDE.md448265239bcc5b43a04…
QUICK_REFERENCE.md269a3b817908aea53c6…
SKILL.md623d900c0650cfbb76f…
__init__.py522d8f569d4efd3341e…
_meta.json61e129b2678ec27f8…
ai_agent.py6134971f7d14c6e2c0e…
demo.py2385da659039f391c08…
skill-card.md576c915053c9df3c51…

For agents

JSON: https://agenteconomy.report/k/desktop-control.audit.json · badge: https://agenteconomy.report/k/desktop-control.audited.svg · skill rating: /k/desktop-control · commission an audit of any skill: US$ 29 per version.

How this is computed

The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).