Heads-upby Brand Bakery
Claude needs you. Now you'll hear it.
A small, free Mac plugin that speaks up when Claude Code finishes a task, needs your review or hits a wall. Quiet when you're busy. Gentle on your ears.
- Free
- macOS
- Works with Claude Code
Voices made with ElevenLabs (elevenlabs.io) · Powered by Sarvam
Open source under MIT at launch.
How it works
Hear it from the kitchen.
1
Claude stops.
It finished, needs a review, or hit an error.
2
Heads-up checks the room.
Are you typing? On a call? In Focus? At home? Did it speak a moment ago?
3
Your Mac speaks.
"Hello from your project. I need your review." Volume comes up just enough, then goes back.
Listen
Seven voices. One line.
Every voice says the same thing, so the voice is the only difference. Each clip starts with "Hello." and a short pause.
BrianAmerican male, default
“Hello. I need your review.”
SarahAmerican female
“Hello. I need your review.”
GeorgeBritish male
“Hello. I need your review.”
AliceBritish female
“Hello. I need your review.”
CharlieAustralian male
“Hello. I need your review.”
AdityaIndian male
“Hello. I need your review.”
PriyaIndian female
“Hello. I need your review.”
Different alerts, default voice
Task completeBrian
“Hello. I've completed the task.”
ApprovalBrian
“Hello. I need your approval to continue.”
StuckBrian
“Hello. I'm stuck, and I need your help.”
Tests passedBrian
“Hello. All the tests are passing.”
Deploy failedBrian
“Hello. The deployment failed.”
Long task startedBrian
“Hello. This will take a while. I'll let you know when it's done.”
Voices made with ElevenLabs (elevenlabs.io) · Powered by Sarvam
Features
It knows when to stay quiet.
Twelve things it does, out of the box. The ones marked with a key need your own ElevenLabs or Sarvam key.
20 alerts
Done, review, approval, question, stuck, error, tests passed or failed, deployed, PR ready, usage limit and more.
7 voices
American, British, Australian and Indian accents, male and female. Built in, no key needed.
Project namesNeeds your own voice key
"Hello from Brand Bakery Hub." Know which session is calling.
Claude's own wordsNeeds your own voice key
When a fixed line isn't enough, Claude adds a short sentence and it's spoken in your voice.
Stays quiet
Skips alerts while you're at the keyboard, on a call, in Focus, during quiet hours, or away from home.
Ear-safe volume
Raises a muted Mac for the alert only, then restores it. Hard caps: 50% on headphones, 90% on speakers.
Automatic alerts
Hooks announce permission prompts and long turns even if Claude doesn't call the tool. Background sessions never trigger them.
Settings page
A local page to pick voices, switch alerts on and off, edit wording, set limits and see usage.
Your wordingNeeds your own voice key
Change what any alert says. Only that line is recorded.
Cost you can see
Characters used today and this month, plus a daily budget so automatic recording never runs away.
Private by design
Runs on your Mac. No account, no telemetry. Keys live in the macOS Keychain and never touch a file.
One-command setup
Install as a Claude Code plugin, or with one terminal command. Uninstall the same way.
For the technical reader
One tool. Twenty lines.
This is what Claude actually calls. Press play on any row to hear it.
notify_user {
status: "review", // one of 20
message: "The migration ran, but two tables need your review.",
// optional, needs your key
repeat: 1, // 1 to 3
volume: 65 // optional, under the safety caps
}
- Skill included. The plugin ships a skill that teaches Claude when to call notify_user (once, at the end of a turn where you have to act) and when not to.
- Hooks included. Prompt start, permission prompts and long turns.
- Skipped is not an error. If a guardrail blocks an alert, the tool tells Claude "Not played: <reason>" and Claude doesn't retry.
| Status | Spoken line | Play |
|---|---|---|
| Needs you | ||
review | I need your review. | |
feedback | I need your feedback. | |
input | I need your input. | |
approval | I need your approval to continue. | |
question | I have a quick question for you. | |
blocked | I'm stuck, and I need your help. | |
sign_in | I need you to sign in. | |
reminder | I'm still waiting on you. | |
| Finished | ||
completed | I've completed the task. | |
tests_passed | All the tests are passing. | |
deployed | The deployment is live. | |
pr_ready | The pull request is ready. | |
next_task | I'm ready for the next task. | |
| Problems | ||
error | Something went wrong. Please take a look. | |
tests_failed | Some tests are failing. | |
deploy_failed | The deployment failed. | |
limit_warning | I'm close to my usage limit. | |
limit_reached | I've hit my usage limit. | |
| Updates | ||
long_task | This will take a while. I'll let you know when it's done. | |
progress | Quick update. I'm still working on it. | |
Every line starts with "Hello." (or "Hello from <project>.") and a short pause.
Settings page
Everything on one local page.
Run headsup and it opens at 127.0.0.1:4777. Captured on a Mac from the current build, with demo data. The page follows your Mac's light or dark mode, and so do these pictures.










Bring your own key
Your key, your words, your voice. Or no key at all.
A key is an optional upgrade. Everything in the first column works without one.
Without a key
- The 140 built-in clips
- All 20 alerts in all 7 voices
- Every guardrail and volume feature
With your ElevenLabs or Sarvam key
- Project names ("Hello from Brand Bakery Hub.")
- Claude's own words for an alert
- Your own wording for any alert
- Any voice from your ElevenLabs account, or any of Sarvam's 37 speakers
- Project names and Claude's own words stay off until you add a key and it's verified. You turn them on.
- The key goes into your macOS Keychain. Heads-up never writes it to a file, a log or the page.
- You pay your provider directly, and usage is small: a project name is about 16 to 25 characters, once per voice. All 20 alerts in a new voice is about 570 characters. ElevenLabs' free plan includes 10,000 characters a month.
- A daily budget (1,000 characters per provider by default) caps everything recorded automatically.
- Each project's name is recorded once and cached, so the next alert is instant. Up to 20 new names a day.
Privacy and safety
Nothing leaves your Mac unless you say so.
On your Mac.
No account, no server, no telemetry. The only thing that leaves your Mac is text you send to your own voice provider.
Your ears.
Volume caps no setting can override. Unknown output devices get the headphone limits.
Your attention.
A gap between alerts, an hourly limit, quiet hours, and mute for 15 minutes to 4 hours.
Home is recognised by your router's hardware address, not GPS or Location Services.
Install
One command to install. One to remove.
Run this inside Claude Code.
/plugin install heads-up --marketplace abhishek207/headsup-mcpWorks once the GitHub repo is public, at launch.
Run this in Terminal.
npx github:abhishek207/headsup-mcp installInstalls from GitHub for now. Once Heads-up is on npm this becomes npx headsup-mcp install. Needs the public repo, at launch.
What the installer does
- Checks Node and ffmpeg
- Builds the call detector
- Installs the plugin and allows its tool, so alerts don't wait on a permission prompt
- Removes any older setup, so alerts don't double
- Adds the headsup command
Then
headsup- opens the settings page
headsup test review- plays an alert now
headsup uninstall- removes everything and keeps your settings
Requirements
- macOS
- Node.js 20+
- Claude Code
- Xcode Command Line Tools, for call detection
- ffmpeg (Homebrew), only for lines recorded with your key
The README goes public with the repo.
Questions
Asked and answered.
Is it free?
Yes, completely, and it stays that way. There's no paid tier. The 140 built-in clips need no account or key. Features that record new audio use your own ElevenLabs or Sarvam key, billed by them to you.
Does it work on Windows or Linux?
Not yet. It's macOS only for now. A Windows version is planned.
Does it work with Codex, Cursor or other agents?
It's built for Claude Code. A Codex version is packaged but still being tested. Any MCP client can call notify_user, but the automatic hooks are Claude Code's.
Will it talk over my meetings?
No. It stays silent while your mic or camera is in use, while a Focus mode is on, and during quiet hours. It also skips alerts if you've touched the keyboard or mouse in the last minute, because you're already there.
Will it blast my AirPods?
No. Headphones are capped at 50% and speakers at 90%, and no setting can go past that. If your Mac is muted it turns up just for the alert, then puts the volume back.
Does anything leave my Mac?
Only if you add a voice key: then the short line being recorded (a project name, or Claude's sentence) goes to your provider. No telemetry, no Heads-up account. Claude is told to keep code, paths and secrets out of spoken lines.
Where is my API key stored?
In the macOS Keychain. It's never written to a config file or log, and the settings page never shows it back.
How much does a key cost me to use?
Very little. A project name is 16 to 25 characters, recorded once per voice. A daily budget caps automatic recording at 1,000 characters per provider by default. ElevenLabs' free plan includes 10,000 characters a month.
What if Claude forgets to call it?
Hooks cover the important cases: permission prompts, and any turn that runs longer than 2 minutes.
Can I change what it says?
Yes, with a key: edit any alert's wording on the settings page, add voices from your ElevenLabs account or Sarvam's 37 speakers, or let Claude say a short line of its own.
How do I turn it off?
headsup off, or headsup mute 30 for half an hour. headsup uninstall removes it completely.
Who made it?
Brand Bakery. Voices made with ElevenLabs (elevenlabs.io). Powered by Sarvam.
Free, and it says hello.
Install Heads-up
/plugin install heads-up --marketplace abhishek207/headsup-mcpWorks once the GitHub repo is public, at launch.
Credits
Voices made with ElevenLabs (elevenlabs.io): Brian, Sarah, George, Alice and Charlie.
Powered by Sarvam: Aditya and Priya, recorded with Sarvam Bulbul v3.
Free, for everyone, for good. No paid tier, no pro version.
Heads-up is an independent project. Not affiliated with Anthropic, ElevenLabs or Sarvam.
Open source on GitHub under the MIT license, at launch.
Voices made with ElevenLabs (elevenlabs.io) · Powered by Sarvam