// the find
go-vgo/robotgo
RobotGo, Go Native cross-platform RPA, GUI automation, Auto test and Computer use @vcaesar
robotgo is a Go library for desktop automation — mouse, keyboard, screen capture, window management, and global event hooks. It wraps platform C APIs (X11, Win32, Cocoa) via Cgo, and recently added pure-Go backends for Windows, Wayland, and libei (GNOME/KDE). If you need to script desktop interactions or build an RPA tool in Go, this is the only serious option in the ecosystem.
- The new Cgo-free backends (win, wayland, libei build tags) are genuinely useful — you can cross-compile desktop automation binaries without MinGW or X11 headers, which was previously the biggest pain point for CI and distribution.
- Feature surface is broad and well-organized: mouse, keyboard, clipboard, screen capture, bitmap search, OpenCV integration, and global event hooks are all separate packages that compose cleanly rather than being one tangled blob.
- Multi-monitor support works at the API level — DisplayID, GetDisplayBounds, per-display capture — which most automation libraries get wrong or ignore entirely.
- The MCP server stub (mcp/mcp.go) and AGENTS.md signal that it's being wired into AI agent pipelines, which matches the 'computer use' wave; the author is actively tracking where the ecosystem is going.
- Setup friction is real and non-trivial: GCC/MinGW on Windows, Xcode CLI tools plus Privacy permissions on macOS, five separate apt packages on Linux. This will break someone's CI pipeline the first time they touch it, and the README's wall of platform-specific install commands doesn't make it easier.
- The best features — OCR (robotgo_ocr.go), ADB (robotgo_adb.go), Android/iOS (robotgo_android.go) — appear to be stubs or thin wrappers with unclear support status; the API docs are explicitly marked deprecated and not updated, so you're reading source to understand what actually works.
- The pro/closed-source split is a warning sign: RobotGo-Pro gates JavaScript/Python/Lua bindings and 'newest robotgo version' behind a paywall, which means the open-source version is not necessarily the author's primary focus and may lag.
- Wayland backend only works on wlroots compositors (Sway, Hyprland); explicitly does not work on GNOME or KDE Wayland, which are the two most common Wayland desktops. The libei backend covers GNOME/KDE but drops screen capture and window management. Neither backend is complete.