Skip to content

Add Cursor IDE as a new data source#15

Open
wjessup wants to merge 1 commit intopeteromallet:mainfrom
wjessup:add-cursor-parser
Open

Add Cursor IDE as a new data source#15
wjessup wants to merge 1 commit intopeteromallet:mainfrom
wjessup:add-cursor-parser

Conversation

@wjessup
Copy link

@wjessup wjessup commented Feb 28, 2026

Summary

  • Adds Cursor IDE as a new data source, parsing conversations from its local SQLite database (state.vscdb)
  • Cursor-specific parsing logic lives in a new dataclaw/parsers/cursor.py module, with parser.py delegating to it
  • Extracts user/assistant messages, tool calls (with full structured outputs), thinking blocks, model info, and token counts
  • Handles MCP tool prefix stripping, nested JSON unwrapping, and workspace-based project grouping
  • Includes 11 tests covering discovery, session parsing, tool calls, thinking, edge cases

Test plan

  • All 301 tests pass (290 existing + 11 new cursor tests)
  • dataclaw list --source cursor discovers projects correctly
  • dataclaw export --source cursor --no-push produces valid JSONL with full tool outputs preserved
  • Verified on real Cursor database: 1562 sessions, 141k messages, 69k tool uses, zero parse errors

Made with Cursor

Parses conversations from Cursor's local SQLite database (state.vscdb), extracting user/assistant messages, tool calls, thinking blocks, and token counts. Cursor-specific code lives in dataclaw/parsers/cursor.py with the main parser.py delegating to it. Includes 11 tests covering discovery, parsing, tool calls, MCP prefix stripping, thinking, and nested JSON unwrapping.

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant