# go-vgo/robotgo

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/go-vgo-robotgo).**

10,614 stars · 946 forks · Go · apache-2.0

## Links

- GitHub: https://github.com/go-vgo/robotgo
- awesome-repositories: https://awesome-repositories.com/repository/go-vgo-robotgo.md

## Topics

`ai` `auto-test` `automation` `c` `computer-use` `go` `golang` `hook` `image` `mouse` `opencv` `robot` `robotgo` `rpa` `window`

## Description

Robotgo is a cross-platform desktop automation framework for the Go programming language. It provides a comprehensive toolkit for programmatically interacting with graphical user interfaces, enabling developers to simulate human input, manage application windows, and monitor system-wide hardware events.

The library distinguishes itself through its low-level system integration, utilizing a foreign function interface to interact directly with native operating system APIs. It employs pixel-buffer memory mapping and real-time screen capture to perform visual element identification, allowing for interaction with interface components based on pattern matching rather than relying on accessibility metadata.

Beyond its core automation capabilities, the project includes a suite of utilities for mouse and keyboard input simulation, global event hooking, and window lifecycle management. These features support a range of tasks including automated graphical user interface testing, computer vision-based interaction, and the development of tools that respond to real-time user behavior.

## Tags

### Development Tools & Productivity

- [Cross-Platform Desktop Automation Libraries](https://awesome-repositories.com/f/development-tools-productivity/cross-platform-desktop-utilities/cross-platform-desktop-automation-libraries.md) — Provides a toolkit for simulating mouse and keyboard input, capturing screen content, and controlling application windows.
- [Screen Capture Utilities](https://awesome-repositories.com/f/development-tools-productivity/screen-capture-utilities.md) — Provides low-level, real-time screen pixel data acquisition to enable automated visual element identification and computer vision-based interaction. ([source](https://cdn.jsdelivr.net/gh/go-vgo/robotgo@master/README.md))
- [Global Input Listeners](https://awesome-repositories.com/f/development-tools-productivity/global-input-listeners.md) — Registers low-level system listeners to intercept hardware input signals globally.
- [Keyboard Input Automation](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/keyboard-automation/keyboard-input-automation.md) — Provides comprehensive keyboard simulation for automated text entry and key combinations. ([source](https://cdn.jsdelivr.net/gh/go-vgo/robotgo@master/README.md))
- [Mouse Control Automation](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/mouse-automation/mouse-control-automation.md) — Facilitates precise mouse control including movement, clicking, and scrolling. ([source](https://cdn.jsdelivr.net/gh/go-vgo/robotgo@master/README.md))
- [Native Handle Management](https://awesome-repositories.com/f/development-tools-productivity/macos-utilities/native-window-contexts/native-handle-management.md) — Interacts with operating system process identifiers to manage application focus and lifecycle.

### Operating Systems & Systems Programming

- [Desktop Automation](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/desktop-automation.md) — Enables cross-platform desktop automation by simulating mouse and keyboard inputs. ([source](https://github.com/go-vgo/robotgo/blob/master/docs/doc.md))
- [Window Management Systems](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/window-management-systems.md) — Manages desktop application windows by finding, activating, and terminating processes. ([source](https://cdn.jsdelivr.net/gh/go-vgo/robotgo@master/README.md))

### Programming Languages & Runtimes

- [Desktop Automation Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/language-specific-resources/systems-and-performance-languages/go-resources/desktop-automation-frameworks.md) — Provides a collection of functions for programmatically interacting with graphical user interfaces.
- [Foreign Function Interfaces](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/foreign-function-interfaces.md) — Uses foreign function interfaces to invoke native system APIs for high-performance hardware interaction.

### Testing & Quality Assurance

- [Test Automation Tools](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/test-automation-tools.md) — Verifies software functionality by programmatically interacting with interface elements and validating visual states.
- [Computer Vision Screen Interaction Tools](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/ui-automation/vision-enabled/computer-vision-screen-interaction-tools.md) — Provides a utility for locating visual elements on a display through image pattern matching.

### User Interface & Experience

- [Visual Element Identification](https://awesome-repositories.com/f/user-interface-experience/ui-components/visual-identifiers/visual-element-identification.md) — Identifies user interface components by searching for specific images or patterns within screen captures. ([source](https://cdn.jsdelivr.net/gh/go-vgo/robotgo@master/README.md))

### Graphics & Multimedia

- [Bitmap-Based Visual Search](https://awesome-repositories.com/f/graphics-multimedia/bitmap-export-pipelines/bitmap-based-visual-search.md) — Provides visual element identification by matching screen captures against reference images.
- [Image Processing](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/image-processing.md) — Transforms screen capture data between standard image formats and internal bitmap representations. ([source](https://github.com/go-vgo/robotgo/blob/master/docs/keys.md))

### Software Engineering & Architecture

- [Cross-Platform Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-abstractions.md) — Normalizes disparate operating system input and windowing APIs into a unified cross-platform interface.

### Artificial Intelligence & ML

- [Computer Vision Workflows](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-workflows.md) — Integrates computer vision workflows to interact with visual interface components.

### System Administration & Monitoring

- [User Input Monitors](https://awesome-repositories.com/f/system-administration-monitoring/activity-monitors/user-input-monitors.md) — Monitors global keyboard and mouse activity in real-time to trigger custom logic. ([source](https://cdn.jsdelivr.net/gh/go-vgo/robotgo@master/README.md))

### Data & Databases

- [Pixel-Buffer Memory Mapping](https://awesome-repositories.com/f/data-databases/data-access-querying/memory-mapped-file-access/graphics-memory-mapping/pixel-buffer-memory-mapping.md) — Reads raw display data directly into memory to enable rapid image processing.
