As a software engineer frequently balancing multiple projects simultaneously, I often have several Cursor windows open at once. Currently, the chat history and Composer sessions are isolated to their respective windows, which creates a significant workflow bottleneck.
When managing multiple ongoing tasks, it becomes difficult to track which technical questions were asked or which architectural decisions were discussed in a specific project window. This leads to “window hopping” to find specific snippets or context from previous interactions.
Proposed Feature:
A Unified Chat History View that aggregates all chat and agent interactions across all projects/workspaces into a single, searchable interface.
Key Benefits:
Centralized Knowledge: Quickly find previous solutions without remembering which workspace the chat originated in.
Context Switching Efficiency: Reduces the cognitive load and time lost when moving between different project windows.
Searchability: Enables global search across all past AI interactions.
Having a “Global History” panel (accessible via the Sidebar or a Command Palette shortcut) would significantly improve the developer experience for power users managing complex, multi-repo workflows.
Right now, chat history is actually isolated per workspace. Each Cursor window keeps its own history separately. Similar requests have already come up:
Check Chat Wizard - a VS Code extension (also available at Open VSX Marketplace) that supports Cursor - and provides searching capabilities across all chats, among other functionalities, such as injecting chat as context into a new conversation. Have been doing the job for me ever since.
Same pain here, I had chats spread over maybe 15 projects and no way to find the one where I’d figured out a build issue.
What I ended up doing: the chats are just files. On older builds it’s all in state.vscdb under globalStorage, newer builds write jsonl transcripts into ~/.cursor/projects/. Nothing about them is per-workspace once you read them directly, that’s only how the UI shows them.
brew install deja-vu (or npm i -g @vshulcz/deja-vu)
deja last --harness cursor
deja "that retry thing we discussed"
It picks up the history you already have, no need to turn anything on beforehand. Everything stays local, no model involved. It also reads Claude Code and Codex logs into the same index, which honestly turned out to be the useful part, half the time the thing I’m looking for was in a different tool.
Doesn’t give you a view inside Cursor obviously, but the search exists today if you don’t want to wait.
Hey, thanks for sharing workarounds in the thread. For users who need a fix right now, that’s helpful. Quick note: deja, Chat Wizard, and similar tools are community-made, not ours, and they read local history files directly (state.vscdb / jsonl transcripts). They run locally, but please use them at your own risk and make a backup of your history first.
On the request itself, our position is still the same as above: chat history is currently stored per workspace, and there isn’t a single global view across all projects in the product yet. We’ve passed the feedback to the team, but I can’t share a timeline for if or when this will happen.
This is clearly something users want, and there are several related requests. If it matters to you, please take a look and upvote:
Fair point on the backup, thanks. For what it’s worth deja opens state.vscdb read-only (sqlite3 -readonly, and immutable=1 when Cursor isn’t running) and never writes to the Cursor folder, the index lives in its own cache dir. But yes, a copy of the folder before trying any of these tools costs nothing.
For the “I remember the fix, but not which workspace it happened in” part, I have also found that very incovienient myself, so I built and maintained cursor-history, and its now a battle tested tool that have steady downloads and users, I am even looking to get cursor official’s support on this project as well to give users better experience.
One detail I’d add: CLI/ACP sessions can also have store.db files under ~/.cursor/chats/ and ~/.cursor/acp-sessions/. A transcript and its database don’t always contain the same information.
I maintain cursor-history. For finding a remembered phrase across local workspaces, the command is:
That searches readable, supported history already on disk, including chats from before installation. It doesn’t add a global panel in Cursor or make an IDE chat resumable in the CLI.
The local search I posted above is meant for that “which project did we solve this in?” problem: you can search a remembered error or function name without opening each workspace.
I maintain cursor-history. Its reader covers supported legacy Composer state.vscdb data, Agent JSONL transcripts, and newer CLI/ACP store.db sessions. Those can coexist on the same machine, including chats created before the tool was installed.
Once you find a conversation, you can inspect or export it. There’s also a separate MCP server so an assistant can search that existing history and retrieve the relevant context.
It still runs outside Cursor and doesn’t create a shared IDE/CLI resume identity. Would a terminal search or MCP lookup cover part of your workflow, or is browsing inside Cursor essential?
Hey, thanks for the workaround, @borui_cai. Same disclaimer as with deja and Chat Wizard above. cursor-history is community-made, not our tool. It reads local history files directly state.vscdb / jsonl transcripts / store.db. It runs locally, but please use it at your own risk and back up your history folder before running it.
On the request itself, our position hasn’t changed. Chat history is currently stored per workspace, and there’s no single global view across all projects in the product yet. I’ve passed the feedback to the team, but I can’t share a timeline on if or when it’ll happen.