Feature request for product/service
Cursor IDE
Describe the request
Cursor stores all chat, agent, and composer state in a single SQLite
database (state.vscdb). This database grows without bound — there is no
automatic pruning, no VACUUM, no lifecycle management. After weeks of
normal use, the file balloons to multiple GB.
The impact is brutal:
- Every read/write traverses massive B-trees
- WAL grows unchecked (checkpoint deferred for large DBs)
- The main process writes GB/min to the WAL file
- I/O storms cause CPU spikes, UI freezes, and terminal lag
- ‘Taking longer than expected’ on every AI request
- Eventually the editor becomes unusable — frozen for 10+ seconds between
keystrokes
This is not a niche issue. It hits every heavy user. The fix is mechanical:
prune stale agentKv:blob:, composer., bubbleId:* rows from cursorDiskKV,
then VACUUM. This reduces a 5+ GB database to ~50 MB in seconds.
REQUEST:
- Automatic state.vscdb maintenance — prune stale entries and VACUUM
periodically (or on startup) - Configurable retention — let users set how long chat/agent history is
kept - At minimum, expose a manual ‘Clean Database’ command in the command
palette
Until this is built in, I wrote cursor-clean — a Python toolkit that
diagnoses, cleans, and repairs the problem from the terminal:
It works. But users should not need a third-party tool to keep their editor
functional.
WHAT PROBLEM DOES THIS SOLVE:
Cursor becomes unusable after extended use due to unbounded state.vscdb
growth. Users on remote VMs, VNC setups, or machines without dedicated GPUs
are hit hardest — the software rendering already pushes CPU, and the I/O
storms from the bloated database make it unrecoverable without manual
intervention.
Operating System (if it applies)
Linux