Summary
On macOS 26.3, Claude for Desktop runs (visible in Activity Monitor) but never shows a menu bar icon. The root cause is a new macOS 26 per-app approval system for menu bar status items.
Root Cause
macOS 26 introduced StatusKit — a gated approval system where every third-party app's menu bar icon starts as isAllowed: false and must be explicitly approved before it can appear. Approvals are stored in a root-owned plist:
~/Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter.plist
The trackedApplications key (a nested binary plist) contains per-bundle-ID entries:
{
"location": { "bundle": { "_0": "com.anthropic.claudefordesktop" } },
"menuItemLocations": [{ "bundle": { "_0": "com.anthropic.claudefordesktop" } }],
"isAllowed": false
}
When isAllowed is false, ControlCenter logs:
[com.apple.controlcenter:appStatusItems] Starting to track blocked host; (bid:com.anthropic.claudefordesktop-Item-0-XXX)
...and the status item is destroyed within ~100ms of launch. The app appears to run fine but has no menu bar presence.
How to Fix (for affected users)
Run the following in Terminal:
python3 - << 'PYEOF'
import plistlib, shutil, os
path = os.path.expanduser(
"~/Library/Group Containers/group.com.apple.controlcenter"
"/Library/Preferences/group.com.apple.controlcenter.plist"
)
shutil.copy(path, "/tmp/cc-fix.plist")
os.chmod("/tmp/cc-fix.plist", 0o644)
with open("/tmp/cc-fix.plist", "rb") as f:
data = plistlib.load(f)
inner = plistlib.loads(data["trackedApplications"])
for entry in inner:
if isinstance(entry, dict) and "isAllowed" in entry:
bid = entry.get("location", {}).get("bundle", {}).get("_0", "")
if bid == "com.anthropic.claudefordesktop":
entry["isAllowed"] = True
print("Fixed.")
data["trackedApplications"] = plistlib.dumps(inner, fmt=plistlib.FMT_BINARY)
with open("/tmp/cc-fix-patched.plist", "wb") as f:
plistlib.dump(data, f, fmt=plistlib.FMT_BINARY)
PYEOF
Then (requires sudo):
sudo cp /tmp/cc-fix-patched.plist "/Users/$USER/Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter.plist" && sudo chown root:wheel "/Users/$USER/Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter.plist" && sudo chmod 600 "/Users/$USER/Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter.plist" && killall ControlCenter && sleep 3 && killall Claude 2>/dev/null; sleep 1 && open -a Claude
Proper Fix (for Anthropic)
macOS 26 requires apps to handle the StatusKit approval flow on first launch — ensuring the user sees the "Allow in Menu Bar" prompt. If the prompt is never shown (e.g. due to app translocation or entitlement issues), the app silently ends up blocked with no way to recover without the manual fix above.
Additionally, Claude Desktop should have the following hardened runtime entitlements if not already present:
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
Environment
- macOS 26.x
- Claude for Desktop (any recent version)
- Confirmed:
com.anthropic.claudefordesktop has isAllowed: false in the trackedApplications plist on affected machines
Related
Summary
On macOS 26.3, Claude for Desktop runs (visible in Activity Monitor) but never shows a menu bar icon. The root cause is a new macOS 26 per-app approval system for menu bar status items.
Root Cause
macOS 26 introduced StatusKit — a gated approval system where every third-party app's menu bar icon starts as
isAllowed: falseand must be explicitly approved before it can appear. Approvals are stored in a root-owned plist:The
trackedApplicationskey (a nested binary plist) contains per-bundle-ID entries:{ "location": { "bundle": { "_0": "com.anthropic.claudefordesktop" } }, "menuItemLocations": [{ "bundle": { "_0": "com.anthropic.claudefordesktop" } }], "isAllowed": false }When
isAllowedisfalse, ControlCenter logs:...and the status item is destroyed within ~100ms of launch. The app appears to run fine but has no menu bar presence.
How to Fix (for affected users)
Run the following in Terminal:
Then (requires sudo):
Proper Fix (for Anthropic)
macOS 26 requires apps to handle the StatusKit approval flow on first launch — ensuring the user sees the "Allow in Menu Bar" prompt. If the prompt is never shown (e.g. due to app translocation or entitlement issues), the app silently ends up blocked with no way to recover without the manual fix above.
Additionally, Claude Desktop should have the following hardened runtime entitlements if not already present:
Environment
com.anthropic.claudefordesktophasisAllowed: falsein thetrackedApplicationsplist on affected machinesRelated