Pulsar
Hear your code finish. A menu-bar companion for Claude Code that speaks a concise, neutral status update the moment a task completes — using free, local macOS voices. Free.
What it is
A small macOS menu-bar app that gives Claude Code a voice. When a long-running task finishes — a build, a test run, a multi-step edit — Pulsar speaks a short, factual update so you can look away from the terminal and still know the moment it's done. No chime to decode, no glancing back every thirty seconds.
Everything runs on your Mac. Pulsar uses the speech voices already built into macOS, so there's no account to create, no API key to paste, and nothing leaves your machine.
Free macOS voices, nothing in the cloud
Pulsar speaks through the system voices macOS ships with — the same ones under System Settings → Accessibility → Spoken Content. Pick a voice you like, set the rate, and you're done. No subscription, no per-character billing, no network call to synthesise speech.
- Install Pulsar and launch it — it lives in the menu bar.
- Point it at Claude Code (Pulsar reads task-completion signals and turns them into a one-line spoken summary).
- Pick a macOS voice and speaking rate in Settings → Voice.
- Carry on working. Pulsar tells you when each task lands.
Want more or better voices? macOS lets you download additional system voices for free under System Settings → Accessibility → Spoken Content → System Voice → Manage Voices. Pulsar picks them up automatically.
Concise and neutral, on purpose
Pulsar is not a narrator and not a personality. The spoken line is a status update: what finished, and whether it succeeded. Short enough to register without breaking your focus, neutral enough that you stop noticing the voice and just absorb the fact.
It speaks on completion, not on every step — so a busy session doesn't turn into a running commentary. Mute it from the menu bar anytime you need silence.
First-time setup
Pulsar is currently distributed unsigned (an Apple Developer ID is on the way). That means a one-time Terminal step is required before the app will launch — a couple of minutes, then it's set-and-forget.
- Download. Grab the latest .dmg — one click, straight from GitHub Releases.
- Drag to Applications. Open the .dmg, drag
Pulsar.appinto the/Applicationsshortcut. Eject the .dmg afterwards. - Strip the Gatekeeper quarantine.macOS attaches a quarantine flag to anything downloaded from the internet. Until the app is signed with an Apple Developer ID, Gatekeeper refuses to launch it. Open Terminal (Spotlight → "Terminal") and paste this exact line, then hit Return:One command, one time per install. The terminal returns no output on success.
xattr -dr com.apple.quarantine "/Applications/Pulsar.app" - Launch from Applications.Press ⌘+Space, type "Pulsar", hit Return. The icon appears in your menu bar — there's no Dock icon because it's a menu-bar app.
- Pick a voice. Click the menu-bar icon → Settings → Voice. Choose any installed macOS system voice and set the speaking rate. Test it with the preview button.
- Connect Claude Code. Follow the in-app prompt to point Pulsar at Claude Code. From then on, every completed task gets a short spoken update.
If something doesn't work
The most common case is no sound — check that a system voice is actually installed and selected, and that Pulsar isn't muted from the menu bar. For Terminal-first checks:
Verify the binary signature
Should report Signature=adhoc and flags=0x2(adhoc). If macOS still blocks the app after the quarantine command, re-download the latest build from Releases.
codesign -dv --verbose=4 "/Applications/Pulsar.app" 2>&1 | grep -E "Signature|flags"After every auto-update
A new build has a new binary identity, so macOS may re-prompt for Gatekeeper bypass. If the app won't open after an update, run the quarantine command above once more against the new copy in /Applications. This stops happening permanently once we ship signed builds.
Who it's for
- Anyone running Claude Code on long tasks who'd rather not babysit the terminal.
- People who context-switch between windows and miss the moment a job finishes.
- Developers who want an ambient, hands-free signal instead of another notification to dismiss.
- Anyone who wants completion audio that stays local — no account, no API key, no data leaving the Mac.
Forked from speak
Pulsar is an MIT-licensed fork of speak. It keeps the core local-voice approach and adds Orbit's identity, the menu-bar companion UX, and a completion-update pipeline tuned for Claude Code.
FAQ
Does it cost anything?
No. The app is free, MIT-licensed, no account required. It uses the speech voices already on your Mac, so there are no usage fees either.
Do I need an API key?
No. Pulsar speaks through local macOS voices. There's no account to create and no key to paste.
Does anything leave my machine?
No. Speech is synthesised locally by macOS and the app makes no calls to any Orbit server. Source is on GitHub if you want to verify.
Why is it unsigned?
Same reason as Comet — Apple's Developer Programme is $99/year. Signing happens later. Until then it's a one-time Terminal command per install.
Windows / Linux?
Not yet. Pulsar leans on macOS system voices, so it's macOS-only. A port to other platforms is a separate project, not a recompile.
Source, issue tracker, and changelog all live on GitHub. Forked from speak (MIT).
Pulsar is one of four free apps in the Orbit constellation. The other three:
- Comet — menu-bar voice dictation. Talk, get clean text anywhere on your Mac, with optional AI cleanup.
- Orion — a local menu-bar app that answers your lifecycle, deliverability, and Braze questions on-device. No Claude required.
- The Orbit MCP — if you work in Claude, it hands Claude Orbit's lifecycle skills and Braze tooling. Free with an account.