Cursor storage has grown to ~125GB on my Mac – how can I safely reduce it without losing history/context?

Cursor is currently using approximately 125GB of storage on my Mac, which seems completely excessive.

A very large amount appears to be associated with Cursor’s local application/state data. I use Cursor heavily on a large, long-running coding project, so I cannot simply delete/reset Cursor’s database, workspace state, chat history or anything that could cause loss of project context/history.

I’m looking for an official/safe way to reduce Cursor’s disk usage while preserving all important history, chats, project context and settings.

Specifically:

  • Is ~125GB expected under heavy usage, or does this indicate a storage/cache problem?
  • Is there an official cache/cleanup function?
  • Which Cursor folders/files can safely be cleared without losing chats, history or project context?
  • Can old logs, caches, indexes, checkpoints or temporary data be safely removed?
  • Is there a supported way to compact Cursor’s local database/state?
  • How can I prevent it growing back to this size?

Please do not suggest deleting/resetting state.vscdb, workspace storage, chat history or other persistent state unless you can confirm exactly what would be lost and that there is a supported backup/recovery process.

I’m happy to provide a disk-usage breakdown of the Cursor directories if that helps diagnose what is consuming the 125GB.

I’m on macOS and using Cursor extensively every day.

Any guidance from Cursor staff on the safest supported cleanup procedure would be appreciated.

Hey @George_Mortley, thanks for laying out your constraints so clearly.

To your first question: with sustained heavy agent use, storage in this range is not unheard of, and it does not by itself mean anything is corrupted. Almost all of it is very likely one file, state.vscdb in ~/Library/Application Support/Cursor/User/globalStorage, which holds your chats, agent checkpoints, and related data. That file growing this large is an issue we’re tracking. Nothing below requires you to delete that file or reset any state unless you want too.

Please start with the breakdown you offered, so we can confirm where the space actually is before you remove anything. Fully quit Cursor (Cmd+Q), run this in Terminal, and paste the output here:

du -sh ~/Library/Application\ Support/Cursor/* ~/Library/Application\ Support/Cursor/User/* ~/Library/Application\ Support/Cursor/User/globalStorage/* 2>/dev/null | sort -h | tail -15

Assuming state.vscdb is the bulk of it, here are the options in order of how much they preserve:

  1. Lossless cleanup. Open the Command Palette (Cmd+Shift+P) and run GC Agent KV Blobs. This finds agent data that is no longer referenced by any chat, removes only that, and then compacts the database. Every chat you can open today stays intact, and if the tool cannot fully verify what is still in use, it skips deletion entirely rather than guess. On a database this size it can run for a long time. It temporarily needs free disk space roughly equal to the current file size, so make sure you have that available, let it finish, and do not run agents while it works. When it finishes, quit fully with Cmd+Q (a window reload is not enough), then reopen and check the size. How much this recovers depends on how much of the file is orphaned data versus live history.

  2. If you need more space back than that, the only further lever is removing old chats, and that is permanent. Developer: Delete Old Chats... in the Command Palette asks for an age in days and deletes every chat with no activity for longer than that, including pinned ones, along with their checkpoints. It shows the count and asks you to confirm before deleting anything. Before you run it, export anything you want to keep from the chat’s menu (Export in the Agents Window, or Export Transcript in the editor chat panel). After it finishes, run GC Agent KV Blobs again, because Delete Old Chats on its own returns only a limited amount of space to the OS.

  3. If state.vscdb.backup shows up in your breakdown, that is an old copy Cursor no longer updates. You can delete just that file while Cursor is fully quit without affecting your current chats.

Lmk any follow-up questions!