A macOS tool that lets a coding agent draw a big arrow on your screen
bigarrow is a small Swift CLI and agent skill that points at windows and buttons with arrows, boxes, and signs. It never clicks, types, or captures.
Most work on desktop agents is about getting the model to click things for you. big-arrow-on-the-screen, by franzenzenhofer, goes the other way. It gives the agent a way to point at the thing and leaves the clicking to you.
The tool is a macOS command called bigarrow, plus a skill for Claude Code and Codex. It draws arrows, rings, boxes, and text signs over your other windows. According to the README, it never clicks, types, or captures the screen.
How it works
It is a single Swift binary with no daemon and no menu bar icon. The README says it draws into one transparent window at screen-saver level, across displays and Spaces, and animates the pulse with Core Animation. Clicks pass straight through the overlay, except on the sign and the arrow’s shaft, where a click dismisses it.
Two details separate this from a toy.
The first is focus. An overlay that grabs the keyboard every time an agent points would be unusable. The README says bigarrow runs its own event pump instead of the standard NSApplication.run(), so it does not take keyboard focus.
The second is cleanup. An arrow left over from a finished session is clutter, so arrows are tied to the process that drew them. The tool reads CLAUDE_PID or BIGARROW_OWNER_PID and removes the arrow when that process exits. There is also a stop --hook mode meant to run as a Claude Code UserPromptSubmit hook, which clears the session’s arrows when you send your next message.
Targets can be raw coordinates, the mouse position, a window, or a UI element found through the Accessibility API. It can also take a snapshot from Peekaboo, and pick out a Chrome or Safari tab by title.
The CLI is built for a caller that cannot see. A --json flag and distinct exit codes (2 for bad input, 3 for target not found, 4 for a missing permission) tell the agent what went wrong, and there is a --dry-run. As the README puts it: “Agents love exit codes. Humans tolerate them.”
In the Hacker News thread, the author says the arrows look casual on purpose. Earlier versions looked too professional and lost the feel they were going for.
What is still rough
The README lists the limits. Finding elements inside Chrome web pages needs Chrome started with --force-renderer-accessibility, or VoiceOver running. On macOS 26, matching windows by title needs Screen Recording permission. Permissions go to the terminal or app hosting the agent, not to bigarrow, which the README admits is confusing.
Try it yourself
The repo is MIT licensed and macOS only. The README offers a Homebrew tap, or a source build that needs Xcode 16 or later and macOS 14 or later. Drawing needs no permission; element lookup needs Accessibility. bigarrow install-skill installs the agent skill.
We have not run this ourselves; this is based on the README and the author’s comments on Hacker News.