Sandbox
@vecartier/cc-beeper

macOS widget for Claude Code

CC-Beeper is a native macOS companion for Claude Code that listens to local hooks, tracks session state, and shows it in a floating widget and menu bar item. It can approve or deny permissions, record dictation, and read Claude’s responses aloud, all on the Mac.

175 stars16 forksSwiftUpdated 5mo ago
Who it's for

Builders who run Claude Code and want a desktop companion for permissions, status, and voice input.

What it delivers

You can keep working while seeing Claude’s status, answering prompts, and handling permissions without switching back to the terminal.

What it does

Real-time Claude states

Shows eight session states, including working, done, error, allow, input, listening, and recap, with priority across active sessions.

Permission handling

Lets you approve or deny Claude Code permission requests from global hotkeys or the widget.

Voice dictation and read aloud

Uses WhisperKit or Apple Speech for dictation, and Kokoro or Apple Speech to read Claude’s responses aloud.

Global hotkeys

Provides remappable shortcuts for approve, deny, voice recording, focusing the terminal, and stopping or replaying speech.

Local hook integration

Registers Claude Code hooks through `~/.claude/settings.json` and talks to a local HTTP server on `127.0.0.1`.

Themes and widget sizes

Offers shell color themes, multiple widget sizes, sound, haptics, and menu bar state indicators.

README

CC-Beeper

A floating macOS pager for Claude Code.

Stop babysitting your terminal. Start shipping.



Download for Mac



Release macOS 14+ Swift License Homebrew


Why I Made This

You kick off a task in Claude Code. Then life happens. Claude finishes, or hits an error, or needs a permission — but your terminal is buried under three windows.

CC-Beeper fixes that. It's a small widget that sits on your desktop, shows what Claude is doing, and lets you respond without switching apps. Never miss an update. Respond without breaking your flow.


See It in Action

https://github.com/user-attachments/assets/9df11591-ec91-4ddb-8cbe-a6c4b2a41c9a


Features

Real-Time States

At a glance, know exactly what Claude is up to. CC-Beeper tracks 8 states, each with its own pixel-art animation. Higher-urgency events always take priority.

StateWhat it means
SNOOZINGNo active session. Claude is idle.
WORKINGClaude is running a tool — Busy with bash, Tinkering with write...
DONE!Task completed successfully.
ERRORSomething went wrong.
ALLOW?Claude needs permission. Approve (⌥A) or deny (⌥D).
INPUT?Claude asked a question. Waiting for your response.
LISTENINGRecording your voice for dictation.
RECAPReading Claude's last response aloud.

Auto-Accept Modes

When Claude Code needs to use a tool, CC-Beeper can auto-approve it or ask you first. Four presets let you dial the automation while keeping control. Switchable anytime from the menu bar.

ModeWhat happens
StrictAsk me every time. Nothing runs without your approval.
RelaxedReads are fine. Asks before writes and commands.
TrustedFile operations are fine. Asks before shell commands.
YOLODon't ask. Just do it. Auto-approves everything — including file writes, deletes, and shell commands.

Voice

Dictation

Prompt Claude, or answer its questions, just by talking. Toggle with ⌥R from anywhere, or double clap to go fully hands-free.

  • WhisperKit — on-device, 99 languages, no cloud, no API key
  • Apple Speech — built-in fallback, no download needed
  • Works with Terminal.app, iTerm2, Warp, Alacritty, Kitty, and WezTerm

Read Aloud

Claude finished? Hear the summary out loud.

  • Kokoro — on-device, 54 voices across 9 languages
  • Apple Speech — built-in fallback

Global Hotkeys

Use them from any app, in any keyboard layout (AZERTY, QWERTZ, Dvorak). All remappable in Settings.

HotkeyAction
⌥AApprove pending permission
⌥DDeny pending permission
⌥RToggle voice recording
⌥TFocus the active terminal
⌥MStop TTS / replay last response

Themes, Sizes & Sound

  • 10 shell colors
  • 3 widget sizes — Large (buttons + LCD), Compact (LCD only), or Menu Only (icon in the menu bar)
  • Sound & haptics — ping on permission requests, chime on task completion, vibration until resolved

Shell colors


Getting Started

Requirements: macOS 14 Sonoma+ · Claude Code CLI

  1. Download the latest release
  2. Move CC-Beeper.app to /Applications
  3. Launch — the onboarding wizard handles hooks, theme, permissions, voice engines, and hotkeys

Everything is optional and can be changed later in Settings.


Privacy

All local. No API keys. Nothing leaves your Mac.

  • All communication happens over 127.0.0.1 — plain curl hooks to a local HTTP server
  • No telemetry, no analytics, no crash reporting — zero outbound connections
  • WhisperKit and Kokoro run on-device. Your voice is never uploaded
  • No accounts, no sign-up, no tokens
  • Hooks are transparent — inspect or remove them from ~/.claude/settings.json anytime

Technical Details

How the hooks work

CC-Beeper binds to a local port (19222-19230) on launch and registers 7 hook scripts in ~/.claude/settings.json: UserPromptSubmit, PreToolUse, PostToolUse, Stop, StopFailure (all async), plus Notification and PermissionRequest (blocking — CC-Beeper holds the TCP connection open until the user responds).

Hooks are identified by cc-beeper/port in the command string for safe update/removal without touching user hooks.

Session management

CC-Beeper tracks multiple concurrent Claude Code sessions. The displayed state resolves by priority across all active sessions. Sessions auto-prune after 2 hours of inactivity.

Instance detection

On launch, CC-Beeper pings ports 19222-19230 via HTTP to detect if another instance is already running, preventing conflicts.

Menu bar

The menu bar icon reflects the current state: normal (outline), attention (orange), YOLO (purple), recording (red circle), speaking (green speaker), or hidden (dimmed).

The menu contains: session count, state label, Mute/Unmute, Sleep/Wake, Clap Dictation toggle, Fix Permissions (when needed), auto-accept preset picker, size picker, hotkey reference, Settings, and Quit.

Settings
TabWhat's inside
Theme10 shell colors
DictationDouble Clap Dictation toggle, Whisper model size (small/medium), download
Read OverAuto-speak toggle, Kokoro/Apple picker, language & voice
FeedbackSound + vibration toggles
Hotkeys5 remappable hotkey fields
Permissions4 preset radio buttons
SetupReinstall hooks, reopen onboarding
AboutVersion, credits, links

Disclaimer

CC-Beeper is an independent, community-built project. It is not affiliated with, endorsed by, or sponsored by Anthropic.

CC-Beeper was designed and fully vibe-coded with Claude Code. Use it at your own risk.

Auto-accept modes approve Claude Code tool requests on your behalf — including file modifications, shell commands, and network requests. YOLO mode approves everything without prompting. You are responsible for reviewing what you approve.

The authors are not liable for any damage, data loss, or unintended consequences.


Contributing

Feature suggestions and code improvements are welcome.

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/your-idea)
  3. Commit your changes
  4. Open a Pull Request

License

GPL-3.0 — see LICENSE for details.


Built by Victor Cartier

Free · Open Source · Native macOS

If CC-Beeper saves you from one missed permission prompt, give it a ⭐

Files in the repo

Repository payload16 top-level entries
  • .github
  • assets
  • docs
  • homebrew
  • scripts
  • Sources
  • Tests
  • .gitignore
  • build.sh
  • CC-Beeper.entitlements
  • icon.png
  • LICENSE
  • Makefile
  • Package.resolved
  • Package.swift
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k