[Bug] Claude Desktop VM disk image grows unbounded, exhausting system disk space

Open 💬 0 comments Opened Jul 7, 2026 by jessGLG

Bug Description

Issue description (for reporting)

Title: Claude Desktop's local-agent-mode VM disk image grows unbounded and is never trimmed, eventually exhausting disk space

Environment:

  • macOS (Darwin 25.5.0)
  • Claude Desktop app, local agent mode / sandboxed code execution feature ("Cowork" VM)
  • SDK version 2.1.181 (per .sdk-version in the VM folder)

Description:
Claude Desktop provisions a sandboxed Linux VM (~/Library/Application Support/Claude/vm_bundles/claudevm.bundle/) to support its local agent mode / code execution feature. The VM's root filesystem disk image (rootfs.img) is a growable disk that expands with usage but is never shrunk, compacted, or garbage-collected — even across app restarts. A compressed backup copy (rootfs.img.zst) is also retained alongside it, doubling the effective footprint.

Impact:

  • Disk space on the Mac shrinks progressively the more Claude Desktop is used, with no user-visible indication of the cause (Storage settings shows generic "System Data"/"Applications" buckets, not this folder specifically).
  • Once free space runs low enough (I was down to ~100 MB free on a 245 GB drive), unrelated system functions break: Chrome becomes unusable, Google Meet/Calls fail to connect, Messages attachments stop downloading, etc.
  • There is no in-app UI, setting, or menu action to inspect, cap, or manually clear this VM storage — the only fix found was manually deleting the folder from Terminal while the app was fully quit.
  • The app does not warn the user or self-manage when this cache grows to multi-gigabyte size.

Workaround: Fully quit Claude Desktop, then delete ~/Library/Application Support/Claude/vm_bundles/. The app recreates a fresh, small VM image on next use of the feature.

Environment Info

  • Platform: darwin
  • Terminal: Apple_Terminal
  • Version: 2.1.198
  • Feedback ID: 82d59637-a784-4842-8c3e-80348d00a98f

Errors

[]

View original on GitHub ↗