Skip to main content

Cursor Plugin

The cursor-opensync-plugin syncs your Cursor AI coding sessions to OpenSync. It reads Cursor’s agent transcripts and conversation history, then pushes them to your dashboard. Source identifier: cursor

Installation

Install globally with npm:
npm install -g cursor-opensync-plugin
Or with yarn:
yarn global add cursor-opensync-plugin
Verify the installation:
cursor-sync --version

Setup

1

Generate an API key

Log in to opensync.dev, go to Settings, and click Generate API Key. Copy the key (starts with osk_).
2

Run login

cursor-sync login
Enter your Convex URL and API key when prompted:
  • Convex URL: https://polished-penguin-622.convex.cloud (for hosted) or your self-hosted URL
  • API Key: The key you copied from Settings
3

Verify the connection

cursor-sync status

Config file

Credentials are stored in ~/.cursor-sync/config.json:
{
  "convexUrl": "https://polished-penguin-622.convex.cloud",
  "apiKey": "osk_..."
}

Commands

cursor-sync login

Stores your Convex URL and API key.

cursor-sync status

Shows connection info and sync stats:
Connected: true
Convex URL: https://polished-penguin-622.convex.cloud
Sessions synced: 67
Last sync: 30 seconds ago

cursor-sync sync

Manually triggers a sync of all sessions.
cursor-sync sync

cursor-sync logout

Clears stored credentials.
cursor-sync logout

How syncing works

  1. Cursor stores conversation data in its workspace and agent transcript files.
  2. The plugin reads Cursor’s session data, parsing prompts, responses, tool calls, and model metadata.
  3. Each session is pushed to /sync/session with source: "cursor".
  4. Messages are pushed to /sync/message preserving the full conversation flow.
  5. Deduplication uses externalId from Cursor’s internal session identifiers.

What gets synced

DataSyncedNotes
User promptsYesFull text of all user messages
Assistant responsesYesComplete model responses
Model nameYesWhatever model Cursor used (GPT-4o, Claude, etc.)
Token countsYesPer-message and per-session
Tool callsYesFile edits, terminal commands, searches
File contextLimitedFile references are included, but full file contents are not synced
Cost estimateYesBased on the model used
File contents referenced in conversations are not synced to protect sensitive code. Only file paths and the conversational text are sent.

Supported models

Cursor supports multiple models. All are synced with their respective pricing:
ModelProviderInput (per 1M)Output (per 1M)
gpt-4oOpenAI$2.50$10.00
gpt-4o-miniOpenAI$0.15$0.60
claude-sonnet-4-20250514Anthropic$3.00$15.00
claude-3-5-haikuAnthropic$1.00$5.00
o3-miniOpenAI$1.10$4.40

Troubleshooting

Sessions not syncing

  1. Make sure Cursor is not actively writing to the session files during sync. Close Cursor or wait for a pause.
  2. Check plugin status: cursor-sync status
  3. Verify the Cursor data directory is accessible.
  4. Run cursor-sync sync to force a manual push.

Partial sessions

Very long Cursor sessions may be truncated during sync. This is a known limitation for sessions with hundreds of messages. The most recent messages are prioritized.

Authentication errors

  1. Re-run cursor-sync login with your current API key.
  2. Check that the API key is still active in the dashboard Settings.

Updating

npm update -g cursor-opensync-plugin

Uninstalling

cursor-sync logout
npm uninstall -g cursor-opensync-plugin
Synced sessions remain in your dashboard after uninstalling.