deniz.in

Markets

Weather

Loading weather

· via Hacker News – Front Page (native)

MIT-licensed macOS CLI bigarrow lets AI agents draw arrows and boxes on your screen

The open-source bigarrow CLI and agent skill lets Claude Code or Codex place click-through arrows, boxes and text on a Mac screen, flagging the dialogs and buttons that only a human should act on.

MIT-licensed macOS CLI bigarrow lets AI agents draw arrows and boxes on your screen

A small MIT-licensed project called bigarrow, currently on the front page of Hacker News, gives AI agents working on a Mac the ability to draw large arrows, boxes and text labels directly on the user's screen. Built by developer franzenzenhofer and hosted on GitHub, it is a single Swift binary plus an installable skill that teaches Claude Code and Codex how to use it.

A pointing channel for handoffs

According to the project's README, the motivating annoyance is familiar: an agent can restructure a codebase or write a migration, but the moment a macOS permission dialog or OAuth consent screen appears, its only recourse is to print "please click Allow" into a terminal the user may not be watching. bigarrow's answer is a command such as bigarrow point --element "Allow" --app "System Settings" --text "Click Allow", which places a large overlay arrow above everything else, aimed at the named control, and removes itself afterwards.

The overlay is click-through and never takes keyboard focus, works across every display, Space and full-screen app, and requires no system permission to draw, the README states. There is no daemon, menu-bar item, account or telemetry, and the binary contains no AI of its own; the intelligence stays in the agent that calls it.

The use cases listed cluster around moments that must remain human: two-factor codes, CAPTCHAs, passkeys, payment confirmations, signatures and legal checkboxes. The tool also covers disambiguation, with --window "Google Chrome:Pull request" singling out one window or even one browser tab, plus calling an absent user back to the desk via --say, which speaks the label aloud. Further scenarios include guided step-by-step setup walkthroughs, remote assistance, and highlighting during screencasts, with --png rendering an arrow straight into an image for documentation. A --dry-run -- mode reports where an arrow would point, which helps when debugging accessibility or screenshot coordinate systems.

The README is equally explicit about what it is not: not an annotation tool for humans, not a click bot, and not a screenshot utility. It never clicks, types or captures anything. It only points.

Install and control

Installation is via Homebrew (brew install franzenzenhofer/tap/bigarrow), followed by bigarrow install-skill, which writes skills into ~/.claude/skills for Claude Code and ~/.agents/skills for Codex. Building from source requires Xcode 16 and macOS 14 or newer.

Targets can be coordinates (--at X,Y), rectangles, the current mouse position, a window or tab by title, a labeled UI element within an app, or a Peekaboo element ID. By default the tool raises the target app first, on the grounds that pointing at a window buried behind a terminal helps nobody, and an arrow hides itself while another app covers its target, reappearing once it is visible again. Arrows expire on their own, with an eight-second default, and are tied to the process that drew them, so they vanish if the agent exits. Opt-in extras include a close button, --follow to track a moving window, and --until-click.

Every command accepts --, and exit codes distinguish bad input, a missing target and missing permissions, the kind of machine-readable contract agents handle well.

Permissions and focus

Drawing itself needs neither Screen Recording nor Accessibility, per the README. Element targeting and window raising use Accessibility, which macOS grants to the terminal application running the shell rather than to bigarrow itself; a doctor command identifies which app that is. Reading window titles reportedly requires Screen Recording on macOS 26, while targeting an app by name alone does not. The author describes keeping the overlay from stealing focus as the project's hardest bug, solved by pumping events manually, with tests asserting that the frontmost application never changes. Visual options include four arrow shapes, arrow, ring and box styles, a wide color palette, and multiple simultaneous arrows that keep their labels from overlapping.

Why it matters

As agents take on more real work on personal machines, the boundary between what they may do and what a human must confirm, such as consent, authentication, payment and legal agreement, is becoming an active coordination problem. bigarrow proposes a deliberately narrow channel across that boundary: the agent can direct attention but not act, keeping the human genuinely in the loop. Its design also reads as a small template for agent-facing tooling, with self-cleaning output, JSON everywhere, meaningful exit codes and explicit permission diagnostics. Whether or not giant zigzag arrows become standard equipment, the underlying idea of agents gesturing at the GUI instead of manipulating it is likely to spread.

  • #macos
  • #ai-agents
  • #cli
  • #open-source
  • #developer-tools

Related posts