NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
A cross-platform GUI automation library for Dart. Control mouse and keyboard programmatically on macOS, Windows, and Linux.
Last release 3 months ago
10 Jul 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
8 months old
5 releases · first in 2026
One column per month.
Adds screen capture and on-screen image location.
Adds screen capture and on-screen image location.
[!WARNING] Screen capture is only tested on macOS. The Linux and Windows backends are implemented and code-reviewed but have never been compiled or run. Treat them as unproven. Mouse and keyboard automation are unaffected.
[!IMPORTANT] On macOS, screen capture requires macOS 14 or newer and Screen Recording permission for the process running your program (the terminal or host app, not
dartitself). Without it,Screen.screenshotthrows aStateError; checkScreen.isScreenCaptureTrustedfirst.
Screen.screenshot({region, filename}), which captures the primary display or a region of it and can write a PNG.Screen.pixel(x, y) and Screen.pixelMatchesColor(x, y, rgb, {tolerance}).Screen.locateOnScreen, Screen.locateAllOnScreen, and Screen.locateCenterOnScreen, plus the image-to-image locate/locateAll and a top-level center(box). Matching is exact on RGB; alpha is ignored and there is no confidence option.Capture (raw RGBA pixels, physical dimensions, pixelAt, toLogical) and Screen.isScreenCaptureTrusted.Mouse.position, so a match feeds straight into Mouse.click. A Capture holds physical pixels, which on a HiDPI display are the logical size times the backing scale factor.ArgumentError.package:image, used only to encode and decode PNG.Fix Mouse.mouseUp so a screen-corner fail-safe can no longer strand a held button down mid-drag; releasing a button is never blocked.
Mouse.mouseUp so a screen-corner fail-safe can no longer strand a held button down mid-drag; releasing a button is never blocked.Mouse actions (move, click, drag, scroll) now honor the screen-corner fail-safe, matching Keyboard.
Mouse actions (move, click, drag, scroll) now honor the screen-corner fail-safe, matching Keyboard.Mouse.leftClick, Mouse.middleClick, and a Mouse.vscroll alias.FailSafe class; Keyboard.failSafeEnabled, pauseAfterAction, and failSafePadding continue to work as before.Expand AutoGUIKey to ~90 named keys (function keys F1-F24, arrows, navigation, editing, numpad, and left/right modifier variants) mapped per platform.
AutoGUIKey to ~90 named keys (function keys F1-F24, arrows, navigation, editing, numpad, and left/right modifier variants) mapped per platform.press, keyDown, keyUp, hotkey, and hold (e.g. press('f1'), hotkey(['ctrl', 'c'])), with aliases such as esc, pgup, and command.Keyboard.isValidKey and Keyboard.keyboardKeys for platform-aware key validation and introspection.\n/\t on Linux).press now performs a discrete down/up per repeat, re-checks the fail-safe before each press, and treats a non-positive press count as a no-op, matching PyAutoGUI.Initial release with Mouse and Keyboard automation.
dart_autogui:setup).Your coding agent can read these notes before it upgrades. Set up the MCP server →