5 releases
| new 0.2.2 | Mar 1, 2026 |
|---|---|
| 0.2.1 | Jan 28, 2026 |
| 0.2.0 | Jan 28, 2026 |
| 0.1.1 | Jan 23, 2026 |
| 0.1.0 | Jan 19, 2026 |
#463 in Network programming
180KB
4.5K
SLoC
cursor-helper
Stop losing your Cursor chat history. This CLI fixes the things Cursor doesn't expose in the UI.
The Problem
When you rename or move a project folder, Cursor loses all your chat history. Weeks of conversations, context, and problem-solving — gone.
The Solution
cursor-helper rename /old/project /new/project
Your chat history, workspace settings, and MCP cache stay intact.
Installation
# From crates.io (recommended)
cargo install cursor-helper
# Or from source
git clone https://github.com/lucifer1004/cursor-helper
cd cursor-helper
cargo install --path .
Requires Rust 1.70+. Works on macOS, Linux, and Windows.
Pre-built binaries for major platforms are available on the Releases page.
Key Commands
rename — Move Projects Without Losing History
# Move/rename a project
cursor-helper rename /path/to/old-project /path/to/new-project
# Copy instead of move
cursor-helper rename --copy /path/to/project /path/to/project-copy
# Copy with full composer index rebuild (force re-index of chat sidebar)
cursor-helper rename --copy --force-index /path/to/project /path/to/project-copy
# Preview changes first
cursor-helper rename -n /path/to/old /path/to/new
For --copy, the command now:
- copies the full
workspaceStorage/<hash>/directory instead of onlystate.vscdb - updates
folderUri/ workspace mappings instorage.jsonandglobalStorage/state.vscdb - rewrites
composer.composerDatain the target workspace database (including normalized paths and hashes) - clears stale cache folders:
<Cursor config>/CachedData/<Cursor config>/GPUCache/<new workspace hash>/anysphere.cursor-retrieval/
Suggested validation cases:
-
same filesystem rename
cursor-helper rename /tmp/proj /tmp/proj-renamedand verify chat count matches before/after inlist. -
cross-filesystem copy Copy a project from one mount to another and run
cursor-helper rename --copy /mnt/source/proj /mnt/other/proj-copy; confirmlistshows full history in Cursor. -
UI refresh path Open Cursor after copy and confirm:
- sidebar shows full chat list
- individual sessions load correctly
- no duplicate or missing workspace prompts
export-chat — Export Everything Cursor Hides
Cursor's built-in export omits thinking blocks and tool calls. This doesn't.
# Full export with thinking, tools, and token counts
cursor-helper export-chat /path/to/project -v
# Just the conversations
cursor-helper export-chat /path/to/project
# Export to JSON
cursor-helper export-chat /path/to/project --format json -o export.json
# Split into separate files per session
cursor-helper export-chat /path/to/project --split --output ./chats/
# Exclude empty sessions
cursor-helper export-chat /path/to/project --exclude-blank
# Remote sessions (SSH, tunnels, WSL, dev containers)
cursor-helper export-chat /home/user/project # By remote path
cursor-helper export-chat --workspace-id abc123def # By workspace ID (from 'list')
| Flag | What it does |
|---|---|
--with-thinking |
Include AI reasoning/thinking blocks |
--with-tools |
Include tool calls (file reads, edits, etc.) |
--with-stats |
Include model name and token counts |
-v |
All of the above |
--split |
Export each session to a separate file |
--exclude-blank |
Skip sessions with no messages |
--include-archived |
Include archived sessions |
--workspace-id |
Export by workspace ID (for remote sessions) |
list — See All Your Projects
# List all projects (most recent first)
cursor-helper list
# Show workspace IDs (for use with export-chat --workspace-id)
cursor-helper list --with-id
# Sort by chat count
cursor-helper list --sort chats --limit 10
# Filter by type
cursor-helper list --filter remote # SSH/tunnel projects
cursor-helper list --filter local # Local projects
clean — Reclaim Disk Space
Remove workspace data for deleted projects.
cursor-helper clean --dry-run # Preview
cursor-helper clean --yes # Delete without confirmation
Other Commands
| Command | Description |
|---|---|
stats |
Show chat count and storage size for a project |
backup |
Create a portable backup of project metadata |
restore |
Restore metadata to a new location |
clone |
Duplicate a project with independent chat history |
How It Works
Cursor stores metadata in platform-specific locations:
| Platform | Location |
|---|---|
| macOS | ~/Library/Application Support/Cursor/User/workspaceStorage/ |
| Linux | ~/.config/Cursor/User/workspaceStorage/ |
| Windows | %APPDATA%\Cursor\User\workspaceStorage\ |
Each project has a unique ID derived from its path. When you rename a folder, the ID changes and Cursor can't find the old data. This tool updates the necessary references.
Note: Linux support is experimental. Workspace hash computation depends on filesystem birthtime support, which varies by filesystem and kernel version.
Disclaimer
This tool is not affiliated with or endorsed by Anysphere, Inc. (Cursor).
It reads your local data files for personal backup and portability. It does not access Cursor's servers, APIs, or source code. See DISCLAIMER.md for details.
License
MIT — see LICENSE.
Related
Dependencies
~30–41MB
~772K SLoC