go-vgo/robotgo

RobotGo, Go Native cross-platform RPA, GUI automation, Auto test and Computer use @vcaesar

What it solves

Robotgo provides a cross-platform way to automate desktop interactions. It allows developers to programmatically control the mouse and keyboard, read screen content, manage windows, and listen for global system events, eliminating the need to write platform-specific code for Mac, Windows, and Linux.

How it works

It acts as a wrapper for system-level APIs across different operating systems. It offers multiple backends, including traditional Cgo-based implementations and experimental pure-Go (Cgo-free) backends for Windows, macOS, X11, Wayland, and libei. This allows it to simulate user input (clicks, typing, scrolling), capture screen pixels or bitmaps, and identify window handles to target specific processes.

Who it’s for

It is designed for Go developers building desktop automation tools, automated testing suites, or AI agents capable of "Computer Use" (interacting with a GUI like a human would).

Highlights

  • Cross-Platform Support: Works on Mac, Windows, and Linux (including X11 and Wayland).
  • Input Control: Full control over mouse movement, clicking, keyboard typing, and key combinations.
  • Screen Perception: Ability to capture the screen, get pixel colors, and find specific bitmaps or images on screen.
  • Window Management: Find process IDs, activate windows, and manage window handles.
  • Global Event Listening: Ability to register hooks for keyboard and mouse events via the gohook package.

Related

  • Project
  • Project
  • Project
  • Project
  • Project