[BUG] Desktop app helper `disclaimer` lacks entitlements for ~/Library/Mobile Documents (iCloud Drive) — extends #34554
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
The Claude desktop app launches Claude Code through a helper binary at
/Applications/Claude.app/Contents/Helpers/disclaimer. That helper cannot read any
path under ~/Library/Mobile Documents/ (iCloud Drive). It reads local paths fine,
and the same iCloud paths are readable by the same shell outside the helper.
This is the same root cause identified in #34554, which documented
~/Library/CloudStorage/ (OneDrive, Google Drive). This report extends the affected
path set to iCloud Drive's actual location, ~/Library/Mobile Documents/.
This is an entitlement problem, not a TCC permission problem. Both commands below
were run from Terminal.app, which has Full Disk Access granted. macOS attributes a
child process's file access to the responsible parent process, so if this were a
TCC gate the helper would have inherited that access and succeeded. It did not. No
permission grant can compensate for a missing entitlement.
Impact: users whose projects live in iCloud Drive cannot use the desktop app for
Claude Code sessions on those files. iCloud Drive is the default document location
on macOS and, unlike the CloudStorage providers, is not optional third-party
software. The failure is also silent — the underlying "Operation not permitted" is
never surfaced in the UI, so it presents as the app inexplicably not working with a
folder rather than as a permissions error the user could act on.
What Should Happen?
The disclaimer helper (and any other bundled helper that shells out to user paths)
should carry the FileProvider entitlements macOS requires for ~/Library/CloudStorage/
and ~/Library/Mobile Documents/, so Claude Code sessions can be started in
cloud-synced folders.
Failing that, the underlying permission error should be surfaced in the UI so users
can identify the cause instead of hitting a silent failure.
Error Messages/Logs
Failing case — iCloud Drive path:
$ /Applications/Claude.app/Contents/Helpers/disclaimer ls ~/Library/Mobile\ Documents/com~apple~CloudDocs/TestProjects/
ls: /Users/USER/Library/Mobile Documents/com~apple~CloudDocs/TestProjects/: Operation not permitted
Control — local path, same helper, same shell, seconds apart:
$ /Applications/Claude.app/Contents/Helpers/disclaimer ls ~/Claude/Cowork/Projects/
ExampleProject
Same iCloud path, read normally by the same shell:
$ ls ~/Library/Mobile\ Documents/com~apple~CloudDocs/TestProjects/
ExampleProject
(Folder names genericized; the failure does not depend on them.)
Steps to Reproduce
- Create a folder in iCloud Drive, e.g.
~/Library/Mobile Documents/com~apple~CloudDocs/TestProjects/
- Run: /Applications/Claude.app/Contents/Helpers/disclaimer ls ~/Library/Mobile\ Documents/com~apple~CloudDocs/TestProjects/
-> fails with "Operation not permitted"
- Run the same helper against any local path -> succeeds
- Run plain
lsagainst the iCloud path in the same shell -> succeeds
Claude Model
Opus
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
N/A — CLI not installed. Claude desktop app 1.32885.1 (a757f5), built 2026-08-18. Bug is in the app's bundled helper, not the standalone CLI.
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Environment:
- macOS Tahoe 26.6.2
- Claude desktop app 1.32885.1 (a757f5), built 2026-08-18T19:00:11Z — current build, no update available
- Electron 42.9.2 / Node 24.18.1
- Apple silicon (arm64)
- Terminal.app has Full Disk Access granted (relevant: see the entitlement argument above)
Related issues:
- #34554 — same root cause, documented for ~/Library/CloudStorage/. Closed as not planned / stale.
- #56927 —
@import silently fails on paths with spaces, same iCloud Drive location. Also closed as stale. Different mechanism, but part of a pattern: iCloud Drive paths fail in multiple components, always silently.
Note: Cowork's file bridge reads the same iCloud path without error on this machine, so the entitlement gap appears specific to the disclaimer helper rather than the app as a whole.