Skip to content
Early alpha · macOS, from source

Your agents,
out loud.

Claude Code and Codex speak up the moment they finish or need you — each in its own voice — and a command center in your notch lets you approve, deny or jump in without hunting for the terminal. Free, open source, and 100% offline.

Codex wants to run a bash command in billing.

  • Claude finished in api-server.
  • Codex needs you in billing.
  • Claude is waiting on you over in docs.
  • Approved Bash command in web.
  • Codex, mobile: done.
  • Claude finished in infra. Deploy plan is ready.

The bottleneck is you

The problem

Sessions finish. You’re looking elsewhere. Minutes go by.

Run several agents in parallel and the bottleneck becomes you noticing them. PingMyBell gives each agent its own voice, speaks a one-line summary the moment a session finishes or blocks, and puts a command center in your notch — approve, deny, or jump to the terminal without hunting for it.

The island

A command center that lives in your notch.

A frameless, non-activating overlay flush with the notch. It never steals focus, and it stays visible over full-screen apps.

  1. 01

    Idle

    A dot per live session, flush with the notch. Blue is working, green is done, amber is waiting on you. On a Mac without a notch it floats as a pill under the menu bar.

  2. 02

    Toast

    A session finishes or blocks: the island widens, shows the one-line summary, and the agent says it out loud. Six seconds later it tucks itself away.

  3. 03

    Approval

    Switch approvals on and a gated command pins to the notch with Approve, Deny and Terminal. Decide without leaving what you’re doing. If you do nothing, the agent falls back to its own prompt.

A voice per agent

Know who finished without looking up.

Each agent gets its own system voice, so you know who’s talking before the sentence ends. Approvals jump the queue, and duplicates within five seconds are dropped.

Style
Agent
Event

Claude finished in api-server. All 214 tests pass.

In the app this is your Mac’s own speech engine — offline, with per-agent voice, rate and volume. Summaries are stripped of markdown, code and paths, and capped at 220 characters.

Everything else

Built for a fleet, not a single tab.

  • voice

    A voice per agent

    OS-native speech, a different default voice for each agent, with voice, rate and volume pickers per agent.

  • island

    Approvals from the notch

    Turn it on from the bell, and Claude Code and Codex commands and file edits are approved or denied in one click. It never steals focus.

  • island

    Live ticker

    While an agent works, the island shows what it is doing right now — the command, the file — without a sound.

  • keys

    Triage hotkey

    ⌃⌥Space jumps to the session that has waited longest. Press again to cycle through the rest.

  • board

    Jump to the session

    Click any session to bring forward the app it runs in — any terminal, or the Claude desktop app — and its tmux pane if it has one. No permissions needed.

  • voice

    Knows when to hush

    If that session’s terminal is already in front of you, a chime replaces the sentence. Quiet hours mute it overnight.

  • voice

    Morning digest

    The first event of your day gets a one-sentence recap of what the fleet did since you left.

  • board

    The session board

    Every live session, its state and how long it has been in it, with the last 50 events each.

Local-first, verifiably

Nothing leaves your Mac.

The only network traffic is loopback. See exactly how an event becomes a sentence.

  1. 01

    100% offline

    Speech is your OS’s own engine. No cloud TTS, no LLM calls, no accounts. The only network traffic is loopback.

  2. 02

    Fails open

    The hook shims exit 0 silently on any error, or when the app isn’t running. A broken PingMyBell can never block or change what your agent does.

  3. 03

    Your machine only

    The ingest server binds 127.0.0.1 behind a per-install token. Config and history live in ~/.pingmybell/, readable by you alone.

  4. 04

    Free and MIT

    No subscription, no seat, no telemetry. Read every line of it on GitHub.

Works with

  • Claude Code

    Spoken callouts

    Opt-in: approve or deny gated tool calls (or hand them back to the terminal), and answer questions, from the island.

  • Codex CLI

    Spoken callouts

    Opt-in: approve or deny command runs and file edits from the island, when Codex runs in a mode that asks for approval.

Ring the bell.

Build it in three commands, then hook in your agents with one more. Existing settings are merged, never overwritten, and uninstall removes exactly what was added.

Early alpha · macOS, from source

The full loop runs today on macOS 13+ and is gate-verified on real notch hardware. There are no signed prebuilt releases yet, so you build the app yourself. Windows is scaffolded against the platform APIs but has not been run there.

Build
git clone https://github.com/Davidb3l/pingmybell && cd pingmybell
bun install
bun run tauri build
Hook in Claude Code
/Applications/PingMyBell.app/Contents/MacOS/pingmybell install-claude
Full install guide