Gridhand
Rust CLI, které umožňuje agentovi klikat na desktopová GUI pojmenováním označené mřížky místo hádání pixelových souřadnic.
Funguje s nastavením
Co umí
Nulově závislé, multiplatformní (macOS/Linux/Windows) CLI pro automatizaci desktopu: snímek obrazovky, seznam/zobrazení oken, kliknutí, psaní a kombinace kláves, vše JSON vstup/výstup. Nikdy nečte strom přístupnosti OS — překrývá označenou mřížku s křížkem na surovém snímku obrazovky a vy zoomujete/klikáte podle názvu buňky, takže také pohání UI canvas/WebGL/her, které nástroje stromu přístupnosti nevidí. Spouští se, když agent potřebuje vidět obrazovku nebo kliknout/napsat do jakékoli desktopové aplikace.
Testovací report
Skutečný Rust binární soubor o ~9 100 řádcích bez závislostí (ověřeno: prázdný Cargo.toml deps, Cargo.lock má přesně 1 položku, žádné odkazy na AT-SPI/AXUIElement/UIAutomation ve zdrojovém kódu) implementující skutečné snímání obrazovky/vstup na úrovni OS přes CoreGraphics/uinput/user32 — ne zástupný symbol. Ale potřebuje Rust toolchain (nebo důvěryhodný předkompilovaný binární soubor) plus udělení oprávnění OS (macOS Přístupnost+Nahrávání obrazovky, Linux udev/input-group přes sudo), než se spustí jediný příkaz, a tento sandbox neměl ani cargo, ani udělitelná oprávnění OS, takže skutečná přesnost kliknutí metodou mřížky nemohla být ověřena od začátku do konce.
Testováno: 2026-07-16 · Claude Code 2.x (agent harness)
Instalace
git clone https://github.com/ZachRouan/agent-desktop-interface.git cd agent-desktop-interface && ./setup.sh # builds the gridhand binary + platform permissions mkdir -p ~/.claude/skills/gridhand && cp skills/gridhand/SKILL.md ~/.claude/skills/gridhand/SKILL.md
Příkazy a ukázkové prompty
/gridhandRust CLI, které umožňuje agentovi klikat na desktopová GUI pojmenováním označené mřížky místo hádání pixelových souřadnic.
Skilly se spouštějí běžnými požadavky — žádné příkazy k zapamatování. Po instalaci ho aktivují prompty jako tyto (anglicky):
Take a screenshot of my desktop and click the labeled grid cellAutomate clicking inside this game's canvas UI for meType this text into that desktop app window for me