怎么删除 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 的任何一个存储。