[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5029":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":40,"readmeContent":41,"aiSummary":42,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":43,"discoverSource":44},5029,"robotgo","go-vgo\u002Frobotgo","go-vgo","RobotGo, Go Native cross-platform RPA, GUI automation, Auto test and Computer use  @vcaesar","https:\u002F\u002Fatomai.cc",null,"Go",10726,955,235,2,0,8,21,4,43.94,"Apache License 2.0",false,"master",true,[26,27,28,29,30,31,32,33,34,35,36,37,5,38,39],"ai","auto-test","automation","c","computer-use","go","golang","hook","image","mouse","opencv","robot","rpa","window","2026-06-12 02:01:07","# Robotgo\n\n\u003C!-- \u003Cimg align=\"right\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fgo-vgo\u002Frobotgo\u002Fmaster\u002Flogo.jpg\"> -->\n\u003C!-- [![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fgo-vgo\u002Frobotgo\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fgo-vgo\u002Frobotgo) -->\n\n[![Build Status](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fworkflows\u002FGo\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fcommits\u002Fmaster)\n[![CircleCI Status](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fgo-vgo\u002Frobotgo.svg?style=shield)](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fgo-vgo\u002Frobotgo)\n[![Go Report Card](https:\u002F\u002Fgoreportcard.com\u002Fbadge\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo)](https:\u002F\u002Fgoreportcard.com\u002Freport\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo)\n[![GoDoc](https:\u002F\u002Fpkg.go.dev\u002Fbadge\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo?status.svg)](https:\u002F\u002Fpkg.go.dev\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo?tab=doc)\n[![GitHub release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Fgo-vgo\u002Frobotgo.svg)](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Freleases\u002Flatest)\n\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FnpPb3NzE4A\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1484658282777018551.svg?logo=discord&logoColor=white&label=Discord&color=5865F2\" alt=\"Join the Discord chat at https:\u002F\u002Fdiscord.gg\u002FnpPb3NzE4A\">\u003C\u002Fa>\n\n> Golang Desktop Automation, auto test and AI Computer Use. \u003Cbr>\n> Control the mouse, keyboard, read the screen, process, Window Handle, image and bitmap and global event listener.\n\nRobotGo supports Mac, Windows, and Linux (X11); and robotgo supports arm64 and x86-amd64.\n\nI build [Codg](https:\u002F\u002Fgithub.com\u002Fvcaesar\u002Fcodg) now, Easy code and work AI agent system: auto, asynchronous, concurrency, efficiently and High accuracy\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvcaesar\u002Fcodg\" rel=\"nofollow\">\n\u003C!-- \u003Cimg width=\"800\" alt=\"Codg Demo\" src=\"https:\u002F\u002Fgithub.com\u002Fvcaesar\u002Fcodg\u002Fraw\u002Fmain\u002Fdemo\u002F26-04.png\" \u002F> -->\n\u003Cimg width=\"800\" alt=\"Codg Demo\" src=\"https:\u002F\u002Fgithub.com\u002Fvcaesar\u002Fcodg\u002Fraw\u002Fmain\u002Fdemo\u002F26-04-1.png\" \u002F>\n\u003C\u002Fa>\n\u003C\u002Fp>\n\n[RobotGo-Pro](https:\u002F\u002Fgithub.com\u002Fvcaesar\u002Frobotgo-pro) get the JavaScript, Python, Lua and others version, tech supports, new features and newest robotgo version (such as Wayland support, \"no open-source version now\").\n\n## Contents\n\n- [Docs](#docs)\n- [Binding](#binding)\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Update](#update)\n- [Examples](#examples)\n- [Type Conversion and keys](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002Fdocs\u002Fkeys.md)\n- [Cross-Compiling](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002Fdocs\u002Finstall.md#crosscompiling)\n- [Authors](#authors)\n- [Plans](#plans)\n- [License](#license)\n\n## Docs\n\n- [GoDoc](https:\u002F\u002Fgodoc.org\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo) \u003Cbr>\n- [API Docs](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002Fdocs\u002Fdoc.md) (Deprecated, no updated)\n\n## Binding:\n\n[ADB](https:\u002F\u002Fgithub.com\u002Fvcaesar\u002Fadb), packaging android adb API.\n\n## Requirements:\n\nNow, Please make sure `Golang, GCC` is installed correctly before installing RobotGo.\n\n### ALL:\n\n```\nGolang\n\nGCC\n```\n\n#### For MacOS:\n\n```\nbrew install go\n```\n\nXcode Command Line Tools; \u003Cbr>\nAnd Privacy setting, add Screen Recording and Accessibility under: \u003Cbr>\n`System Settings > Privacy & Security > Accessibility, Screen & System Audio Recording`.\n\n```\nxcode-select --install\n```\n\n#### For Windows:\n\n```\nwinget install Golang.go\n```\n\n[llvm-mingw](https:\u002F\u002Fgithub.com\u002Fmstorsjo\u002Fllvm-mingw)\n\n```\nwinget install MartinStorsjo.LLVM-MinGW.UCRT\n```\n\nor [Mingw-w64](https:\u002F\u002Fsourceforge.net\u002Fprojects\u002Fmingw-w64\u002Ffiles)\n\n```\nwinget install BrechtSanders.WinLibs.POSIX.UCRT\n```\n\nOr Download the [Mingw-w64](https:\u002F\u002Fsourceforge.net\u002Fprojects\u002Fmingw-w64\u002Ffiles) and the others gcc, then set system environment variables like `C:\\mingw64\\bin` to the env `Path`.\n[Set environment variables to run GCC from command line](https:\u002F\u002Fwww.youtube.com\u002Fresults?search_query=Set+environment+variables+to+run+GCC+from+command+line).\n\n`Or The others GCC` (Except the Mingw-w64, you should compile the \"libpng\" with yourself when use the [bitmap](https:\u002F\u002Fgithub.com\u002Fvcaesar\u002Fbitmap).)\n\n#### For everything else:\n\n```\nGCC\n\nX11 with the XTest extension (the Xtst library)\n\n\"Clipboard\": xsel xclip\n\n\"Bitmap\": libpng (Just used by the \"bitmap\".)\n\n\"Event-Gohook\": xcb, xkb, libxkbcommon (Just used by the \"hook\".)\n```\n\n##### Ubuntu:\n\n```yml\n# sudo apt install golang\nsudo snap install go  --classic\n\n# gcc\nsudo apt install gcc libc6-dev\n\n# x11\nsudo apt install libx11-dev xorg-dev libxtst-dev\n\n# Clipboard\nsudo apt install xsel xclip\n\n# Bitmap\nsudo apt install libpng++-dev\n\n# GoHook\nsudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev libxkbcommon-dev\n```\n\n##### Fedora:\n\n```yml\n# x11\nsudo dnf install libXtst-devel\n\n# Clipboard\nsudo dnf install xsel xclip\n\n# Bitmap\nsudo dnf install libpng-devel\n\n# GoHook\nsudo dnf install libxkbcommon-devel libxkbcommon-x11-devel xorg-x11-xkb-utils-devel\n```\n\n## Installation:\n\nWith Go module support (Go 1.11+), just import:\n\n```go\nimport \"github.com\u002Fgo-vgo\u002Frobotgo\"\n```\n\nOtherwise, to install the robotgo package, run the command:\n\n```\ngo get github.com\u002Fgo-vgo\u002Frobotgo\n```\n\npng.h: No such file or directory? Please see [issues\u002F47](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fissues\u002F47).\n\n## Update:\n\n```\ngo get -u github.com\u002Fgo-vgo\u002Frobotgo\n```\n\nNote go1.10.x C file compilation cache problem, [golang #24355](https:\u002F\u002Fgithub.com\u002Fgolang\u002Fgo\u002Fissues\u002F24355).\n`go mod vendor` problem, [golang #26366](https:\u002F\u002Fgithub.com\u002Fgolang\u002Fgo\u002Fissues\u002F26366).\n\n## [Examples:](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002Fexamples)\n\n#### [Mouse](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002Fexamples\u002Fmouse\u002Fmain.go)\n\n```Go\npackage main\n\nimport (\n  \"fmt\"\n  \"github.com\u002Fgo-vgo\u002Frobotgo\"\n)\n\nfunc main() {\n  robotgo.MouseSleep = 300\n\n  robotgo.Move(100, 100)\n  fmt.Println(robotgo.Location())\n  robotgo.Move(100, -200) \u002F\u002F multi screen supported\n  robotgo.MoveSmooth(120, -150)\n  fmt.Println(robotgo.Location())\n\n  robotgo.ScrollDir(10, \"up\")\n  robotgo.ScrollDir(20, \"right\")\n\n  robotgo.Scroll(0, -10)\n  robotgo.Scroll(100, 0)\n\n  robotgo.MilliSleep(100)\n  robotgo.ScrollSmooth(-10, 6)\n  \u002F\u002F robotgo.ScrollRelative(10, -100)\n\n  robotgo.Move(10, 20)\n  robotgo.MoveRelative(0, -10)\n  robotgo.DragSmooth(10, 10)\n\n  robotgo.Click(\"wheelRight\")\n  robotgo.Click(\"left\", true)\n  robotgo.MoveSmooth(100, 200, 1.0, 10.0)\n\n  robotgo.Toggle(\"left\")\n  robotgo.Toggle(\"left\", \"up\")\n}\n```\n\n#### [Keyboard](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002Fexamples\u002Fkey\u002Fmain.go)\n\n```Go\npackage main\n\nimport (\n  \"fmt\"\n\n  \"github.com\u002Fgo-vgo\u002Frobotgo\"\n)\n\nfunc main() {\n  robotgo.Type(\"Hello World\")\n  robotgo.Type(\"だんしゃり\", 0, 1)\n  \u002F\u002F robotgo.Type(\"テストする\")\n\n  robotgo.Type(\"Hi, Seattle space needle, Golden gate bridge, One world trade center.\")\n  robotgo.Type(\"Hi galaxy, hi stars, hi MT.Rainier, hi sea. こんにちは世界.\")\n  robotgo.Sleep(1)\n\n  \u002F\u002F ustr := uint32(robotgo.CharCodeAt(\"Test\", 0))\n  \u002F\u002F robotgo.UnicodeType(ustr)\n\n  robotgo.KeySleep = 100\n  robotgo.KeyTap(\"enter\")\n  \u002F\u002F robotgo.Type(\"en\")\n  robotgo.KeyTap(\"i\", \"alt\", \"cmd\")\n\n  arr := []string{\"alt\", \"cmd\"}\n  robotgo.KeyTap(\"i\", arr)\n\n  robotgo.MilliSleep(100)\n  robotgo.KeyToggle(\"a\")\n  robotgo.KeyToggle(\"a\", \"up\")\n\n  robotgo.WriteAll(\"Test\")\n  text, err := robotgo.ReadAll()\n  if err == nil {\n    fmt.Println(text)\n  }\n}\n```\n\n#### [Screen](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002Fexamples\u002Fscreen\u002Fmain.go)\n\n```Go\npackage main\n\nimport (\n  \"fmt\"\n  \"strconv\"\n\n  \"github.com\u002Fgo-vgo\u002Frobotgo\"\n  \"github.com\u002Fvcaesar\u002Fimgo\"\n)\n\nfunc main() {\n  x, y := robotgo.Location()\n  fmt.Println(\"pos: \", x, y)\n\n  color := robotgo.GetPixelColor(100, 200)\n  fmt.Println(\"color---- \", color)\n\n  sx, sy := robotgo.GetScreenSize()\n  fmt.Println(\"get screen size: \", sx, sy)\n\n  bit := robotgo.CaptureScreen(10, 10, 30, 30)\n  defer robotgo.FreeBitmap(bit)\n\n  img := robotgo.ToImage(bit)\n  imgo.Save(\"test.png\", img)\n\n  num := robotgo.DisplaysNum()\n  for i := 0; i \u003C num; i++ {\n    robotgo.DisplayID = i\n    img1, _ := robotgo.CaptureImg()\n    path1 := \"save_\" + strconv.Itoa(i)\n    robotgo.Save(img1, path1+\".png\")\n    robotgo.SaveJpeg(img1, path1+\".jpeg\", 50)\n\n    img2, _ := robotgo.CaptureImg(10, 10, 20, 20)\n    robotgo.Save(img2, \"test_\"+strconv.Itoa(i)+\".png\")\n\n    x, y, w, h := robotgo.GetDisplayBounds(i)\n    img3, err := robotgo.CaptureImg(x, y, w, h)\n    fmt.Println(\"Capture error: \", err)\n    robotgo.Save(img3, path1+\"_1.png\")\n  }\n}\n```\n\n#### [Bitmap](https:\u002F\u002Fgithub.com\u002Fvcaesar\u002Fbitmap\u002Fblob\u002Fmain\u002Fexamples\u002Fmain.go)\n\n```Go\npackage main\n\nimport (\n  \"fmt\"\n\n  \"github.com\u002Fgo-vgo\u002Frobotgo\"\n  \"github.com\u002Fvcaesar\u002Fbitmap\"\n)\n\nfunc main() {\n  bit := robotgo.CaptureScreen(10, 20, 30, 40)\n  \u002F\u002F use `defer robotgo.FreeBitmap(bit)` to free the bitmap\n  defer robotgo.FreeBitmap(bit)\n\n  fmt.Println(\"bitmap...\", bit)\n  img := robotgo.ToImage(bit)\n  \u002F\u002F robotgo.SavePng(img, \"test_1.png\")\n  robotgo.Save(img, \"test_1.png\")\n\n  bit2 := robotgo.ToCBitmap(robotgo.ImgToBitmap(img))\n  fx, fy := bitmap.Find(bit2)\n  fmt.Println(\"FindBitmap------ \", fx, fy)\n  robotgo.Move(fx, fy)\n\n  arr := bitmap.FindAll(bit2)\n  fmt.Println(\"Find all bitmap: \", arr)\n\n  fx, fy = bitmap.Find(bit)\n  fmt.Println(\"FindBitmap------ \", fx, fy)\n\n  bitmap.Save(bit, \"test.png\")\n}\n```\n\n#### [OpenCV](https:\u002F\u002Fgithub.com\u002Fvcaesar\u002Fgcv)\n\n```Go\npackage main\n\nimport (\n  \"fmt\"\n  \"math\u002Frand\"\n\n  \"github.com\u002Fgo-vgo\u002Frobotgo\"\n  \"github.com\u002Fvcaesar\u002Fgcv\"\n  \"github.com\u002Fvcaesar\u002Fbitmap\"\n)\n\nfunc main() {\n  opencv()\n}\n\nfunc opencv() {\n  name := \"test.png\"\n  name1 := \"test_001.png\"\n  robotgo.SaveCapture(name1, 10, 10, 30, 30)\n  robotgo.SaveCapture(name)\n\n  fmt.Print(\"gcv find image: \")\n  fmt.Println(gcv.FindImgFile(name1, name))\n  fmt.Println(gcv.FindAllImgFile(name1, name))\n\n  bit := bitmap.Open(name1)\n  defer robotgo.FreeBitmap(bit)\n  fmt.Print(\"find bitmap: \")\n  fmt.Println(bitmap.Find(bit))\n\n  \u002F\u002F bit0 := robotgo.CaptureScreen()\n  \u002F\u002F img := robotgo.ToImage(bit0)\n  \u002F\u002F bit1 := robotgo.CaptureScreen(10, 10, 30, 30)\n  \u002F\u002F img1 := robotgo.ToImage(bit1)\n  \u002F\u002F defer robotgo.FreeBitmapArr(bit0, bit1)\n  img, _ := robotgo.CaptureImg()\n  img1, _ := robotgo.CaptureImg(10, 10, 30, 30)\n\n  fmt.Print(\"gcv find image: \")\n  fmt.Println(gcv.FindImg(img1, img))\n  fmt.Println()\n\n  res := gcv.FindAllImg(img1, img)\n  fmt.Println(res[0].TopLeft.Y, res[0].Rects.TopLeft.X, res)\n  x, y := res[0].TopLeft.X, res[0].TopLeft.Y\n  robotgo.Move(x, y-rand.Intn(5))\n  robotgo.MilliSleep(100)\n  robotgo.Click()\n\n  res = gcv.FindAll(img1, img) \u002F\u002F use find template and sift\n  fmt.Println(\"find all: \", res)\n  res1 := gcv.Find(img1, img)\n  fmt.Println(\"find: \", res1)\n\n  img2, _, _ := robotgo.DecodeImg(\"test_001.png\")\n  x, y = gcv.FindX(img2, img)\n  fmt.Println(x, y)\n}\n```\n\n#### [Event](https:\u002F\u002Fgithub.com\u002Frobotn\u002Fgohook\u002Fblob\u002Fmaster\u002Fexamples\u002Fmain.go)\n\n```Go\npackage main\n\nimport (\n  \"fmt\"\n\n  \u002F\u002F \"github.com\u002Fgo-vgo\u002Frobotgo\"\n  hook \"github.com\u002Frobotn\u002Fgohook\"\n)\n\nfunc main() {\n  add()\n  low()\n  event()\n}\n\nfunc add() {\n  fmt.Println(\"--- Please press ctrl + shift + q to stop hook ---\")\n  hook.Register(hook.KeyDown, []string{\"q\", \"ctrl\", \"shift\"}, func(e hook.Event) {\n    fmt.Println(\"ctrl-shift-q\")\n    hook.End()\n  })\n\n  fmt.Println(\"--- Please press w---\")\n  hook.Register(hook.KeyDown, []string{\"w\"}, func(e hook.Event) {\n    fmt.Println(\"w\")\n  })\n\n  s := hook.Start()\n  \u003C-hook.Process(s)\n}\n\nfunc low() {\n\tevChan := hook.Start()\n\tdefer hook.End()\n\n\tfor ev := range evChan {\n\t\tfmt.Println(\"hook: \", ev)\n\t}\n}\n\nfunc event() {\n  ok := hook.AddEvents(\"q\", \"ctrl\", \"shift\")\n  if ok {\n    fmt.Println(\"add events...\")\n  }\n\n  keve := hook.AddEvent(\"k\")\n  if keve {\n    fmt.Println(\"you press... \", \"k\")\n  }\n\n  mleft := hook.AddEvent(\"mleft\")\n  if mleft {\n    fmt.Println(\"you press... \", \"mouse left button\")\n  }\n}\n```\n\n#### [Window](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002Fexamples\u002Fwindow\u002Fmain.go)\n\n```Go\npackage main\n\nimport (\n  \"fmt\"\n\n  \"github.com\u002Fgo-vgo\u002Frobotgo\"\n)\n\nfunc main() {\n  fpid, err := robotgo.FindIds(\"Google\")\n  if err == nil {\n    fmt.Println(\"pids... \", fpid)\n\n    if len(fpid) > 0 {\n      robotgo.Type(\"Hi galaxy!\", fpid[0])\n      robotgo.KeyTap(\"a\", fpid[0], \"cmd\")\n\n      robotgo.KeyToggle(\"a\", fpid[0])\n      robotgo.KeyToggle(\"a\", fpid[0], \"up\")\n\n      robotgo.ActivePid(fpid[0])\n\n      robotgo.Kill(fpid[0])\n    }\n  }\n\n  robotgo.ActiveName(\"chrome\")\n\n  isExist, err := robotgo.PidExists(100)\n  if err == nil && isExist {\n    fmt.Println(\"pid exists is\", isExist)\n\n    robotgo.Kill(100)\n  }\n\n  abool := robotgo.Alert(\"test\", \"robotgo\")\n  if abool {\n \t  fmt.Println(\"ok@@@ \", \"ok\")\n  }\n\n  title := robotgo.GetTitle()\n  fmt.Println(\"title@@@ \", title)\n}\n```\n\n## Authors\n\n- [The author is Evans](https:\u002F\u002Fgithub.com\u002Fvcaesar)\n- [Maintainers](https:\u002F\u002Fgithub.com\u002Forgs\u002Fgo-vgo\u002Fpeople)\n\n## Plans\n\n- Refactor some C code to Go (such as x11, windows)\n- Better multiscreen support\n- Wayland support\n- Update Window Handle\n- Try to support Android and IOS\n\n## Contributors\n\n- See [contributors page](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fgraphs\u002Fcontributors) for full list of contributors.\n- See [Contribution Guidelines](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md).\n\n## License\n\nRobotgo is primarily distributed under the terms of \"the Apache License (Version 2.0)\", with portions covered by various BSD-like licenses.\n\nSee [LICENSE-APACHE](http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0), [LICENSE](https:\u002F\u002Fgithub.com\u002Fgo-vgo\u002Frobotgo\u002Fblob\u002Fmaster\u002FLICENSE).\n","RobotGo 是一个使用 Go 语言编写的跨平台桌面自动化工具，支持 RPA、GUI 自动化、自动测试和计算机操作。它能够控制鼠标和键盘、读取屏幕内容、处理进程及窗口句柄，并支持图像和位图处理以及全局事件监听。该项目采用 Apache License 2.0 许可证，适用于需要进行桌面级自动化任务的场景，如软件测试、数据录入等。其多平台兼容性（Mac、Windows、Linux）与对多种架构的支持（arm64 和 x86-amd64），使得 RobotGo 成为开发者实现高效且准确自动化工作的有力助手。","2026-06-11 03:02:08","top_language"]