{"repo":"ZachRouan/gridhand","free":true,"listed":false,"github":"https://github.com/ZachRouan/gridhand","clone":"git clone https://github.com/ZachRouan/gridhand.git","description":"Zero-dependency Rust CLI for cross-platform GUI automation. Screenshots, window management, mouse, keyboard. JSON-in/JSON-out. Built for AI agents.","language":"Rust","stars":15,"topics":["ai-agents","automation","claude","cli","computer-use","cross-platform","desktop-automation","gnome","gui-automation","llm"],"license":"MIT","category":"ai-agents","readme_excerpt":"gridhand Formerly published as gui-tool / agent-desktop-interface . Let an AI agent click any desktop app by naming a grid cell — not guessing pixels. A cross-platform Rust CLI for GUI automation: screenshots, window management, mouse and keyboard control, strict JSON in / JSON out. Zero dependencies — no crates, one small binary, direct OS APIs. Real gridhand output — orient to a labeled grid → zoom into a cell → click the crosshair → verify. --- Built for AI desktop agents (Claude Code, Codex, Gemini CLI, and friends), but it works fine as a general-purpose GUI automation tool. Why it's different: agents are bad at guessing pixel coordinates from a screenshot, and every other automation tool makes them try. gridhand removes pixels entirely — it overlays a labeled grid with a crosshair at each cell's center, the agent names a cell, and the click lands exactly on that crosshair. Need more precision? Zoom into the cell for a sub-grid and name a sub-cell ( C7.F3 ). It's the whole workflow in one line: orient → zoom → click → verify. It sees pixels, not an accessibility tree. Most desktop-automation tools for agents find elements by reading the OS accessibility tree — which only helps when that tree exists , is complete , and is correct . gridhand never touches it. It works from the actual rendered screen, so it drives what tree-based tools can't see: games, / WebGL apps, Flutter and other custom-drawn UIs, remote desktops and VNC, video, and any app with missing, mislabeled, or","default_branch":null,"files":null,"tree":[],"storefront":"/r/ZachRouan","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ZachRouan/gridhand/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}