Claude Desktop local agent silently downloads an 8.5 GB iOS Simulator runtime and leaves system-wide devices and caches without storage confirmation

Status Open
Reported on v2.1.229
Maintainer reply None cached
Activity 0 comments · opened Aug 20, 2026

Description

A Claude Desktop local-agent session executed:

xcodebuild -downloadPlatform iOS

as a background task without asking for confirmation or disclosing the download size.

The command downloaded an approximately 8.5 GB iOS Simulator runtime. Registering that runtime caused CoreSimulator to create a full default device set and persistent runtime caches shared by every Claude Desktop session and other development tools on the Mac.

This is not ordinary temporary build output. The downloaded runtime, generated simulator devices, and dyld caches remain after the Claude session ends and after Claude Desktop is restarted.

What happened

The session first encountered an Xcode SDK / simulator-runtime mismatch.

Claude then said it would check whether a matching runtime could be downloaded, but immediately started this command in the background:

{
  "command": "xcodebuild -downloadPlatform iOS 2>&1 | tail -30",
  "description": "Attempt to download/update matching iOS simulator platform via xcodebuild",
  "timeout": 300000,
  "run_in_background": true
}

There was no intervening user confirmation.

When the task completed, Claude reported that the 8.5 GB download had succeeded.

CoreSimulator logs show that the new iOS 26.5 runtime was registered immediately afterward and 11 default simulator devices were created.

Before these Claude-driven simulator workflows, the machine had two simulator devices. It now has 15. One of the 11 newly generated iOS 26.5 devices was later deleted, leaving:

  • 2 original devices
  • 3 additional iOS 26.3 default devices recreated during another Claude build workflow
  • 10 remaining iOS 26.5 default devices

Persistent disk impact

Directly attributable to the Claude-triggered iOS 26.5 provisioning:

  • Downloaded iOS 26.5 runtime MobileAsset: approximately 7.9 GB on disk
  • iOS 26.5 CoreSimulator dyld cache: approximately 3.0 GB
  • Default iOS 26.5 simulator device directories: approximately 200 MB in their initial/shutdown state
  • 11 iOS 26.5 default devices were created; one was later deleted, leaving 10 from that runtime and 15 simulator devices total on the machine

The directly attributable persistent footprint is therefore approximately 11 GB, before later app installations or normal simulator use add further device data.

For clarity, an older 7.8 GB iOS 26.3 runtime asset and approximately 10 GB accumulated in the two pre-existing simulator devices are excluded from this figure because they predate this runtime-download incident. Three additional iOS 26.3 default device directories created during another Claude workflow account for only about 50 MB.

Deleting ordinary project build output does not reclaim the downloaded runtime or its dyld cache. The user has to discover and remove them through CoreSimulator/Xcode-specific tooling.

Why this is a Claude product issue

xcodebuild -downloadPlatform is a material, machine-wide provisioning operation, not a normal project-local build command.

It can:

  • download multiple gigabytes;
  • consume metered network traffic;
  • register a new system-wide simulator runtime;
  • create a complete default simulator-device set;
  • generate additional multi-gigabyte dyld caches;
  • affect other Claude sessions because CoreSimulator state is machine-global;
  • persist after the initiating session ends.

The local-agent permission flow did not distinguish this operation from an ordinary build command.

This was observed under bypassPermissions, but a multi-gigabyte system provisioning operation should still be surfaced before execution, or at minimum clearly announced with its estimated size and persistent effects.

Expected behavior

Before running known provisioning commands such as:

xcodebuild -downloadPlatform <platform>
xcrun simctl runtime add <image>

Claude Desktop should:

  1. Display the estimated download and installed size.
  2. Explain that the operation installs a system-wide runtime and creates simulator devices and caches.
  3. Require explicit user confirmation before starting.
  4. Avoid starting the download as an unattended background task.
  5. Surface the installed runtime in a storage/cleanup view after the session.
  6. Track which session initiated the provisioning operation.
  7. Avoid force-restarting CoreSimulatorService as a build-retry strategy.

A normal project build may proceed autonomously, but installing an 8.5 GB platform runtime should be treated as a separate, material system change.

Environment

  • Claude Desktop 1.32885.1
  • Embedded Claude Code 2.1.229
  • macOS 27.0 beta (26A5416b)
  • Xcode 26.6 (17F113)
  • Existing runtime: iOS 26.3
  • Runtime installed by the Claude session: iOS 26.5
  • Permission mode: bypassPermissions

Related but distinct

  • #88217 — iOS Simulator panel routes actions to the wrong attached device and retains stale device state. That issue concerns device targeting and panel recovery; this report concerns unconfirmed multi-gigabyte system provisioning and persistent disk usage.
  • #16824 — expensive background operation performed without confirmation.
  • #84939 — automatic dependency installation with persistent disk impact.
  • #81593 — uncleaned Claude-related disk consumption.

View original on GitHub ↗