Halo - Notifications, dictation and AI agents in your Mac's notch
by•
Halo turns your Mac's notch into a Dynamic Island: messages from any app, dictation that types anywhere when you hold Fn, a little face that follows your cursor and watches your AI agents, plus music, calls and monitor brightness. $9.99 once.


Replies
Hey! interesting product.
What model is used for transcription? Is it local or cloud?
@heruvimdi Thanks! You pick in Settings:
- On this Mac (default): Apple's speech recognition, run on-device. Words show up while you talk, nothing leaves your Mac. (If macOS hasn't downloaded your language yet, Apple processes it on their servers until it has.)
- Groq (Whisper): Whisper large-v3 in the cloud, with your own free Groq key. Better with accents and ~99 languages. The audio goes to Groq only, the key stays in your Keychain.
Hold Fn, talk, let go, and it types wherever your cursor is.
the Claude Code/Codex usage limit tracking in the notch is the feature that'd actually get me to install this, I check that in a separate terminal tab way too often. is it polling the CLI's own rate limit headers or scraping something, and does it survive a model switch mid-session without losing track of where you are in the window?
@galdayan Neither, and nothing goes over the network. Halo just reads files the tools already write on your Mac.
Claude Code hands its rate limits (5-hour and weekly, with reset times) to your status line. Clicking Connect in Halo adds a tiny wrapper that saves them and still runs your own status line, so your bar looks the same. Disconnect restores your original settings.
Codex already logs rate_limits into ~/.codex/sessions, and Halo reads the newest entry.
Model switches don't break it. The limits belong to your account, not the session or model, so Halo just keeps the latest reading of each window. If Claude reports a separate weekly limit for one model, it shows as its own row.
One caveat: the Claude number updates while a Claude Code session is running, so it's as fresh as your last session. Once a window resets, Halo shows it as empty straight away.
Hope it kills that terminal tab for you 🙂
@abdiraimov_ that's a clean fix, reading the files the CLI already writes instead of phoning out is the right call. one more edge case since I actually run this way: if I've got two Claude Code sessions open in separate terminal tabs at once, does Halo show whichever wrote most recently, or does it try to reconcile the two? asking because if tab B writes after tab A's window already ticked over, the number in the notch could look fresher or staler than what's actually true for the session you're looking at.
@galdayan Last write wins, no reconciling. Each tab's status line saves the same account-level numbers into one file, and Halo shows the newest one.
Since the limits belong to the account, not the tab, both sessions see the same 5-hour and weekly windows, so usually the latest write is also the truest. And the moment a window's reset time passes, Halo shows it as empty no matter what the file says, so a stale "94%" can't outlive its window.
The edge you describe is real though: if tab B re-renders from an older reading after tab A got a newer one, the notch can go backwards for a bit. Good catch. I'll make it keep the higher reading within the same window (usage only goes up until reset), so it can't step backwards.