PromptWake for Cursor
Every Cursor conversation you have ever had is in one SQLite file, with no export and no second copy. PromptWake reads it continuously and keeps the record somewhere a corrupted database cannot take it.
One SQLite file holds every conversation. Corruption, an upgrade, or a cleanup takes all of it at once.
~/Library/Application Support/Cursor/User/globalStorage/state.vscdb- Storage
- One SQLite database for all conversations
- Measured on a working machine
- 6.4 GB, 521 conversations, 164,200 messages
- Export feature
- None
- Known failure
- "Loading Chat" hang when the database is damaged
- Conversations from the Cursor composer, per project
- Prompt and response text, kept outside the database that holds the original
- File changes associated with the conversation
- A timeline that survives the database being reset
Check the size of your own database before reading further. It is usually the number that makes the case:
ls -lh ~/Library/Application\ Support/Cursor/User/globalStorage/state.vscdbOn the machine used to write this, it is 6.4 GB — 521 conversations and 164,200 individual messages in a single file, with no export button and nothing else holding a copy.
How Cursor histories are actually lost
Not on a timer, the way Claude Code's are. Cursor loses history all at once, and the reports follow a pattern: the database is damaged after an unclean shutdown or a full disk, Cursor renames it to state.vscdb.corrupted and starts fresh, and the chat panel comes up empty. The standard advice in support threads at that point is to delete the database, which is why so many of these end in total loss.
The other common cause is quieter — rename or move a project and Cursor computes a different workspace hash, so the history looks gone while the conversations sit untouched under the old one.
What PromptWake does with Cursor specifically
The daemon reads state.vscdb the way you would read any SQLite file — read-only, without holding a lock that Cursor needs — and copies each conversation into its own store as it appears. From that point the record no longer depends on that file surviving. If the database is reset tomorrow, the timeline is still there.
That is the whole pitch for Cursor users, and it is deliberately narrow: we are not making Cursor better, we are making its history stop being a single point of failure.
Back it up today either way
DB=~/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb
sqlite3 "$DB" ".backup '$HOME/Backups/cursor-$(date +%F).vscdb'"Then, if you want it captured continuously rather than whenever you remember: npx promptwake init . starts capturing a project, and npx promptwake doctor shows what every AI tool on the machine is currently holding. Local tier is free and offline.
When it matters
How does the rest of the team see what I asked the AI?
A customer asks how AI-generated code is reviewed and retained. What do we show them?
How does someone new find out why this code was written this way?
Which change caused this, and why did it look correct at the time?
What leaves with the laptop?
Deeper on where Cursor keeps its history, and how to back it up without PromptWake: read the guide.
