Skip to main content

CLI to orchestrate and automate graphical desktop workflows.

Project description

weavgui

A CLI to orchestrate and automate desktop GUI operations with code-level precision.

npx skills add https://github.com/yankeguo/weavgui/tree/main/skills/weavgui -a openclaw -y

Screenshot with cursor crosshair and bounding boxes

Installation

uv tool install weavgui

To upgrade an existing installation:

uv tool upgrade weavgui

Quick Start

weavgui --version
weavgui screenshot -o out.png
weavgui mouse move 100 100
weavgui mouse click
weavgui pasteboard write hello world
weavgui pasteboard read
weavgui keystroke command+c

Coordinate System

Mouse and screenshot-related commands share the same coordinate convention:

  • Primary-display logical coordinates (pixels)
  • Origin at top-left: (0, 0)
  • x increases to the right, y increases downward
  • Single-display only (primary monitor)
  • On macOS Retina, screenshots are downscaled to logical resolution so that pixel coordinates match mouse coordinates

Command Reference

Global

Command Description
weavgui --version Print CLI version
weavgui -h Show help

screenshot

Capture a screenshot of the primary display and save it as PNG.

weavgui screenshot -o <output.png> [--without-cursor]
Option Description
-o, --output Output .png path (required)
--without-cursor Skip cursor overlay drawing

Default behavior (without --without-cursor) annotates the cursor position:

  • Red crosshair spanning the full screenshot
  • Red inner box centered on cursor (200×200 px)
  • Blue outer box centered on cursor (600×600 px)
weavgui screenshot -o out.png
weavgui screenshot -o out-no-cursor.png --without-cursor

mouse

mouse move <dx> <dy>

Move the cursor by a relative pixel delta. Fails if the target position would leave the primary display bounds.

For negative values, use -- to prevent argument parsing as options.

weavgui mouse move 100 100
weavgui mouse move -- -100 0

mouse click

Left click at the current cursor position.

weavgui mouse click

mouse doubleclick

Double left click at the current cursor position.

weavgui mouse doubleclick

mouse rightclick

Right click at the current cursor position.

weavgui mouse rightclick

pasteboard

pasteboard read

Read text from the system pasteboard and print to stdout.

weavgui pasteboard read

pasteboard write <text...>

Write text to the system pasteboard. Multiple arguments are joined by a single space.

weavgui pasteboard write hello world

keystroke

Simulate keyboard input. Supports single keys and combinations joined with +.

weavgui keystroke <keys>
Input Meaning
c Press c
ctrl+c Press Ctrl+C
command+c Press Command+C
shift+a Press Shift+A
alt+f4 Press Alt+F4

Modifier aliases:

Alias Resolves to
control ctrl
cmd command
option alt

On macOS, single-key combos with command are sent via AppleScript for better reliability.

weavgui keystroke c
weavgui keystroke ctrl+c
weavgui keystroke command+c

Development

Clone the repository and install dependencies:

git clone https://github.com/yankeguo/weavgui.git
cd weavgui
uv sync

Run commands from source:

uv run weavgui --version
uv run weavgui screenshot -o out.png

Notes

  • Mouse and keystroke automation requires Accessibility permission.
  • If commands fail on macOS, go to System Settings > Privacy & Security > Accessibility and grant access to your terminal application.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weavgui-0.1.2.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weavgui-0.1.2-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file weavgui-0.1.2.tar.gz.

File metadata

  • Download URL: weavgui-0.1.2.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for weavgui-0.1.2.tar.gz
Algorithm Hash digest
SHA256 0b3e1f9b7295122c4ca7e18cf56328b30c95cfac9237f08545c1f8bdd7276e91
MD5 5e128c9631df44f4ea1b39982b344ec0
BLAKE2b-256 84f9c8ac21228037b0db6d07c2755762364c986bd39ec48631e384cbcdbcb08a

See more details on using hashes here.

File details

Details for the file weavgui-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: weavgui-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for weavgui-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d762d26a85dcffe1ae8b2f87b22854d29343725f114a2d77528f7e6ac5085450
MD5 529dd3d7db1167a6e2b0e714e65daf6d
BLAKE2b-256 078480fdb12099316b22124c8abe0510c6b72ef0b4b277fb355590a72b96af6b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page