whatisgithub

What is robotgo?

go-vgo/robotgo — explained in plain English

Analysis updated 2026-06-24

10,711GoAudience · developerComplexity · 3/5LicenseSetup · moderate

In one sentence

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.

Mindmap

mindmap
  root((repo))
    What it does
      Mouse and keyboard control
      Screen capture
      Window management
    Use Cases
      Test automation
      Task automation
      AI computer use
    Tech Stack
      Go language
      C native bindings
    Platforms
      Mac and Windows
      Linux X11
      ARM64 and x86
    Extras
      Pro paid variant
      Discord community
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Write a script that automates a repetitive desktop task like filling out a form or moving files through a GUI

USE CASE 2

Build a test suite that drives a desktop application by simulating real mouse clicks and keyboard input

USE CASE 3

Implement an AI agent that can observe the screen and operate a desktop the way a human would

What is it built with?

GoC

How does it compare?

go-vgo/robotgoasciimoo/wuzztyktechnologies/tyk
Stars10,71110,71210,715
LanguageGoGoGo
Setup difficultymoderateeasymoderate
Complexity3/52/54/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a C compiler (GCC or MinGW) and, on Linux, X11 development headers, on Mac you must grant Accessibility and Screen Recording permissions in System Settings.

Released under an open-source license, you can use, modify, and distribute it freely.

So what is it?

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.

Copy-paste prompts

Prompt 1
Using the robotgo Go library, write a program that watches for a specific keyboard shortcut, then moves the mouse to a hardcoded screen position and clicks.
Prompt 2
With robotgo, write a Go script that takes a screenshot, saves it to a file, and then reads the color of a specific pixel to verify a UI element is visible.
Prompt 3
I want to automate a desktop GUI app using robotgo in Go. Show me how to find the app window, bring it to focus, type some text into a field, and press Enter.
Prompt 4
Using robotgo, write a Go program that listens for global mouse click events and logs the screen coordinates of each click to a file.
Prompt 5
Show me how to set up a Go project on Ubuntu that uses robotgo, including installing the required X11 development headers and compiling a simple mouse-move example.

Frequently asked questions

What is robotgo?

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.

What language is robotgo written in?

Mainly Go. The stack also includes Go, C.

What license does robotgo use?

Released under an open-source license, you can use, modify, and distribute it freely.

How hard is robotgo to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is robotgo for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.