Clicky: The macOS AI Assistant That Points at Your Screen

A native Swift app, a thin Cloudflare proxy, and a tiny coordinate language turn Claude into a spatial tutor that follows your cursor instead of hiding in a sidebar.

9 min read • View on GitHub • More from farzaa

A wide macOS desktop scene with a floating assistant near the cursor, hovering over several app windows instead of living in a sidebar. A thin path suggests the assistant is literally guiding the pointer toward a UI target, making the desktop feel like a shared workspace. It explains Clicky as a spatial layer, not a chat panel.
Clicky’s core trick is simple to describe and weird to see. The assistant does not sit beside the work. It enters the work surface itself.
Key Takeaways

The Cursor Is the Interface

Clicky’s strange little breakthrough is that it does not ask you to move into a chat window. It brings the assistant to the place where the decision is happening: the cursor, the highlighted button, the active monitor. That changes the product from a question-answer box into a spatial layer over the desktop.

The signature move is a response format like [POINT:x,y:label:screenN]. That tag turns a model output into something the app can map back onto a real screen. Instead of saying, “click the export button,” Clicky can physically point at it. The effect is subtle but huge. The model stops feeling abstract and starts feeling present.

A blue cursor overlay can fly to and point at UI elements Claude references on any connected monitor.

farzaa, Project Author/Maintainer · Clicky - Agent Instructions

The point tag is not decorative. It is the bridge between language and motion, and it is why Clicky feels like a tutor instead of a chatbot.

Why the Desktop Needs a Different Kind of AI

Most AI assistants still treat the desktop like a place to observe from a distance. You paste text, get an answer, and then do the translation yourself. Clicky is built around the opposite idea: the assistant should stay inside the workflow long enough to help with the next click, not just the next sentence.

Chat sidebar assistantClicky
Lives beside the workLives on top of the work
Explains what to doPoints at what to do
Mostly text-firstText plus cursor-level action
Detached from monitor layoutAware of multiple screens and coordinates
Feels like a support tabFeels like a desktop tutor

That difference matters because desktop work is physical. Windows overlap, screens multiply, dialogs hide behind apps, and intent gets lost in translation. Clicky’s job is to reduce that translation cost. It is less a replacement for help docs and more a temporary visual guide.

A split-scene comparison of two desktop assistants. On one side, a chat window floats off to the side while the actual app remains untouched. On the other, a cursor-following assistant sits directly over the active application and points at the exact control the user needs. It explains the shift from sidebar help to spatial guidance.
The comparison is the whole thesis. Clicky is solving a different problem than the usual sidebar assistant.

How Clicky Sees the Screen Without Tripping Over Itself

The screen capture layer is where the project stops being a clever interface idea and becomes a real system. Clicky uses ScreenCaptureKit, which gives it modern multi-monitor capture without falling back to older, slower image-grab APIs. That matters because the assistant has to understand the whole desktop, not a cropped fragment of it.

The tricky part is recursion. If the app captures its own overlay windows, the model can end up seeing itself and chasing its own tail. Clicky filters out its own windows, then maps the captured coordinates back into AppKit space so the cursor can land on the right display, at the right place, with the right origin math.

ProblemWhy it mattersClicky’s approach
Multiple monitorsThe same pixel address can mean different things on different displaysTag responses with screenN and map into the correct display frame
Self-observationThe assistant can hallucinate around its own overlayExclude own windows from capture
Coordinate mismatchVision coordinates and AppKit coordinates do not match by defaultNormalize and remap before cursor motion
LatencyLag makes the tutor feel fakeUse modern screen capture and lightweight overlays

Lives entirely in the macOS status bar (no dock icon, no main window). Clicking the menu bar icon opens a custom floating panel with companion voice controls.

farzaa, Project Author/Maintainer · Clicky - Agent Instructions

The State Machine Behind the Tutor Feeling

Clicky’s coherence comes from a manager object that keeps the app’s voice and overlay behavior in sync. The assistant is not just “listening” or “talking.” It moves through states like idle, listening, processing, and responding, with shared audio and UI updates flowing through one place.

enum CompanionVoiceState {
    case idle
    case listening
    case processing
    case responding
}

final class CompanionManager: ObservableObject {
    @Published var state: CompanionVoiceState = .idle
    @Published var currentAudioPowerLevel: Float = 0

    func startListening() {
        state = .listening
    }

    func startProcessing() {
        state = .processing
    }

    func startResponding() {
        state = .responding
    }
}