robotgo
RobotGo, Go Native cross-platform RPA, GUI automation, Auto test and Computer use @vcaesar
A Go library for controlling a desktop computer programmatically, move the mouse, type text, capture the screen, and listen for input events, across Mac, Windows, and Linux.
RobotGo is a Go library that lets you write programs to control a desktop computer automatically. From a Go program, you can move the mouse, click buttons, type text, read pixel colors from the screen, take screenshots, and listen for global keyboard or mouse events. The library works on Mac, Windows, and Linux (X11), and supports both ARM64 and x86 hardware.
The typical use cases are test automation (writing scripts that drive an application the way a human would), repetitive task automation (moving files, filling forms, batch-processing anything that has a graphical interface), and more recently AI-driven computer use (letting an AI agent observe and operate a desktop the same way a person does). The project ships examples for each category of control: mouse movement and clicking, keyboard input including Unicode characters, screen capture, bitmap comparison, process listing, and window management.
Before you can compile a project that uses RobotGo you need Go and a C compiler installed, because the library wraps native system code. On Linux you also need the X11 development headers and, depending on which features you use, a few additional packages for clipboard access, PNG handling, and input hooks. The README includes the exact install commands for Ubuntu and Fedora. On Mac you need Xcode Command Line Tools and you have to grant the app Accessibility and Screen Recording permissions in System Settings. On Windows you need MinGW or a compatible GCC build.
Installation follows the standard Go module approach. You import the package path and Go fetches it. There is a paid Pro variant called RobotGo-Pro that adds support for JavaScript, Python, and Lua bindings, Wayland on Linux, technical support, and newer features not in the open-source version.
The repository is maintained by the go-vgo organization and released under an open-source license. Docs are available on pkg.go.dev. There is a Discord server for questions and community discussion.
Where it fits
- Write a script that automates a repetitive desktop task like filling out a form or moving files through a GUI
- Build a test suite that drives a desktop application by simulating real mouse clicks and keyboard input
- Implement an AI agent that can observe the screen and operate a desktop the way a human would