怎么删除 Cursor 的聊天记录,以及会失去什么

聊天是某个 SQLite 数据库里的行,而 IDE 还用这个库放其他所有东西

Cursor 不按会话一个文件来存。IDE 把聊天作为行存在 state.vscdb 里,这是一个 SQLite 数据库,同时也装着它其余的状态;而命令行版把转录写在完全另一处的普通文件里。你想删的是哪一个,决定了你能安全地做什么。

聊天在哪里

用户目录在 macOS 上是 ~/Library/Application Support/Cursor/User,别处是 ~/.config/Cursor/User,state.vscdb 在 globalStorage/ 下,以及每个 workspaceStorage/<id>/ 下。库里面,cursorDiskKV 表给每个聊天存一个值,键是 composerData:<id>,每条消息一个值,键是 bubbleId:<chat-id>:<bubble-id>。Cursor CLI 是简单的那种:~/.cursor/projects/<encoded-path>/agent-transcripts/**/*.jsonl,一个转录一个文件。

# IDE 的库
ls -lh ~/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb

# 里面有什么,前提是装了 sqlite3
sqlite3 ~/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb \
  "select count(*) from cursorDiskKV where key like 'composerData:%'"

# 命令行的转录,是普通文件
ls -t ~/.cursor/projects/*/agent-transcripts/**/*.jsonl | head

怎么删

从 Cursor 界面里删掉一个聊天。这不是在打太极——那个数据库是 IDE 拥有的、正在使用的状态,在编辑器运行时从底下改它,是人们连窗口布局和扩展设置一起弄丢的原因,本来只想删一个聊天。

如果你要的是历史从磁盘上消失,而不只是从列表里消失,先关掉 Cursor,并且清楚自己在删什么:

# 这个数据库里的聊天,以及其余每一处状态
rm ~/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb

# 某个工作区的聊天和那个工作区的状态
rm -rf ~/Library/Application\ Support/Cursor/User/workspaceStorage/<id>

# 只有命令行的转录,它们本来就只是转录
rm -rf ~/.cursor/projects/<encoded-path>/agent-transcripts

没有可用来恢复的归档。格式登记表逐字段记录了两个存储,包括 bubble 类型和毫秒时间戳。

如果原因是体积——几十 GB 的数据库——先找出是什么把它撑满,再决定要不要整个删掉。

你会失去什么

聊天是你当初想清楚了什么、智能体跑了什么的记录。Cursor 自带的搜索随这些行一起消失,之后的搜索也一样:你在三月回答过的问题,只有在三月的历史还存在于某处时才答得上来。

deja 两个存储都读——IDE 数据库通过 sqlite3,命令行转录直接读——连同这台机器上其他每个智能体的历史,所以你在 Cursor 里定下的事,会在 Claude Code 或 Codex 里回来。已经进索引的会话,在原件没了之后仍然搜得到;在裸 deja 打开的界面里,o 能把一个会话带到另一个智能体里继续。被删掉的命令行转录会列在界面的 Deleted 标签下;deja 不会把聊天写回 Cursor 的任何一个存储。

每个智能体把历史存在哪里 · Claude Code 的同一个问题 · 让 Cursor 也能召回其余的