Features Docs Changelog Download FAQ
Open source  ·  v0.3.1

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.

✓ macOS 14+ ✓ Universal binary ✓ MIT License
App icon

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.

👁
Live session monitoring

Watch Claude Code sessions start and end in real time. CCC connects automatically — no manual wiring required.

⏱
Tool execution timeline

Every tool call — Read, Edit, Write, Bash, Grep — logged with timestamps so you can replay exactly what happened.

🛡
Permission requests

High-risk commands pause and ask you. Allow once, always allow, or deny — with a 30-second auto-deny as a safety net.

📁
File access monitoring

Track every file Claude reads, writes, or edits. See diffs, line counts, and the full path of every change.

⌨️
Command execution history

All Bash invocations captured with full arguments. Risk-classified so dangerous commands are immediately visible.

⚡
Rule & hook inspection

View and manage your allow rules — tools or patterns that bypass the approval dialog. Add, toggle, or remove at any time.

📋
Session logs

Full history of every session: start time, project directory, total tool calls, and all events — searchable and filterable.

🔔
Notification Center

Get a native macOS notification when Claude waits for approval, so you never miss a request while focused elsewhere.

🏝
Dynamic Island pill

Appears only when Claude is active. Three states: hidden, slim active strip, and full expanded card with activity feed.

🔒
Privacy first

All processing on your Mac. Communicates only with localhost:40440 — no telemetry, no cloud, no accounts.

✨
Automatic hook setup

First launch installs required Claude Code hooks into ~/.claude/settings.json automatically.

⚠️
Risk classification

Commands classified automatically — none, low, medium, high, critical — using pattern matching on bash arguments and sensitive file paths.

🔑
Token-authenticated server

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.

🎯
Exact-command session approvals

"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.

Claude Control Center
Sessions
📋 Activity
📁 Files
📄 Logs
Settings
⚡ Rules
ClaudeControlCenter
Session #4 · 31 events
EDITViews/DynamicIslandView.swift0:12
READApp/AppState.swift0:11
RUNswift build --configuration release0:09
EDITApp/DynamicIslandController.swift0:07
RUNswift build -c release --arch arm64 --arch x86_640:06
GREPcompactStatusLabel · 3 matches0:05
READApp/DynamicIslandController.swift0:04
WRITEscripts/build_dmg.sh0:03
RUNbash scripts/build_dmg.sh 0.3.1just now
Claude Control Center
Warning
Approval Required
Bash · pre-tool-use hook
HIGH

Command

git push origin main --force
destructive_push overwrites_remote
project ClaudeControlCenter
tools 23 calls
22s
auto-denies
Claude Control Center
Sessions
📋 Activity
📁 Files
📄 Logs
Files · 4 changed
ClaudeControlCenter
Path · Delta · Time
EDITViews/DynamicIslandView.swift
+1 -1
0:12
READApp/AppState.swift
—
0:11
EDITApp/DynamicIslandController.swift
+3 -1
0:07
WRITEscripts/build_dmg.sh
+45
0:04
Claude Control Center
Settings
⚡ Rules
Allow Rules
Tool · Pattern · Note
Read*All read operations are safe
EditSources/*Source file edits in project
Bashswift build*Build commands auto-allowed
Bashgit status*Read-only git commands
Grep*Search is always safe
✓ v0.3.1 — Latest

Download
Claude Control Center.

Open the DMG, drag to Applications, and launch. Hooks install on first run — no terminal commands needed.

macOS 14 Sonoma or later
Universal binary — Apple Silicon & Intel
Requires Claude Code CLI
Free — MIT License
What installs on your Mac
/Applications/ClaudeControlCenter.app — the app bundle (menu bar + server)
~/.claude/ccc_token — 32-byte random auth token, readable only by you (mode 0600)
~/.claude/settings.json — 8 hook entries appended (existing hooks preserved)
Nothing else. No daemons, no LaunchAgents, no system-level changes.
⚠ Ad-hoc signed (not notarized). First launch: right-click → Open to pass Gatekeeper. App sandbox is disabled so CCC can read ~/.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.

MIT
License
Swift
Language
100%
Local
Quick start
$ git clone https://github.com/sparshalc/ClaudeControlCenter
$ cd ClaudeControlCenter
$ bash scripts/build_dmg.sh

FAQ

Common questions.

Yes — built specifically for the Claude Code CLI. It hooks into Claude Code's PreToolUse, PostToolUse, PermissionRequest, SessionStart, SessionEnd, and Stop hooks to receive live events. Any version of Claude Code that supports these hooks is compatible.
CCC is ad-hoc signed but not yet Apple-notarized, so Gatekeeper shows a warning on first launch. To open it: right-click the app in Finder and choose Open, then click Open in the dialog. You only need to do this once. The source code is fully public on GitHub — you can build from source and verify every line if you prefer.
No. CCC communicates exclusively over localhost:40440 — bound to the loopback interface. No telemetry, no analytics, no cloud sync, no account required. Your session data never leaves your Mac.
No. The installer appends hooks to ~/.claude/settings.json — your own home directory. No system-level permissions, no sudo, no accessibility entitlements beyond what a normal menu bar app uses.
Yes, completely free and open source under the MIT License. No pro tier, no subscription, no premium features locked away.
No. The installer appends CCC's hook scripts to your existing hooks configuration rather than replacing it. If you already have custom hooks, they continue to work alongside CCC. The installer is also idempotent — running it multiple times won't duplicate entries.
macOS 14 Sonoma or later on any Mac — Apple Silicon (M1 and later) or Intel. Ships as a universal binary so it runs natively on both architectures. The Dynamic Island pill falls back gracefully on Macs without a notch.
Delete the app from your Applications folder. To remove the hooks, open ~/.claude/settings.json and remove the CCC hook entries. No other files are created outside the app bundle and your home directory settings.