Hold ⌃ control ⌥ option space, say what you need, let go.

Atticus moves your windows, finds your files, reads your screen and gets it done.

atticus-film.mp4

Choose Hold to talk or Press to toggle in Settings → General → Shortcut behavior. Hold mode sends when you release. Toggle mode starts on the first press and sends on the second; pauses keep listening. Pressing the shortcut while Atticus answers stops it; during spoken playback it stops the voice. Esc cancels listening without sending. Toggle recordings reach a review screen after 60 seconds, rather than sending automatically. Closing the overlay or pausing Atticus stops its microphone, workers and voice.

Click any answer to copy it, including earlier answers still shown in the box. Click your request to edit and ask again, or press ↑ in an empty typing box to recall the latest request. The overlay stays within your display when resized and respects Reduce Motion.

Apple's final transcript confirms each voice request before AI tools or learned shortcuts run. AI reasoning can start during a pause, but its tools wait for confirmation. If speech finalization takes too long, Atticus offers the partial text for review. Instant commands still skip the AI entirely. Supported built-in commands run mid-sentence, before you send, with Instant commands and Act while I’m talking on (Settings → Intelligence). Learned shortcuts wait for confirmed words.

You need:

- macOS 26 or later (Atticus uses Apple's new on-device speech)

- A paid Claude plan (Pro or Max) and Claude Code. No Claude Code yet? The setup window installs it and signs you in.

- Apple's command line tools: xcode-select --install

- Optional: Peekaboo (see its install steps) so Atticus can click inside apps

Paste this in Terminal:

curl -fsSL https://raw.githubusercontent.com/SaarthurR/atticus-mac/main/install.sh | bash

It checks your Mac, downloads Atticus to ~/.atticus, builds ~/Applications/Atticus.app, and opens it. Atticus starts at login and updates itself from there (turn that off in Settings → About & Updates).

Working on the code instead? Clone the repo anywhere and run ./build.sh after each change.

The first launch opens a setup window. It checks your Claude plan, then asks for each macOS permission.

After that, Atticus lives in the menu bar. Open it from Spotlight (⌘Space, "Atticus") for Settings: shortcut, sounds, model, speed, screen, memory and usage.

If you sign out of Claude later, the setup window comes back by itself.

To see it again: defaults delete com.atticus.app onboarded, then restart the app.

Test: python3 atticus.py --selftest on macOS, plus python3 -m unittest discover -s tests -v for offline regressions. After building, ~/Applications/Atticus.app/Contents/MacOS/Atticus --selftest checks native transcript matching without opening the app. Node, when installed, also checks embedded JavaScript syntax. For the UI interaction checks, run python3 -m http.server 8765 --bind 127.0.0.1 from the repo and open http://127.0.0.1:8765/tests/ui.html; it uses a mock native bridge and makes no Mac actions or AI calls.

Remove: launchctl bootout gui/$(id -u)/com.atticus.app, then delete ~/Applications/Atticus.app, ~/.atticus, ~/.config/atticus (your settings and history) and ~/Library/LaunchAgents/com.atticus.app.plist.

Say "tell me when Codex is done" or "watch this page until it says shipped". Atticus sets it up once, then checks every 5 seconds on your Mac with no AI, so waiting is free. When it fires you get a notification, and it runs a follow-up if you asked for one. A window must stay open on this desktop (covered is fine). Coding agents like Codex are watched through their own log, with no screen at all. Say "stop watching" to cancel.

Atticus has to stay fast and nearly free, so new features must fit under these limits:

- Instant commands: no AI, $0.

- AI asks: median under $0.002 and 6 s over the last 50 (Oct 10, 2026: $0.00095, 5.0 s). Check with python3 atticus.py --budget.

- System prompt: under 10,000 characters with every option on. Every ask pays for it, and a test enforces it.

- Anything that waits or runs in the background: $0 while it waits. AI only to set it up and to act at the end.

Once a day, Atticus sends one random ID (made on your Mac, not tied to you) to PostHog, so I can see how many people use it. It never sends your name, your asks or your screen. Turn it off in Settings → Account & Access → Count me as a user.

- 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: the overlay, the welcome flow, and Settings

- ui/AppIcon.icns: the app icon

- ui/orbs.js: the thinking-orbs engine (MIT, Jakub Antalik)

MIT. See LICENSE. ui/orbs.js is from thinking-orbs, also MIT.

Run regressions with a scratch ATTICUS_DIR and use tests/ui.html and tests/settings.html for mock-bridge UI checks. Keep personal agent settings, credentials and runtime state out of commits. Anonymous usage telemetry is disabled unless ATTICUS_POSTHOG_KEY is supplied through the environment; no key is embedded in the source.