Skip to content

Cursor 会话管理:如何找回和整理你的 AI 对话

Cursor 已成为许多开发者的首选 AI 编程 IDE。它的 Composer 模式能处理复杂的多文件编辑,Tab 补全也非常精准。但 Cursor 用户正面临一个日益突出的问题:会话管理。


问题所在:会话是隔离的

Cursor 按项目存储对话。这意味着:

1. 无法跨项目搜索

如果你上个月在项目 A 中解决了一个数据库迁移问题,现在在项目 B 中遇到类似问题,无法从 Cursor 中搜索之前的解决方案。

2. 会话过载

随着使用 Cursor 越来越多,会话列表会越来越长。找到特定对话变得像大海捞针。搜索功能仅限于当前项目。

3. 依赖订阅

你的会话历史与 Cursor 订阅绑定。停止付费,积累的知识就消失了。

4. 没有代码状态上下文

查看过去的对话时,你能看到 AI 建议了什么,但看不到当时的代码是什么样子。这使得很难理解为什么做出某些决策。


Cursor 会话存储位置

Cursor 在本地存储会话数据。位置取决于操作系统:

  • macOS: ~/Library/Application Support/Cursor/User/workspaceStorage/
  • Windows: %APPDATA%\Cursor\User\workspaceStorage\
  • Linux: ~/.config/Cursor/User/workspaceStorage/

每个工作空间获得一个唯一文件夹,包含 state.vscdb —— 一个包含对话的 SQLite 数据库。

你可以直接浏览这个数据库:

bash
# 查看数据库
sqlite3 ~/Library/Application/Support/Cursor/User/workspaceStorage/<hash>/state.vscdb

# 列出表
.tables

# 查询对话
SELECT * FROM cursorDiskKV WHERE key LIKE '%composer%';

实用的会话管理方法

方法 1:手动导出

对于重要的会话,手动导出:

  1. 在 Cursor 中打开对话
  2. 复制相关部分
  3. 保存为项目中的 Markdown 文件

优点:简单,无需工具。

缺点:繁琐,只捕获你记得导出的内容。

方法 2:数据库查询

对于高级用户,直接查询 SQLite 数据库:

bash
# 提取所有 composer 对话
sqlite3 state.vscdb "SELECT value FROM cursorDiskKV WHERE key LIKE '%composer%'" | jq .

优点:访问所有数据,可脚本化。

缺点:需要技术知识,数据格式复杂。

方法 3:专用会话管理工具

现在有一些工具专门解决会话管理的缺口。它们通常提供:

  • 全文搜索所有 Cursor 会话
  • 跨项目会话索引
  • 时间线可视化
  • 导出为标准格式

Mantra 是其中一个支持 Cursor 和其他 AI 编程工具的工具:

  • Universal Search:同时搜索 Cursor、Claude Code、Gemini CLI、Codex 的会话
  • Time Travel:查看对话时的代码状态
  • Local-first:所有数据留在本地
  • 永久免费:核心功能永久免费

Cursor 会话管理最佳实践

1. 使用描述性的对话标题

开始新的 Composer 对话时,使用清晰的标题描述问题。这使得以后更容易找到。

2. 定期导出

对于解决重要问题的会话,导出到项目文档中。docs/solutions/ 文件夹很合适。

3. 将会话关联到提交

当 Cursor 做出更改并提交时,在提交信息中引用会话。这创建了可搜索的链接。

4. 备份工作空间存储

将 Cursor 的工作空间存储包含在备份策略中。state.vscdb 文件包含宝贵的累积知识。


AI 编程会话管理的未来

随着 AI 编程工具变得更强大,我们与它们的对话变得更有价值。它们不仅仅是聊天日志——它们是我们解决问题过程的记录。

当前按工具隔离会话的方法是暂时的限制。未来是跨工具会话管理,在那里你的 AI 对话成为可搜索的知识库,无论你使用哪个工具。

无论你使用手动方法、数据库查询还是专用工具,关键是开始将 AI 编程会话视为值得保存的宝贵资产。


Mantra 是一个本地优先的 AI 编程会话查看器,支持 Cursor、Claude Code、Gemini CLI 和 Codex。核心功能永久免费。从 mantra.gonewx.com 下载。