← Reddit

I built gui-tool — a zero-dependency CLI that gives Claude Code control of the desktop (screenshots, clicking, keyboard). Free, MIT.

Reddit · AnotherProgrammer42 · July 5, 2026
I've been building gui-tool, a small open-source CLI that gives Claude Code hands on a real desktop — screenshots, list/raise windows, mouse, keyboard — all JSON in / JSON out so the agent can drive a GUI. I made it for my own Claude Code setup because I kept

Detailed Analysis

A developer has released gui-tool, an open-source command-line utility designed to extend Claude Code's capabilities beyond file manipulation and into direct control of a graphical desktop environment. Distributed under the MIT license, the tool allows Claude to take screenshots, enumerate and raise application windows, and issue mouse and keyboard commands through a JSON-based interface. It integrates with Claude Code via the Agent Skills framework, meaning users simply drop a SKILL.md file into their `~/.claude/skills` directory for the assistant to recognize and use the new capability, with a plugin version also in development for the community marketplace. This positions the project as part of a growing ecosystem of community-built extensions that push Claude Code from a coding assistant toward a more general-purpose computer-operating agent.

The most notable technical design choice is how the tool solves the classic "where do I click" problem for vision-based AI agents. Rather than asking Claude to output raw pixel coordinates — a notoriously unreliable approach for language models, which struggle with precise spatial reasoning — gui-tool overlays a labeled grid (A1, B2, etc.) on each screenshot, with a crosshair marking the center of every cell. Claude simply names a cell, and the tool translates that label into an exact click location. For interfaces requiring finer precision, the tool supports recursive zooming into sub-grids, letting Claude narrow down a target through hierarchical labels like "B2.C1." Because this method relies entirely on pixel-level screenshots rather than parsing an accessibility tree, it works uniformly across traditional desktop applications, canvas- and WebGL-based interfaces, games, and other custom-rendered UIs that typically defeat accessibility-based automation tools.

Two engineering details stand out as differentiators from typical developer tooling. First, gui-tool is built with zero external dependencies — the author hand-wrote a PNG encoder, a D-Bus client for interacting with Wayland desktop portals, and a JSON parser from scratch rather than pulling in existing libraries. This is an unusual and labor-intensive choice that reduces supply-chain risk and installation friction, though it comes at the cost of reinventing well-trodden wheels. Second, the tool specifically targets GNOME/Wayland environments on Linux, a platform where legacy automation tools like xdotool and pyautogui — both built for the older X11 windowing system — frequently fail or behave unpredictably. By building native Wayland portal support, the project fills a real gap for Linux users who want to automate GUI interactions in a modern desktop session.

This release fits into a broader and rapidly accelerating trend of "computer use" agents, an area Anthropic itself has invested in directly through Claude's native computer-use API capabilities, which allow the model to view screenshots and generate coordinate-based actions. Community tools like gui-tool represent a parallel, grassroots layer of innovation built on top of Claude Code's extensibility (via Agent Skills and plugins), often solving practical reliability problems — like imprecise click targeting — through creative interface design rather than waiting for model-level improvements. The grid-and-zoom labeling scheme is a pragmatic workaround for a known weakness of vision-language models attempting spatial precision, and similar labeling or set-of-marks techniques have appeared in academic and industry research on GUI agents more broadly. The existence of such tools signals growing developer appetite to use Claude not just as a code generator but as an autonomous operator of full desktop environments, blurring the line between "coding assistant" and general computer-use agent, and foreshadowing further tooling investment in this space as agentic workflows mature.

Read original article →