一天一个开源项目(第47篇):Cursor Chat Browser - 浏览和管理 Cursor AI 聊天历史的 Web 应用

一天一个开源项目(第47篇):Cursor Chat Browser - 浏览和管理 Cursor AI 聊天历史的 Web 应用

引言

“View, search, and export your AI conversations in various formats.”

这是「一天一个开源项目」系列的第 47 篇文章。今天介绍的项目是 Cursor Chat BrowserGitHub)。

使用 Cursor 编辑器进行 AI 编程时,是否遇到过这些问题:想回顾之前的对话却找不到?想搜索某个技术问题的解决方案却无从下手?想导出聊天记录分享给团队却不知道如何操作?Cursor Chat Browser 是一个用于浏览和管理 Cursor 编辑器 AI 聊天历史的 Web 应用,支持查看、搜索和导出你的 AI 对话为 Markdown、HTML、PDF 等多种格式,让你轻松管理和回顾与 AI 的对话历史。

为什么值得看?

  • 🔍 浏览和搜索:浏览所有工作区的 Cursor 聊天历史,全文搜索功能
  • 🌐 多存储支持:支持工作区特定存储和全局存储(新版本 Cursor)
  • 🤖 双重日志:同时支持 AI 聊天日志和 Composer 日志
  • 📁 工作区组织:按工作区组织聊天记录
  • 📱 响应式设计:支持深色/浅色模式,移动端友好
  • ⬇️ 多格式导出:支持 Markdown、HTML(语法高亮)、PDF 导出
  • 🎨 语法高亮:代码块语法高亮显示
  • 📌 可收藏链接:支持书签化的聊天 URL

你将学到什么

  • Cursor Chat Browser 的核心功能和特性
  • Cursor 编辑器聊天历史的存储机制
  • 如何浏览、搜索和导出聊天记录
  • 跨平台路径自动检测机制
  • Next.js + TypeScript + Tailwind CSS 技术栈实践
  • SQLite 数据库读取和解析

前置知识

  • 了解 Cursor 编辑器的基本使用
  • 对 Web 应用开发有基本了解
  • 了解 Next.js 框架(可选)
  • 对 SQLite 数据库有基本了解(可选)

项目背景

项目简介

Cursor Chat Browser 是一个用于浏览和管理 Cursor 编辑器 AI 聊天历史的 Web 应用。它解决了 Cursor 编辑器本身无法方便地浏览、搜索和导出聊天历史的问题,让开发者能够更好地管理和回顾与 AI 的对话。

核心特点

  • 浏览功能:浏览所有工作区的聊天历史
  • 搜索功能:全文搜索,支持按聊天类型过滤
  • 导出功能:支持 Markdown、HTML、PDF 多种格式
  • 多存储支持:兼容新旧版本的 Cursor 存储格式
  • 双重日志:同时支持 AI 聊天和 Composer 日志
  • 自动检测:自动检测 Cursor 工作区存储路径
  • 响应式设计:支持深色/浅色模式,移动端友好

解决的核心问题

  • Cursor 编辑器无法方便地浏览历史聊天记录
  • 无法搜索之前的对话内容
  • 无法导出聊天记录分享或备份
  • 多个工作区的聊天记录分散,难以统一管理
  • 新版本 Cursor 改变了存储格式,需要兼容

面向的用户

  • 使用 Cursor 编辑器进行 AI 编程的开发者
  • 需要回顾和整理 AI 对话历史的用户
  • 需要导出聊天记录分享给团队的开发者
  • 需要备份重要对话的用户
  • 希望更好地管理 AI 编程对话的开发者

作者/团队介绍

  • 作者Thomas PedersenGitHub
  • 背景:开源开发者,专注于开发实用工具
  • 理念:让开发者更好地管理和利用 AI 对话历史
  • 社区:500+ stars,87+ forks,活跃的社区支持

项目数据

技术栈

  • 框架: Next.js 14 (App Router)
  • 语言: TypeScript (93.7%)
  • 样式: Tailwind CSS (6.0%)
  • UI 组件: shadcn/ui
  • 数据库: SQLite(读取 Cursor 聊天数据库)
  • Node.js: 18+

重要特性

  • 支持 Windows、macOS、Linux、WSL2
  • 自动检测 Cursor 工作区存储路径
  • 支持新旧版本的 Cursor 存储格式
  • 响应式设计,支持深色/浅色模式

主要功能

核心作用

Cursor Chat Browser 的核心作用是:提供一个 Web 界面来浏览、搜索和管理 Cursor 编辑器的 AI 聊天历史,让开发者能够:

  1. 浏览历史:查看所有工作区的聊天记录
  2. 搜索对话:全文搜索所有聊天内容
  3. 导出记录:导出为 Markdown、HTML、PDF 格式
  4. 组织管理:按工作区组织聊天记录
  5. 类型区分:区分 AI 聊天和 Composer 日志
  6. 跨平台:支持 Windows、macOS、Linux、WSL2

使用场景

  1. 回顾对话历史
    • 查找之前解决的技术问题
    • 回顾 AI 给出的代码建议
    • 查看之前的错误解决方案
  2. 知识整理
    • 导出重要对话为文档
    • 整理技术问题和解决方案
    • 创建知识库
  3. 团队分享
    • 导出聊天记录分享给团队成员
    • 将 AI 对话作为文档保存
    • 创建技术文档
  4. 备份管理
    • 备份重要的 AI 对话
    • 跨设备同步聊天历史
    • 版本控制聊天记录
  5. 搜索和分析
    • 搜索特定技术问题的解决方案
    • 分析 AI 对话模式
    • 查找代码示例

快速开始

安装

# 克隆仓库git clone https://github.com/thomas-pedersen/cursor-chat-browser.git cd cursor-chat-browser # 安装依赖npminstall# 启动开发服务器npm run dev 

访问

  • 打开浏览器访问:http://localhost:3000

配置

应用会自动检测 Cursor 工作区存储路径:

  • Windows: %APPDATA%\Cursor\User\workspaceStorage
  • WSL2: /mnt/c/Users/<USERNAME>/AppData/Roaming/Cursor/User/workspaceStorage
  • macOS: ~/Library/Application Support/Cursor/User/workspaceStorage
  • Linux: ~/.config/Cursor/User/workspaceStorage
  • Linux (remote/SSH): ~/.cursor-server/data/User/workspaceStorage

如果自动检测失败,可以在配置页面(⚙️)手动设置路径。

注意:新版本的 Cursor 已将聊天数据存储从工作区特定位置移动到全局存储。此应用现在支持两种存储方法,以确保与所有 Cursor 版本兼容。

核心特性

  1. 浏览功能
    • 查看所有工作区的聊天历史
    • 按工作区组织聊天记录
    • 浏览 AI 聊天日志和 Composer 日志
    • 在工作区内的不同聊天标签之间导航
    • 查看带类型指示器的合并日志
    • 显示每个工作区的聊天和 Composer 数量
  2. 搜索功能
    • 在导航栏中使用搜索栏搜索所有日志
    • 按聊天日志、Composer 日志或两者过滤结果
    • 搜索结果显示:
      • 类型徽章(Chat/Composer)
      • 匹配的文本片段
      • 工作区位置
      • 标题
      • 时间戳
  3. 导出功能
    • Markdown:纯文本格式,带代码块
    • HTML:带语法高亮的样式文档
    • PDF:适合分享的格式化文档
  4. 多存储支持
    • 支持工作区特定存储(旧版本)
    • 支持全局存储(新版本 Cursor)
    • 自动检测存储位置
    • 兼容所有 Cursor 版本
  5. 双重日志支持
    • AI 聊天日志
    • Composer 日志
    • 类型区分和过滤
    • 合并视图
  6. 用户体验
    • 响应式设计
    • 深色/浅色模式支持
    • 语法高亮的代码块
    • 可收藏的聊天 URL
    • 自动工作区路径检测

项目优势

对比项Cursor Chat BrowserCursor 编辑器内置手动导出
浏览历史✅ Web 界面,易于浏览⚠️ 仅当前会话❌ 不支持
搜索功能✅ 全文搜索,支持过滤❌ 不支持❌ 需手动查找
导出格式✅ Markdown、HTML、PDF❌ 不支持⚠️ 需手动复制
多工作区✅ 统一管理所有工作区⚠️ 分散在各工作区⚠️ 需逐个处理
类型区分✅ 区分 Chat 和 Composer⚠️ 需手动区分❌ 不支持
跨平台✅ Windows、macOS、Linux✅ 跨平台✅ 跨平台
语法高亮✅ 代码块语法高亮✅ 支持❌ 需手动处理
备份管理✅ 导出备份⚠️ 需手动复制文件⚠️ 需手动操作

为什么选择 Cursor Chat Browser?

  • 便捷浏览:Web 界面,易于浏览和搜索历史对话
  • 多格式导出:支持 Markdown、HTML、PDF,满足不同需求
  • 全文搜索:快速找到需要的对话内容
  • 统一管理:统一管理所有工作区的聊天记录
  • 自动检测:自动检测 Cursor 存储路径,无需手动配置
  • 开源免费:MIT 许可证,完全免费使用

项目详细剖析

架构设计

Cursor Chat Browser 采用 Next.js 14 App Router 架构,使用 TypeScript 开发,通过 SQLite 读取 Cursor 的聊天数据库。

核心组件

Cursor Chat Browser ├── Next.js 14 (App Router) │ ├── 页面路由 │ ├── 服务端组件 │ └── 客户端组件 ├── SQLite 数据库读取 │ ├── 读取 state.vscdb 文件 │ ├── 解析聊天记录 │ └── 解析 Composer 日志 ├── UI 组件 (shadcn/ui) │ ├── 导航栏 │ ├── 搜索栏 │ ├── 聊天列表 │ └── 导出功能 └── 样式系统 (Tailwind CSS) ├── 响应式设计 └── 深色/浅色模式 

设计理念

  1. 简单易用:Web 界面,无需复杂配置
  2. 自动检测:自动检测 Cursor 存储路径
  3. 兼容性:支持新旧版本的 Cursor 存储格式
  4. 响应式:支持桌面和移动端
  5. 可扩展:基于 Next.js,易于扩展功能

Cursor 存储机制

Cursor 编辑器将聊天历史存储在 SQLite 数据库中(state.vscdb 文件)。

存储位置

  • Windows: %APPDATA%\Cursor\User\workspaceStorage\<workspace-id>\state.vscdb
  • macOS: ~/Library/Application Support/Cursor/User/workspaceStorage/<workspace-id>/state.vscdb
  • Linux: ~/.config/Cursor/User/workspaceStorage/<workspace-id>/state.vscdb

新版本变化

  • 旧版本:每个工作区有独立的 state.vscdb 文件
  • 新版本(v44.9+):使用全局存储,聊天数据集中管理

数据库结构

-- 简化的数据库结构CREATETABLE ItemTable (keyTEXTPRIMARYKEY,valueTEXT-- JSON 格式的聊天数据);

路径自动检测

应用会自动检测不同平台的 Cursor 存储路径:

检测逻辑

// 伪代码示例functiondetectCursorPath():string{const platform = process.platform;switch(platform){case'win32':return path.join(process.env.APPDATA,'Cursor/User/workspaceStorage');case'darwin':return path.join(os.homedir(),'Library/Application Support/Cursor/User/workspaceStorage');case'linux':// 检查是否是 WSL2if(isWSL2()){return`/mnt/c/Users/${username}/AppData/Roaming/Cursor/User/workspaceStorage`;}return path.join(os.homedir(),'.config/Cursor/User/workspaceStorage');default:thrownewError('Unsupported platform');}}

手动配置

如果自动检测失败,用户可以在配置页面手动设置路径:

  1. 点击配置图标(⚙️)
  2. 输入 Cursor 工作区存储路径
  3. 保存配置

搜索功能实现

搜索功能支持全文搜索和类型过滤:

搜索流程

1. 用户输入搜索关键词 ↓ 2. 扫描所有工作区的 state.vscdb 文件 ↓ 3. 解析聊天记录和 Composer 日志 ↓ 4. 全文搜索匹配内容 ↓ 5. 按类型过滤(Chat/Composer/All) ↓ 6. 显示搜索结果 

搜索结果展示

  • 类型徽章(Chat/Composer)
  • 匹配的文本片段(高亮显示)
  • 工作区位置
  • 标题
  • 时间戳

导出功能

支持三种导出格式:

Markdown 导出

# Chat Title ## User 用户消息内容 ## Assistant AI 回复内容 ```code 代码块内容 
 **HTML 导出**: - 带样式的 HTML 文档 - 代码块语法高亮(使用 highlight.js 或类似库) - 响应式设计 - 可打印格式 **PDF 导出**: - 使用浏览器打印功能或 PDF 库 - 格式化文档 - 适合分享和存档 **导出实现**: ```typescript // 伪代码示例 async function exportChat(chatId: string, format: 'md' | 'html' | 'pdf') { const chat = await loadChat(chatId); switch (format) { case 'md': return exportAsMarkdown(chat); case 'html': return exportAsHTML(chat); case 'pdf': return exportAsPDF(chat); } } 

技术栈详解

Next.js 14 App Router

  • 使用最新的 App Router 架构
  • 服务端组件和客户端组件混合使用
  • 文件系统路由
  • 服务端数据获取

TypeScript

  • 类型安全
  • 更好的开发体验
  • 代码提示和错误检查

Tailwind CSS

  • 实用优先的 CSS 框架
  • 快速开发
  • 响应式设计
  • 深色模式支持

shadcn/ui

  • 基于 Radix UI 的组件库
  • 可访问性支持
  • 可定制样式
  • 组件丰富

SQLite

  • 使用 better-sqlite3 或类似库读取数据库
  • 轻量级,无需额外服务
  • 直接读取 Cursor 的数据库文件

兼容性处理

项目需要处理新旧版本的 Cursor 存储格式差异:

旧版本(工作区特定存储)

workspaceStorage/ ├── workspace-id-1/ │ └── state.vscdb ├── workspace-id-2/ │ └── state.vscdb └── ... 

新版本(全局存储)

User/ ├── workspaceStorage/ │ └── (旧格式) └── globalStorage/ └── (新格式) 

兼容策略

  1. 同时检查两种存储位置
  2. 优先使用新格式
  3. 如果新格式不存在,回退到旧格式
  4. 统一数据模型处理两种格式

项目地址与资源

官方资源

适用人群

  • Cursor 用户:使用 Cursor 编辑器进行 AI 编程的开发者
  • 知识管理:需要整理和回顾 AI 对话历史的用户
  • 团队协作:需要导出和分享聊天记录的团队
  • 备份需求:需要备份重要对话的用户
  • Web 开发者:学习 Next.js + TypeScript + Tailwind CSS 的开发者

欢迎来我中的个人主页找到更多有用的知识和有趣的产品

Read more

OpenClaw视觉操作实战:不写接口,让AI直接点按钮、操作软件

OpenClaw视觉操作实战:不写接口,让AI直接点按钮、操作软件

文章目录 * 前言 * 一、OpenClaw是啥?你的数字长工 * 二、视觉操作的核心:Snapshot快照系统 * 1. 告别元素定位地狱 * 2. 自适应界面变化 * 3. 跨应用操作 * 三、实战:手把手教你让AI自动填表 * 步骤1:安装与环境准备 * 步骤2:启动视觉模式 * 步骤3:编写自动化脚本 * 步骤4:进阶:自动下载报表 * 四、不止浏览器:桌面软件也能点 * 五、定时任务:让AI自己起床干活 * 六、数据安全:你的隐私留在本地 * 七、避坑指南:新手常踩的雷 * 1. 动态加载的坑 * 2. 弹窗处理 * 3. API额度控制 * 4. 元素编号会变 * 八、总结:从“码农”

从指令到执行:OpenClaw 底层原理深度拆解 —— 一台真正会 “动手” 的本地 AI 引擎

从指令到执行:OpenClaw 底层原理深度拆解 —— 一台真正会 “动手” 的本地 AI 引擎

前言 当我们对 OpenClaw 发出一句自然语言指令:“把桌面所有超过一周的截图归档到 D 盘,再把今天的工作记录整理成 Markdown 并推送到 GitHub。” 传统 AI 会给出步骤,而 OpenClaw 会直接做完。 绝大多数文章只告诉你 OpenClaw “能做什么”,却极少解释它到底是如何做到的: * 一段文字,是怎么变成可执行的系统操作? * 它凭什么能跨 IM、跨平台、跨模型统一工作? * 高权限执行,底层是如何保证安全与可控? * 本地运行、隐私闭环,在架构上究竟如何实现? 本文不讲功能、不讲教程,只讲原理。从意图解析、任务编排、执行引擎、权限沙箱到多模态交互,带你从 0 到 1 理解 OpenClaw 的技术本质:它不是一个聊天机器人,而是一套本地优先、可解释、可审计、

AI网络技术演进对路由协议的重塑分析(下)

AI网络技术演进对路由协议的重塑分析(下)

5. 标准化进展与生态构建 5.1 国际标准化:框架演进与协议扩展 AI网络技术的标准化进程呈现出明显的“私有协议→联盟标准→国际规范”渐进式演进路径。在这一过程中,国际标准组织如IETF、IEEE和ITU-T发挥着关键作用,通过框架性标准引导技术发展方向,同时保持足够的灵活性以适应快速创新。 IETF在路由协议的AI增强扩展方面进展显著。Segment Routing技术通过流量工程与路径编程能力,为AI驱动的动态路由提供了基础框架。SRv6(Segment Routing over IPv6)更是将可编程性与IPv6的扩展性相结合,使网络能够基于应用需求动态构建端到端路径。BGP Add-Paths扩展(RFC 9012)则增强了路径多样性选择,支持AI算法对多路径的并行评估与优化。这些扩展为AI网络提供了必要的协议基础,使智能路由能够在不破坏现有网络互联的前提下实现渐进式部署。 3GPP在5G-Advanced和6G标准化中明确了AI原生网络的技术方向。TR 38.901等技术报告提出了将机器学习模型集成到无线资源管理与切换决策流程的框架,实现AI路由协议与移动通信体系的

从思考到实现:在 VS Code 中集成 MiniMax M2.1,解锁 AI 编程新范式

从思考到实现:在 VS Code 中集成 MiniMax M2.1,解锁 AI 编程新范式

在 AI 辅助编程(AI Coding)百家争鸣的今天,开发者们一直在寻找那个既能理解复杂逻辑、又能精准产出代码的“神队友”。最近,MiniMax M2.1 凭借其独特的 Interleaved Thinking(交错思考) 机制,在编程圈引起了广泛关注。 为什么选择 MiniMax 进行编程? 1. 逻辑严密的“交错思考”:不同于普通模型直接输出代码,M2.1 会先在 <think> 标签内进行深度推理,分析架构后再下笔,极大地减少了逻辑断层。 2. 超大上下文支持:在处理大型项目或重构复杂函数时,M2.1 能够精准捕捉全局上下文信息。 3. 极速中文理解:作为国产大模型的佼佼者,它在中文注释理解和响应速度上有着天然优势,拒绝“小作文”式的废话。 选购指南:主流