๐ MyCursorData
Extract and export your Cursor IDE conversation history.
MyCursorData reads Cursor's internal SQLite database and exports all your AI conversations to readable text files, organized by project.
โจ Features
- ๐ Auto-discovery - Automatically finds your Cursor databases on macOS, Linux, and Windows
- ๐ Project organized - Exports conversations grouped by workspace/project
- ๐ ๏ธ Tool call tracking - Includes full tool call details (file edits, terminal commands, searches)
- โ Approval tracking - Shows which changes were approved/rejected by the user
- ๐ Statistics - Get quick stats about your conversation history
๐ฆ Installation
With pip
pip install mycursordataWith uv (recommended)
uv pip install mycursordataRun directly with uvx
uvx mycursordata ~/my-cursor-export๐ Usage
Quick Export
Export all conversations to a directory:
# Export to a directory
mycursordata export ~/cursor-export
# Or simply (export is the default command)
mycursordata ~/cursor-exportDiscover Databases
Find all available Cursor databases on your system:
mycursordata discoverOutput:
๐ Searching for Cursor databases...
Default search paths:
โ
/Users/you/Library/Application Support/Cursor/User/globalStorage/state.vscdb
โ /Users/you/Library/Application Support/Cursor Nightly/User/globalStorage/state.vscdb
...
๐ Found 1 database(s):
1. [GLOBAL] cursor/global
Path: /Users/you/Library/Application Support/Cursor/User/globalStorage/state.vscdb
Conversations: 42, Messages: 1337
View Statistics
Get quick stats about your conversation history:
mycursordata infoExport with Options
# Use a specific database file
mycursordata export ~/output -d /path/to/state.vscdb
# Show summary before exporting
mycursordata export ~/output --summary
# Verbose output for debugging
mycursordata export ~/output -v๐ Output Format
Conversations are exported as text files organized by project:
output/
โโโ my-project/
โ โโโ 2024-01-15_10-30-00_Add_dark_mode_toggle.txt
โ โโโ 2024-01-16_14-22-10_Fix_login_bug.txt
โโโ another-project/
โ โโโ 2024-01-17_09-00-00_Refactor_API.txt
โโโ unknown/
โโโ 2024-01-18_11-45-00_abc123.txt
Each file contains:
- Conversation metadata (name, timestamps, message count)
- Full message history with thinking blocks
- Tool calls with arguments and results
- Code blocks and diffs
- Approval summary (what was approved/rejected)
๐ง How It Works
Cursor stores its conversation history in a SQLite database called state.vscdb. This tool:
- Discovers the database by checking common locations for your OS
- Parses the key-value store to extract conversation data
- Groups conversations by project/workspace
- Formats everything into readable text files
Database Locations
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb |
| Linux | ~/.config/Cursor/User/globalStorage/state.vscdb |
| Windows | %APPDATA%\Cursor\User\globalStorage\state.vscdb |
๐ Python API
You can also use MyCursorData as a library:
from mycursordata import CursorDataParser, discover_cursor_databases
# Discover databases
databases = discover_cursor_databases()
for db in databases:
print(f"Found: {db['path']} ({db['source']})")
# Parse and export
with CursorDataParser("/path/to/state.vscdb") as parser:
# Get stats
stats = parser.get_bubble_stats()
print(f"Total conversations: {stats['conversations']}")
# Export all conversations
parser.export_all("./output")
# Or get raw data
conversations = parser.get_all_conversations()
for project, convs in conversations.items():
print(f"Project: {project}, Conversations: {len(convs)}")๐ Requirements
- Python 3.11+
- No external dependencies (uses only stdlib!)
๐ค Contributing
Contributions are welcome! Please open an issue or PR on GitHub.
๐ License
MIT License - see LICENSE for details.
On this page
Languages
Python95.9%Shell4.1%
Contributors
MIT License
Created December 17, 2025
Updated December 19, 2025