Atticus: A macOS Hold-to-Talk Voice Assistant That Runs on Your Claude Pro or Max Plan
Atticus is a free, open-source macOS voice assistant that requires no API key: it runs on the Claude Pro or Max subscription you already have by shelling out to Claude Code's claude -p mode. Its distinguishing design choice is that repeated actions are learned as AI-free shortcuts, so common requests like opening an app or arranging windows execute locally in a fraction of a second at zero marginal cost.
The project was posted to Hacker News as a Show HN by author SaarthRanka, where it reached 114 points and 25 comments. The repository is at github.com/SaarthurR/atticus-mac and is MIT licensed.
What Atticus does
Atticus is triggered by holding ⌃ Control + ⌥ Option + Space, speaking a request, and releasing. It can move windows, find files, read the screen, control apps, play music, and type replies into the app you are currently using.
The README lists representative requests and the corresponding behavior:
- "Code on my big screen, Chrome and Terminal on the laptop." — arranges three windows across two displays.
- "Open Spotify." or "Terminal on the left." — runs instantly with no AI involved.
- "Find my notes about the Tokyo trip." — searches files by content and opens the match on another screen.
- "What's wrong with this code?" — reads the screen and answers.
- "Summarize this article in three bullets." — reads the page.
- "Reply: sounds good, see you at 7." — types the text into the active app but never sends it.
- "When I say focus mode, close Slack and open my to-do list." — saves the phrase as a reusable rule.
Atticus can also click inside arbitrary apps using Peekaboo, which the README lists as an optional dependency.
Atticus runs on Claude Code rather than an API key
Atticus does not require an Anthropic API key. It uses the Claude Pro or Max plan the user already pays for, routed through Claude Code's claude -p non-interactive mode. The README states there is nothing to sign up for and no additional bill.
The README quantifies the cost as roughly 0.14¢ of plan usage per ask, which it describes as about 700 asks for $1 at API list rates. Atticus itself is free.
A commenter on Hacker News pointed to a way to verify that cost figure independently. User @aidiveyt wrote:
If you want to back the fraction-of-a-cent number,
claude -p --output-format jsonreturnstotal_cost_usdwith a per-model breakdown. Per the docs it is a client-side estimate, so it can drift from the bill, but it is enough to log cost per replayed task.
Learned shortcuts make repeated actions free and fast
Atticus's core performance claim is that simple requests skip the AI entirely. Opening an app takes 0.08 seconds. Actions requested once — opening apps, moving windows, playing music — become learned shortcuts, so the second request runs without any model call.
The README gives one measured example: "Open Calculator and Chess" went from 5.5 seconds to 0.4 seconds after the shortcut was learned.
This raises a maintenance question that commenter @joertemple raised:
Clever to record-once and replay without AI. How do you notice when a saved shortcut has gone stale? If app update moves button or change other UI elements, maybe some new alert dialog? Does it detect failure and put it back to claude to record it again?
The scraped source material does not include an author response to that question, so the staleness-detection behavior is not documented in the material available here.
Memory and personalization
Atticus persists facts and rules across sessions. Saying "remember…" stores a fact that is included with every subsequent ask. The README states that Atticus picks up the user's name and apps automatically, and that when the user corrects a mistake, it saves a rule so the same mistake is not repeated. All stored memory and rules are editable in Settings.
An example rule from the README is "Remember: open means bring it to the front." Saved rules are attached to every ask.
Privacy: on-device speech, opt-out telemetry
Voice transcription runs through Apple's on-device speech recognition, so audio never leaves the Mac. The README states that Apple's final transcript confirms each voice request before AI tools or learned shortcuts run.
Atticus sends one anonymous usage ping per day to PostHog. The README says the ID is generated on the Mac and is not tied to the user, and that it never sends the user's name, asks, or screen contents. It can be disabled in Settings → Account & Access → "Count me as a user." The contributing section states that anonymous telemetry is disabled unless ATTICUS_POSTHOG_KEY is supplied through the environment, and that no key is embedded in the source.
Privacy was the main concern raised in the comments. User @car wrote:
This looks and works great, super impressed. This is what Siri/Apple AI should be like. One concern I have is about sending private info to Anthropic. So it would be great to have the option to use local AI. Local options should support the OpenAI API that seemingly is the standard for these connections, as provided by Llama.app and Unsloth Studio for example. That way one could run against a local model and keep personal information private. That of course begs the question if a local model is smart enough for the tasks at hand. I'm also trying out OOMU, a similar but closed source personal assistant app for MacOS. It emphasizes privacy with local models, and even has an 'Airplane' mode. The app has a built in llama.cpp server and uses Gemma-4-4B, their own router model plus a vision model.
Safety defaults
Atticus runs the AI's commands inside Claude Code's sandbox when safe mode is enabled, which restricts writes to a scratch folder. The README states that Atticus asks for confirmation before anything deletes, sends, buys, or changes a file, and that rm, sudo, disk tools, and shutdown are always blocked. Every exact command executed is recorded in the ask log.
Install requirements
Atticus requires macOS 26 or later, because it depends on Apple's newer on-device speech APIs. It also requires a paid Claude plan (Pro or Max) and Claude Code; the setup window installs and signs into Claude Code if it is not already present. Apple's command line tools are needed via xcode-select --install. Peekaboo is optional and enables clicking inside apps.
Installation is a single shell command:
curl -fsSL https://raw.githubusercontent.com/SaarthurR/atticus-mac/main/install.sh | bash
The script downloads Atticus to ~/.atticus, builds ~/Applications/Atticus.app, and opens it. Atticus starts at login and self-updates, which can be turned off in Settings → About & Updates. Removal requires booting out the launch agent and deleting ~/Applications/Atticus.app, ~/.atticus, ~/.config/atticus, and ~/Library/LaunchAgents/com.atticus.app.plist.
Background watching runs without AI
Atticus can watch for conditions. Saying "tell me when Codex is done" or "watch this page until it says shipped" sets up a monitor that checks every 5 seconds locally with no AI calls, so waiting is free. When the condition fires, the user gets a notification and any requested follow-up runs. A window must stay open on the current desktop, though it may be covered. Coding agents such as Codex are watched through their own log files rather than the screen.
The project enforces its own performance budget
The README documents explicit limits that new features must meet:
- Instant commands: no AI, $0.
- AI asks: median under $0.002 and 6 seconds over the last 50 asks. The README reports that as of Oct 10, 2026 the figures were $0.00095 and 5.0 seconds. The budget can be checked with
python3 atticus.py --budget. - System prompt: under 10,000 characters with every option enabled, enforced by a test.
- Anything that waits or runs in the background: $0 while waiting, with AI used only to set it up and to act at the end.
Community response and open questions
A Windows fork exists
Multiple commenters asked about Windows support. User @FindlayH linked a fork: "This slaps, I burned some credits on a fork that works for windows https://github.com/FindlayHi/atticus-windows". User @nitroedge posted the same link again. The scraped material does not indicate whether the fork is maintained by the original author.
Linux has no equivalent in this thread
User @blakeashleyjr asked: "I have been looking for this kind of thing on Linux. Any one have anything that works well?" No answer appears in the scraped comments.
Cheaper or alternative model backends
User @jmathai asked whether Atticus can run against a cheaper cloud LLM such as DeepSeek, linking to DeepSeek's agent integration documentation. No author response is present in the scraped material.
Transcription errors
User @aavisangle raised the failure mode of speech recognition itself: "what if the voice transcription gets it wrong? Like, voice can pick up similar-sounding words and transcribe them differently, you know?" The README partially addresses this by describing a review step: if speech finalization takes too long, Atticus offers the partial text for review rather than sending it, and toggle-mode recordings reach a review screen after 60 seconds.
Terms-of-service questions about the Claude plan
User @trollbridge questioned the account model the project relies on: "I'm wondering how you managed to access Claude considering the terms of service prohibit someone under 18 signing up and also prohibit account sharing. (I bring this up because I think these are bad terms. People under 18 should be allowed to learn how to code and use agents.)" This is a commenter's characterization of Anthropic's terms, not a statement from the project.
A comment posted by Atticus itself
One thread contains a self-referential demonstration. User @abikg wrote: "Hey, this was commented by Atticus, from the abikg account. Atticus is the Mac assistant from this post, and this comment was posted using Atticus itself." The same account also compared it to a YC-backed product: "this looks cool man, close experience like : YC app HeyClicky for free".
How the interaction model works
Atticus supports two shortcut behaviors, configurable in Settings → General → Shortcut behavior. In "Hold to talk" mode, releasing the keys sends the request. In "Press to toggle" mode, the first press starts listening and the second press sends, with pauses continuing to listen. Pressing the shortcut while Atticus is answering stops it; during spoken playback it stops the voice. Esc cancels listening without sending.
Instant commands can run mid-sentence before the user sends, if "Instant commands" and "Act while I'm talking" are enabled in Settings → Intelligence. AI reasoning may begin during a pause, but its tools wait for confirmation. Learned shortcuts wait for confirmed words.
Codebase layout
Atticus.swift— the app: hotkey, speech, overlay, onboarding window.atticus.py— the brain: fast commands, system prompt, helpers for windows, web, and screen.ui/ui.html,ui/onboarding.html,ui/settings.html— overlay, welcome flow, and Settings.ui/orbs.js— the thinking-orbs engine by Jakub Antalik, MIT licensed.
Testing is available through python3 atticus.py --selftest and python3 -m unittest discover -s tests -v for offline regressions, plus a mock-bridge UI test page at tests/ui.html that makes no Mac actions or AI calls.
Sources
Related
- Dispatch
- Dispatch
- Dispatch
- Project
- Project