Cursor 的记忆导出

最近在使用 Cursor 时,遇到一个不少人都有的情况,换了项目目录 / 拉了新仓库 / 更新了 Cursor 版本 → 之前的 Chat 记录在 UI 中看不到了。

很多用户第一反应是:

"是不是被删了?"

"Cursor 不保存历史?"

"是不是只能靠截图和复制粘贴了?"

其实,大多数情况下:记录并没有丢,只是 Cursor 不再显示了。

本文从工程角度解释:

1️⃣ Cursor 的聊天记录究竟存在哪里

2️⃣ 为什么换项目 / 更新版本会"看不到"

3️⃣ 如何安全恢复 / 备份 / 导出


一、Cursor 的历史数据存储在哪里?

Cursor 的数据全部存储在本地(并不是云端),不同平台路径如下:

Platform Path
macOS ~/Library/Application Support/Cursor/User
Linux ~/.config/Cursor/User
Windows %APPDATA%\Cursor\User

目录结构大致如下:

复制代码
User/
├── globalStorage/      # 全局聊天数据
├── workspaceStorage/   # 每个项目对应独立数据
└── History/

二、核心数据库结构

Cursor 主要通过 SQLite 存储数据。

1️⃣ globalStorage

路径:

复制代码
globalStorage/state.vscdb

包含:

  • AI 全量回复
  • 每条消息(bubble)
  • Session 元信息

关键表:

复制代码
cursorDiskKV

Key 格式:

Key 含义
composerData:<composerId> 会话信息
bubbleId:<composerId>:<bubbleId> 单条消息

2️⃣ workspaceStorage

每个项目一个单独目录:

复制代码
workspaceStorage/<hash>/
├── state.vscdb
└── workspace.json

重点是:

  • workspace.json 记录真实项目路径
  • state.vscdb 记录该项目 Chat 列表和用户消息

三、为什么会"看不到历史"?

因为 Cursor 的设计是:

Chat 绑定的是"工作空间路径",而不是项目名或仓库本身。

于是会发生:

场景 结果
换目录 / rename Hash 变了,历史不再匹配
复制项目 新目录 = 新 workspace,历史不跟过去
重新打开一个空目录 Cursor 创建新 workspace
升级版本 Workspace mapping 可能变化

最终结果就是:

👉 历史存在,但 Cursor UI 没法自然关联回去,所以显示不出来。

这也是很多人选择手动复制 workspaceStorage 目录的原因 ------ 但这种方法风险很大,比如:

  • SQLite journal 不一致
  • 哈希映射不稳定
  • 不同 Cursor 版本 schema 不完全一致

四、如果需要恢复 / 备份 / 导出怎么办?

工程上有两种方式:

✅ 方式一:自己读 SQLite

你可以:

阅读:

复制代码
globalStorage/state.vscdb
workspaceStorage/*/state.vscdb

常见 SQL:

获取 session:

sql 复制代码
SELECT value FROM ItemTable
WHERE key = 'composer.composerData';

获取消息:

sql 复制代码
SELECT key, value FROM cursorDiskKV
WHERE key LIKE 'bubbleId:<composerId>:%'
ORDER BY rowid ASC;

能恢复,但工作量较大,且要处理:

  • 新旧版本 schema
  • tool calls / diffs / thinking 字段
  • path mapping

✅ 方式二:使用现成工具(推荐)

如果你不想手动分析/拼接 Cursor 的 SQLite 数据结构(globalStorage + workspaceStorage + composer/bubble 键值映射),更省事的方式是直接使用现成工具完成读取、恢复与迁移。

我基于上述存储结构实现了两个开源项目:

1)cursor-history(CLI / Library)

核心能力是把 Cursor 本地数据库中的内容结构化还原出来,实现:

  • 稳定读取 Cursor 本地 SQLite(不依赖云)
  • 重建 Session → Message → Bubble(含时间戳、tool calls、diff 等)
  • 支持浏览 / 搜索 / 导出(Markdown / JSON)
  • 支持备份 / 恢复
  • 支持跨 workspace 的会话迁移(项目移动/重命名后依然可追溯)

项目完全开源,逻辑上等价于把 Cursor 历史作为"可查询的数据源"而不是仅仅在 UI 中可见。

2)cursor-history-mcp(MCP Server,面向 Claude 集成)

如果你同时使用 Claude / Claude Code / Claude Desktop,希望用自然语言直接检索历史对话,可以使用 MCP 版本:

  • 通过 MCP 把 Cursor 历史暴露给 Claude
  • 支持自然语言查询、导出、备份等操作
  • npx 即跑,零安装/零配置
  • 直接读 SQLite,不需要 embeddings/向量库,更稳定可复现(grep-style 搜索)

MCP 配置示例(Claude Code / Claude Desktop 通用)

在 MCP 配置中加入:

json 复制代码
{
  "mcpServers": {
    "cursor-history": {
      "command": "npx",
      "args": ["-y", "cursor-history-mcp"]
    }
  }
}

完成后,你就可以在 Claude 里直接"问" Cursor 历史(例如查某个 bug 讨论、找某段 diff、回顾某次设计决策),相当于把本地 chat history 变成可检索的知识库。


五、总结

  • Cursor 聊天记录没有"真的消失",只是绑定到 workspace 路径
  • globalStorage + workspaceStorage = 完整历史
  • 手动复制目录可以,但麻烦
相关推荐
阡陌数智1 小时前
基于大语言模型的通用可配置 PII 隐私数据检测方案
人工智能·语言模型·自然语言处理
weixin_435208161 小时前
【大模型面试宝典】开源啦!!!
人工智能·职场和发展·agent·deepseek
user_admin_god1 小时前
第 11 篇:实践三 —— 表单 / 合同字段抽取
java·人工智能·spring boot·语言模型
北极有牛1 小时前
cuda算子--矩阵转置
人工智能·算法
诺鸭船长1 小时前
上帝之手Blender丨从入门到榨干
人工智能
lucas_AI1 小时前
第 9 讲 · 编译期优化:让编译器和反汇编告诉你真相
人工智能
无限压榨切图仔1 小时前
加了“去 AI 味”Skill,水稿还是水:AI 写作流程缺的不是润色
人工智能·程序员
天远数科1 小时前
零信任架构实战:基于天远车型识别精准构建自动化二手车评估网关
人工智能·ai·工具分享
用户1917291270831 小时前
多 Agent 并行不打架:worktree 隔离与反馈回流落地(附脚本)
人工智能