Saccade icon

Native desktop control · local computer vision

Saccade

A keyboard-driven pointer system for macOS and Windows that combines captured pixels, accessibility data, and a compact local vision model to find and act on useful controls without uploading the screen.

macOS + Windows C++20 / C11 ABI offline operation

One action surface, four ways to find it.

Detection is a source, not the product boundary. Every source becomes the same immutable target scene, so hints, safe points, actions, and stale-work rejection behave consistently. Read the source contract.

Pixel

The local model finds visible controls directly from captured pixels.

Semantic

Native accessibility providers expose controls the operating system already understands.

Fused

Frame-matched visual and semantic targets merge into one deduplicated scene.

Grid

A deterministic fallback reaches any point when no detector owns the right answer.

More than a faster click.

Single, Dual, Multi, and Path selection feed one native action planner. Physical input, focus changes, permission loss, and stale scenes can cancel the plan before it reaches the operating system. Read the planner.

01

Move and hover

Target a safe point or place the pointer directly.

02

Click and repeat

Left, right, middle, double, modifiers, Multi, and Path.

03

Hold and release

Physical action state guarantees bounded cleanup.

04

Drag and drop

Two targets define source and destination.

05

Scroll

Vertical or horizontal, stepped or continuous.

06

Select text

Two safe points become a native range selection.

07

Navigate windows

Geometry, overlap, z-order, and visible-window hints.

08

Type

Bounded Unicode text through the validated input path.

Pixels stay on the accelerator until targets are compact.

ScreenCaptureKit or Windows Graphics Capture supplies native surfaces. Owned Metal and D3D12 kernels prepare the tensor and reduce model output before a bounded target packet crosses into CPU-visible scene state. Follow the buffer ownership.

No screenshot history. No cloud inference. No per-frame heap protocol. Superseded work is replaced by the newest unstarted frame.

Local target protocol

Capture, model, accessibility, and grid providers publish bounded target records with geometry, identity, capability bits, safe point, source, and frame, focus, transform, topology, permission, and session generations. Read the C11 records.

Compact hybrid merge

Visual and semantic records are matched by compatible generation context. The merge keeps the compact visual geometry, adds fresh semantic identity when available, and lets safety restrictions remove capabilities. Read the merge.

Resolve v0

Resolve v0 selects a candidate, preserves the planner coordinate, or abstains. A selected target reaches native input only after the action path checks its current generations. Optional local visual text must echo eight frame fields, then pass a byte-identical screenshot, app, process, display, and scope bracket.

Running code and open measurements.

Implemented, tested, measured, and open describe different states. The attended ordinary-application workflow has not run yet.

macOS neural path

measured

29.973 Hz full-scope cadence and 18.643 ms p95 on M5 Max, with no measured deadline misses.

benchmark

Windows neural path

tested

Current source passes a 300-frame D3D12 synthetic soak at 29.954 Hz. Live Windows Graphics Capture and high-refresh presentation remain unqualified.

benchmark

Metal 4 presentation

measured

119.810 Hz for 1,198 of 1,198 display-backed frames, with zero deadline or busy misses.

benchmark

Accessibility fusion

implemented

The bounded frame-matched merge is implemented. The 90% intended-target gate has not been measured.

source

Native actions

implemented

Planner, epoch preflight, cleanup, CGEvent, and SendInput paths exist. The attended cross-platform action matrix has not run.

source

Live fused coverage

target

Compact hybrid merge is implemented. No live intended-target result exists yet.

Agent task lift

target

The local target protocol is implemented. Paired agent task results are still open.

Release signing

target

Artifact fields are versioned. Production signing has not run.

Seeing and responding do not share a deadline.

Neural work is asynchronous and bounded by the selected screen scope. Interaction and overlay state continue independently, so a model pass cannot stall key reduction or pointer feedback.

30 Hzmeasured on M5 Max

Capture, preprocessing, inference, postprocessing, and scene publication run on bounded newest-frame work. A passing live Windows cadence run is still open.

120 Hzmeasured Metal 4 path

Metal presentation reached 119.810 Hz in a display-backed component run. Attended interaction at that rate has not run.

The fast path is useful because its ownership is explicit.

Saccade is C++20 behind versioned C11 headers. Capture, inference, accessibility, overlay, input, and agent services keep separate provider contracts and bounded handoff points. Read the ABI.

Thread-owned state

Static storage, fixed buffers, newest-frame mailboxes, and rare cold-path coordination keep hot loops away from shared ownership. Read the ownership model.

Generation-safe actions

Frame, focus, transform, topology, permission, and session epochs travel with targets and are checked again before input. Read the preflight.

Local agent surface

Structured target generations and bounded action batches reuse the same validation path without putting screenshots into the protocol. Read the protocol.