Back to stories
github.com

Show HN: Atticus – Hold-to-talk voice assistant for macOS that runs on Claude -p

115points bySaarthRanka3d
Hi HN! I'm Saarth. I'm in 9th grade, and I built Atticus.

Atticus is a fast and cheap Mac assistant that can do tasks for you. You hold down Control-Option-Space, speak or type your task, be it complex or a simple browser search, and Atticus will get on it.

The interesting part is that simple tasks, like opening apps, playing a Spotify playlist, or web queries, don't touch AI, and instead are processed locally and typically finish in under a second. For example, prompting Atticus to open apps takes around 0.08 seconds, sometimes even finishing before you finish your sentence, sort of like Jev.

Any tasks that are more complicated will be sent to Claude via claude -p, meaning you never need an API key and Atticus will run on your existing Claude Pro or Max plan. By using this approach, costs are also cut down immensely, with, on average, tasks costing a fraction of a cent.

To achieve Atticus' speed, it remembers shortcuts from each task it completes. When it does a task right for the first time, it saves its steps and replays them the next time without AI. For example, a workflow of creating a new meeting took about 30 seconds the first time around. Atticus then logs the exact steps to memory and takes 5-8 seconds on the next pass. To add to this, Atticus also learns about you as you use it more and from what's on your computer, including your name, your apps, and things you want it to remember, personalizing its answers to you.

To combat the safety concerns over giving an AI unrestricted access to your device, Atticus has toggleable restrictions, so before anything is deleted, sent, bought, or written to a file, the user is prompted before that action.

Some features I'm currently working on include a meeting copilot that capitalizes on Atticus' speed, allowing Atticus to listen in on meetings and answer questions in real time as they come in, personalized to the context of the meeting and what it knows about you.

To run Atticus, macOS 26 or higher is required for its voice transcription features. The voice transcription is also done locally by macOS.

Atticus is free, open source, and also very fresh, and I'm completely aware of its many rough edges, which is why I'd love to hear from everyone about what breaks and what you guys would like to see Atticus do!

Comments

30 total · 30 loaded

Ranked by HN
car2don HN
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.

SaarthRanka2don HN
Thank you so much!

Most daily commands like launching and moving around sites/apps happen without AI, but I agree with the privacy concern and will definitely look into utilizing local AI.

Smaller models, like Haiku, I have found to already struggle during multi-step tasks, so I expect local model capabilities to reduce performance further.

I'll look into how OOMU splits their work up, but what local model would you suggest starting with?

car2don HN
The choice of model could be up to the user, depending on the available RAM on their M class Mac. Newer and bigger usually being smarter.

Llama.app/.cpp and Unsloth Studio on Mac already provide guidance to pick the optimal model for the available memory, all model wheights hosted by huggingface. Both apps can use the local huggingface model cache locally.

If you make it configurable, the user could also run a separate machine with an NVidia card and Linux to serve tokens on the LAN. Or use OpenRouter or any other cloud hosted model offering (DeepSeek, Z.ai, etc.).

I would probably run qwen 27B or qwen fn but I would run the actual inference on one of my other boxes and not on actual desktop so initially it could be sufficient if you just enabled openai or anthropic compatible endpoint.
FindlayH3don HN
This slaps, I burned some credits on a fork that works for windows https://github.com/FindlayHi/atticus-windows
SaarthRanka2don HN
Awesome! I'll be sure to link your fork in my readme. I'm curious what problems arose when you ported it?
It went so smooth it was actually a little silly, I also added in some homelab services that it can connect with to give voice commands to arr stack and a few other systems. This is awesome and I would not have done any of it without you starting!
trollbridge2don HN
I don’t want to be a jerk, but 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.)

pprotas2don HN
I had a good trick for this when I was a minor! I just lied about my age to the HTML birthdate input…
trollbridge1don HN
This is likely to earn a permanent ban from Anthropic, though (which predictably no way to appeal it)
aavisangle2don HN
I liked the idea and I'm impressed, but here's what I'm thinking—what if the voice transcription gets it wrong? Like, voice can pick up similar-sounding words and transcribe them differently, you know?
This uses the new onboard TTS model from Apple, which is amazing, even with background noise.
I have been looking for this kind of thing on Linux. Any one have anything that works well?
Will this work on the Windows as well or just for mac users. by the way really like it from what I can see it from the demo video. If it works as it shown and also I dont thinks so that it is for windows would love if you can clear this out.
FindlayH3don HN
I liked the idea and forked the original, for is only proven to work on my local but can be run by others, also build out integrations so I can have it work with common homelab services and MCPs

https://github.com/FindlayHi/atticus-windows

It would be unreal if it could somehow be linked in with Hermes Agent. I run Hermes with the Hermes WebUI frontend and I speak to my agents now but through that UI so I always have to keep the Hermes WebUI focused, if I could just activate and send voice commands while doing other things that would be the dream.
jmathai2don HN
Can this work against a cheaper cloud LLM like Deepseek? https://api-docs.deepseek.com/quick_start/agent_integrations...

Screencast looks great btw.

SaarthRanka2don HN
Thanks! I believe I can add Deepseek support pretty easily. Atticus runs on Claude Code, and Claude Code can point to any server that uses Claude's API. DeepSeek has one so I added a Custom server option in Settings > Intelligence > Custom server. Put in https://api.deepseek.com/anthropic, your DeepSeek key, and deepseek-chat as the model. Same thing works for Ollama or LM Studio.

One thing is that DeepSeek's API doesn't take images, so anything where Atticus has to look at your screen won't work on it. Opening apps, music, web stuff, and shell commands are fine. I'll push this in an upcoming update.

Please make this more generic, using the OpenAI API standard with model discovery. That way it works against a bare Llama.cpp instance out of the box, the local inference server that many others wrap around (like Ollama and LM Studio).
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.
joertemple2don HN
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?
SaarthRanka2don HN
Yeah, that's pretty much how it goes. It doesn't continuously check if a shortcut has gone stale. Instead, if a shortcut is called and fails, most of the time Claude will have already added a check to see if a shortcut was successfully completed, and if it does fail, it'll check why and rebuild it. The user can also point out the failure, and the same thing will happen.
That makes sense. And old version is still saved in history after rebuild or it is overwriten? I can imagine, that updates and rollback can make it flip-flop
This is great, can we get OpenCode?
Thank you! I'll probably be focusing on polishing the Claude side of things, but that'll definitely be an add-on in the future.
this looks cool man, close experience like : YC app HeyClicky for free <3