macOS cockpit
for Claude Code.
Watch every tool call, approve risky commands before they run, and track every file change — from a Dynamic Island pill or menu bar icon. 100% local, token-authenticated, no cloud.
Live Status Animations
Every state has
its own character.
The pill shows a distinct animated icon for each type of activity — you know at a glance what Claude is doing without reading a single word.
Features
Everything you need
to stay in control.
Watch Claude Code sessions start and end in real time. CCC connects automatically — no manual wiring required.
Every tool call — Read, Edit, Write, Bash, Grep — logged with timestamps so you can replay exactly what happened.
High-risk commands pause and ask you. Allow once, always allow, or deny — with a 30-second auto-deny as a safety net.
Track every file Claude reads, writes, or edits. See diffs, line counts, and the full path of every change.
All Bash invocations captured with full arguments. Risk-classified so dangerous commands are immediately visible.
View and manage your allow rules — tools or patterns that bypass the approval dialog. Add, toggle, or remove at any time.
Full history of every session: start time, project directory, total tool calls, and all events — searchable and filterable.
Get a native macOS notification when Claude waits for approval, so you never miss a request while focused elsewhere.
Appears only when Claude is active. Three states: hidden, slim active strip, and full expanded card with activity feed.
All processing on your Mac. Communicates only with localhost:40440 — no telemetry, no cloud, no accounts.
First launch installs required Claude Code hooks into ~/.claude/settings.json automatically.
Commands classified automatically — none, low, medium, high, critical — using pattern matching on bash arguments and sensitive file paths.
The local HTTP server requires a 32-byte shared secret stored in ~/.claude/ccc_token (mode 0600). Constant-time comparison prevents timing attacks. Bound to 127.0.0.1 only — zero network exposure.
"Allow for Session" approves only the exact command you saw — not all commands of the same tool type. Approving echo hello never auto-approves rm -rf /.
How it works
Up and running
in three steps.
Download & launch
Open the DMG, drag Claude Control Center to Applications, and launch it. Hooks install automatically into ~/.claude/settings.json on first run.
Run Claude Code normally
Start Claude Code in any terminal as you normally would. CCC detects new sessions automatically via local webhooks — no changes to your workflow.
Monitor & approve
Watch the pill appear as Claude works. High-risk commands pause for your approval — Allow Once, Allow for Session (this exact command only), Always Allow, or Deny — right from the modal.
Interface
See what's happening
at a glance.
Command
Download
Claude Control Center.
Open the DMG, drag to Applications, and launch. Hooks install on first run — no terminal commands needed.
~/.claude/ and run hook scripts.
Open source
Built in the open.
Contributions welcome.
MIT-licensed Swift. Browse the code, file an issue, fork it, or send a pull request — all of it is public and appreciated.
$ cd ClaudeControlCenter
$ bash scripts/build_dmg.sh
FAQ
Common questions.
localhost:40440 — bound to the loopback interface. No telemetry, no analytics, no cloud sync, no account required. Your session data never leaves your Mac.~/.claude/settings.json — your own home directory. No system-level permissions, no sudo, no accessibility entitlements beyond what a normal menu bar app uses.~/.claude/settings.json and remove the CCC hook entries. No other files are created outside the app bundle and your home directory settings.