The field

Mac AI agents that see your screen and run tasks.

A screen-aware Mac agent combines a way to observe the current interface, a reasoning model, permitted actions, and a visible safety boundary. Similar demos can hide sharp differences in where screenshots go, whether inference is local, whether the agent waits for a prompt or watches continuously, and whether actions need approval.

This comparison covers 17 current macOS agents across on-device, hybrid, and cloud-backed postures. It links to each product's source or site, describes what it does well, and says where Pace is behind. It does not assign review scores or declare a universal winner.

How to choose a screen-aware Mac agent

  1. Follow the data path. A local app can still send screenshots, transcripts, or prompts to a provider API.
  2. Separate observation from action. Region capture, full-screen capture, and the Accessibility tree expose different data and permissions.
  3. Check the control model. Push-to-talk, hotword, proactive watching, scheduled work, and remote commands have different interruption and safety tradeoffs.
  4. Inspect approval and recovery. Look for action previews, permission tiers, audit records, undo, and a reliable stop path.
  5. Check distribution reality. License, signed releases, supported macOS versions, API-key requirements, and update paths matter beyond the demo.

The field splits three ways. Cloud agents round-trip every turn through someone else's servers. Hybrid ones default local but let you opt into cloud. On-device ones — the cluster Pace lives in — never leave your machine.

Cloud

4 products

Every turn hits someone else's data center. Fast to ship, costs per turn, needs an account.

Native macOS voice assistant next to your cursor, powered by OpenAI Realtime API. — cursorvoice

STT · OpenAI Realtime API Reasoner · OpenAI Realtime API (gpt-realtime) TTS · OpenAI Realtime API (built-in voices) Screen · yes

What it's good at

  • Barge-in with echo rejection — interrupt the AI mid-response by talking over it.
  • On-device wake word ("Hey Cursor") via SFSpeechRecognizer, then cloud Realtime API for the conversation.
  • Built-in web_search tool without requiring an API key.

Where Pace differs

Pace is fully on-device; Cursor Voice round-trips every turn through OpenAI's Realtime API. Cursor Voice has barge-in and wake word — both things Pace lacks. Pace wins on privacy and zero per-turn cost.

Full comparison — Pace vs Cursor Voice

Voice-first AI companion — wake-word activated, sees screen, hears system audio, writes plugins. — sambuild04

STT · OpenAI Realtime API Reasoner · OpenAI Realtime API + GPT-5.5 (plugin generation) + GPT-4o Vision TTS · OpenAI Realtime API Screen · yes

What it's good at

  • Self-modifying — writes and hot-loads its own plugins at runtime using GPT-5.5.
  • Auto-repair — detects plugin failures and patches code automatically (up to 2 attempts).
  • Hears system audio via ScreenCaptureKit with PID-level filtering, not just microphone.

Where Pace differs

Samuel's self-modifying plugin system and system-audio listening are genuinely novel — Pace has neither. But Samuel is fully cloud (OpenAI APIs). Pace is fully on-device. The plugin auto-repair loop is the most interesting idea here.

Full comparison — Pace vs Samuel

Autonomous macOS desktop agent powered by Claude vision. — cyclop-one

STT · Local speech recognition Reasoner · Claude API multimodal vision TTS · Not documented Screen · yes

What it's good at

  • ScreenCaptureKit observation with desktop clicking, typing, dragging, scrolling, and keyboard actions.
  • Markdown skills and a JSON-over-stdio plugin protocol.
  • Persistent procedural memory plus remote-control integrations.

Where Pace differs

Pace runs its default reasoning and vision stack on-device; Cyclop One requires the Claude API but has a more explicit plugin and remote-control architecture.

Full comparison — Pace vs Cyclop One

Peepbox

peepbox.ai

AI agents that see your screen and take action. — Peepbox

STT · Not documented Reasoner · Anthropic Claude, OpenAI, or Google Gemini TTS · Not documented Screen · yes

What it's good at

  • Window- or region-scoped watchers configured in plain English.
  • Persistent monitoring for forms, dashboards, messages, and data extraction.
  • Multi-agent chains in which one Peep can notify another.

Where Pace differs

Peepbox is built for unattended region watching and multi-agent workflows; Pace is voice-first, local by default, and uses a narrower synchronous approval loop.

Full comparison — Pace vs Peepbox

Hybrid

7 products

Local by default, cloud when you ask for it. The middle path — flexible, but the privacy posture depends on which tier you picked.

Native macOS assistant — sees, hears, remembers your projects. — section9-lab

STT · Speech framework (on-device) Reasoner · Any OpenAI-compatible / Ollama / LM Studio TTS · Local Screen · yes

What it's good at

  • Per-project SwiftData memory — conversations scoped to the project you're working in.
  • JSONL session logs that are diffable and greppable.
  • Vision framework OCR on-device; security-scoped bookmarks for sandboxed file access.
  • Tool calls are visible in chat before they run.

Where Pace differs

Pace's memory is conversation-wide two-tier (verbatim K=4 + rolling summary) with cross-quit persistence. Impulse's is per-project SwiftData. Pace adds actions, MCP, and a tier picker; Impulse is more focused on project-scoped chat.

Full comparison — Pace vs Impulse

18 LLM providers, hotword-anchored, free on Apple Intelligence. — macOS26 / Todd Bruss

STT · SFSpeechRecognizer hotword Reasoner · 18 providers (Claude / GPT / Gemini / Grok / … / Apple FM / Ollama / vLLM / LM Studio) TTS · Local Screen · yes

What it's good at

  • Hotword-anchored dictation — say "Agent!" from across the room, hands-free.
  • 18 LLM providers wired in, BYO key, free forever on Apple Intelligence.
  • Apple AI as a real tool-calling agent — multi-step local tool calls, falls through to cloud only on failure.

Where Pace differs

Pace is push-to-talk only (no hotword) and ships a tighter on-device default. Agent! wins on hands-free wake and provider breadth; Pace wins on trust surfaces, memory design, and the on-device-first posture being the default rather than one of 18 options.

Full comparison — Pace vs Agent! (macOS26)

Free AI voice assistant — talk to your Mac, watch it work. — stevederico

STT · Local (MLX-based) Reasoner · Local MLX (3,800+ models) or cloud (OpenAI / Anthropic / xAI / Ollama) TTS · MLX Kokoro with premium AI voices Screen · yes

What it's good at

  • 134 built-in system tools for email, calendar, iMessage, music, and files.
  • Bundled inference stack with zero external dependencies — local Agent API on localhost.
  • "Hey Dottie" wake word + hold-to-dictate (Fn key).

Where Pace differs

Dottie ships 134 tools and a wake word — both ahead of Pace. The desktop app source is not public (only the dotbot SDK engine is MIT). Pace is fully open source with a tier picker and trust surfaces Dottie doesn't surface.

Full comparison — Pace vs Dottie

The fastest AI computer agent — controls your browser, writes code, handles documents. — mediar-ai

STT · Deepgram Nova-3 (streaming WebSocket) Reasoner · Claude (via ACP bridge) TTS · Deepgram Aura (7 languages) Screen · yes

What it's good at

  • Controls 300+ macOS apps via the Accessibility API — not screenshots, the structured UI tree.
  • Multi-language architecture: Swift desktop + TypeScript ACP bridge + Rust backend.
  • Real Chrome session automation — Gmail, Drive, Docs, Sheets, Calendar, WhatsApp.

Where Pace differs

Fazm uses the Accessibility API for screen understanding (more reliable, more token-efficient than Pace's VLM-screenshot approach). But Fazm's STT and TTS go through Deepgram's cloud despite 'local' marketing. Pace is fully on-device, including speech.

Full comparison — Pace vs Fazm

Local-first autonomous agent — watches screen, spawns parallel sub-agents, MCP ecosystem. — abhisheksharma001

STT · Deepgram Nova-3 (meeting mode) Reasoner · Local-first (LM Studio / Ollama) with Claude fallback TTS · Local Screen · yes

What it's good at

  • Parallel sub-agents with atomic SQL checkout, persona injection, depth & budget guards.
  • Hybrid RAG using sqlite-vec + FTS5 in one SQLite file — live knowledge graph updates on every tool call.
  • Meeting mode with ScreenCaptureKit audio capture + live action item extraction.

Where Pace differs

Shiro's parallel sub-agents and hybrid RAG knowledge graph are architecturally beyond Pace's single-thread agent loop. Pace has the tier picker, trust surfaces, and recipe library Shiro doesn't ship. Shiro's meeting mode is a surface Pace could add.

Full comparison — Pace vs Shiro

A local-first proactive AI companion for macOS. — athatheo

STT · Local speech models Reasoner · Local Ollama or GitHub Copilot cloud TTS · Local speech models Screen · yes

What it's good at

  • Periodic screen observation tied to durable local memory and goals.
  • Proactive outreach with configurable cooldown and engagement awareness.
  • Read-only file tools, MCP integration, and a user-editable personality.

Where Pace differs

BoBe centers on proactive observation and goals; Pace centers on push-to-talk, screen-referential requests, local approval, and a compact menu-bar surface.

Full comparison — Pace vs BoBe

Personal memory for Claude that closes open loops on Mac. — Shram / projectminimi.com

STT · Ambient capture (not push-to-talk STT) Reasoner · Claude (via MCP / custom connector) TTS · Claude side (not a local TTS loop) Screen · yes

What it's good at

  • Ambient Mac capture across tabs, documents, calls, and chat threads for later recall.
  • Exposes captured memory to Claude through an MCP / custom connector link.
  • Positions itself as personal memory you own, with a local vector store claim on device.
  • Strong for “what did I read / decide / leave open” retrieval inside Claude workflows.

Where Pace differs

Minimi is ambient memory for Claude, not a local voice agent loop. Pace is push-to-talk, screen-referential actions, and local models by default—without routing your agent loop through Claude. Minimi’s paid plan uses Gemini embeddings, so it is not pure local-only; Pace keeps the default path on-device.

Full comparison — Pace vs Project Minimi

On-device

6 products

Fully local. The cluster Pace lives in. Zero bytes off the machine, zero per-turn cost, works on a plane.

Privacy-first macOS voice assistant, on-device AI. — benedict2310

STT · Parakeet (local) Reasoner · MLX + Qwen 3.5 VL TTS · Kokoro Screen · yes

What it's good at

  • Closest philosophical twin to Pace — fully local pipeline: Parakeet ASR → MLX Qwen 3.5 VL → Kokoro TTS.
  • Streaming pipeline with live transcription, streaming LLM tokens, and early TTS start.
  • Agentic tools across Calendar, Reminders, Contacts, Mail, Messages, Notes, and System.
  • Sparkle auto-updates and a downloadable release.

Where Pace differs

Pace adds a tier picker (Local / CLI bridge / Direct API / Apple FM) with byte-identical persona across tiers, visible-undo trust surfaces, and two-tier thread memory that survives quit/relaunch. Ora is single-tier local.

Full comparison — Pace vs Ora

Voice-first AI agent for macOS that actually runs locally. — fspecii / @AmbsdOP

STT · On-device (Option+Space) Reasoner · MLX (Qwen / Mistral) TTS · Local Screen · yes

What it's good at

  • Cron jobs — schedule tasks with `daily@09:00`, `every:30m`, `once:ISO8601`.
  • Proactive alerts pushed to Telegram, Discord, and Slack.
  • Music generation via ACE-Step and YouTube spoken summaries.
  • Skill system that extends the agent to anything.

Where Pace differs

Pace has MCP integration, a recipe library, and passive time-understanding journals (screen watch + app usage). OpenFelix leans into scheduled + proactive surfaces Pace doesn't ship yet.

Full comparison — Pace vs OpenFelix

Fully on-device voice agent — hears, sees, operates your Mac. — settylokesh

STT · Moonshine (ONNX Runtime) Reasoner · Gemma 4 E4B (4-bit, MLX) TTS · Local Screen · yes

What it's good at

  • Structured JSON action plans emitted by the VLM — explicit plan-then-execute loop.
  • ONNX Runtime + MLX dual runtime — Moonshine for ASR, MLX for the VLM.
  • Glow border around the screen to signal listening / planning / executing phases.

Where Pace differs

Pace uses a heavier qwen3-30b-a3b reasoner with a tier picker and trust surfaces. ORB is leaner and more single-purpose. Note: ORB has no license file yet, so it's effectively all-rights-reserved.

Full comparison — Pace vs ORB

The first local AI that actually does things on your Mac — no cloud, no subscription. — vox-ai-app

STT · Local (via llama.cpp) Reasoner · Local (llama.cpp) TTS · Local Screen · yes

What it's good at

  • 48 built-in tools for email, iMessage, file management, and screen control.
  • Passphrase mode — text your Mac from any phone and get AI responses.
  • MCP client with stdio, SSE, and HTTP support + wake word with barge-in.

Where Pace differs

Vox is a true on-device peer to Pace with 48 tools and a passphrase mode Pace doesn't have. Pace has the tier picker, two-tier thread memory, recipe library, and watch mode that Vox doesn't ship. Both are MIT and fully local.

Full comparison — Pace vs Vox

Talk to your Mac, query your docs — on-device voice AI + RAG, no cloud required. — RunanywhereAI

STT · Local — Zipformer (streaming), Whisper base.en, Parakeet TDT 0.6B Reasoner · Local — Qwen3 0.6B/4B, Llama 3.2 3B, LFM2.5 1.2B (MetalRT or llama.cpp) TTS · Local — Piper, KittenTTS, Matcha, Kokoro (28 voices) Screen · yes

What it's good at

  • Sub-200ms end-to-end voice latency via proprietary MetalRT GPU engine (up to 550 tok/s).
  • Local RAG over documents with hybrid vector + BM25 retrieval.
  • 20+ models across LLM, STT, TTS, VLM, VAD, and embeddings — all on-device.

Where Pace differs

RCLI's MetalRT engine hits sub-200ms latency and 550 tok/s — a serious performance benchmark Pace should measure against. RCLI has local RAG Pace doesn't ship. Pace has the tier picker, trust surfaces, and MCP integration RCLI lacks. 1,523 stars — the most-trafficked on-device competitor.

Full comparison — Pace vs RCLI

Local AI assistant that lives in your MacBook's notch — chat, vision, file agent, all on-device. — arshawnarbabi

STT · None (text and image input only) Reasoner · Local (Ollama — user selects model) TTS · None (text output only) Screen · yes

What it's good at

  • Lives in the MacBook notch — hover to open, type to ask, then disappears. No window management.
  • Autonomous file-system Agent Mode with approval workflow.
  • Optional Brave Search with 3-layer hybrid classifier for automatic web search.

Where Pace differs

LocalNotch shares Pace's notch surface but is text/image only — no voice input or TTS. It's a different interaction model. Pace is voice-first; LocalNotch is hover-and-type. The notch integration pattern is worth studying.

Full comparison — Pace vs LocalNotch

The honest part

Where Pace is behind, not ahead.

No hotword. OpenFelix, Ora, Agent!, Cursor Voice, Dottie, and Vox all have wake-word or hotkey hands-free activation. Pace is push-to-talk only. That's a real gap — hands-free is a feature people actually want, and Pace doesn't have it yet.

No background agents. Shiro spawns parallel sub-agents with depth and budget guards. Pace's agent mode is synchronous: it does the thing, then hands back control. Background execution is on the roadmap, not in the shipping product.

Smaller VLM. Pace uses a 2B screen-referential model. Ora runs Qwen 3.5 VL, ORB runs Gemma 4 E4B — both heavier and likely more accurate on dense screens. A "phone-a-friend" OCR tier for the heavy cases is the planned answer, not a shipping one.

Accessibility API for screen understanding. Fazm reads the structured AXUIElement tree instead of screenshotting — more reliable and more token-efficient than Pace's VLM-screenshot approach. Pace's VLM is more flexible (it can describe what it sees), but Fazm's approach is worth studying as a complement.

Latency. RCLI's proprietary MetalRT engine hits sub-200ms end-to-end voice latency and 550 tok/s. Pace hasn't published comparable benchmarks. This is the most-trafficked on-device competitor (1,523 stars) and sets the bar Pace should measure against.

Distribution. Ora and OpenFelix ship signed DMGs with Sparkle auto-updates. Pace now has a signed-DMG release path in the script (set PACE_DEVELOPER_ID + PACE_NOTARY_PROFILE), but no signed DMG has shipped yet — current releases are ad-hoc zips.

Scheduled + proactive surfaces. OpenFelix ships cron jobs and Telegram/Discord/Slack proactive alerts. Pace has the restraint-gated morning brief and watch mode, but the outbound-notification surface is narrower.

Self-modifying plugins. Samuel writes and hot-loads its own plugins at runtime, then auto-repairs them on failure. Pace's tool registry is static at launch. The self-repair loop is the most interesting idea here — Pace's recipe library is a fixed-catalog version of what Samuel does dynamically.

Rechecked August 2026.
If anyone shipped something I missed or got cheaper since, email me and I'll update this page.

The rest of the pitch — what Pace actually does — is on the landing page.

See Pace

Comparing privacy claims? Start with the on-device architecture guide and the typed action boundary.