VS Code Extensions
C

Cursor SSH Settings Sync

by nixomose

Sync Cursor/VS Code settings across machines using your own SSH server — Settings, keybindings, snippets, tasks, extensions, UI state, and profiles.

Downloads

0

Rating

(0)

Version

0.1.1

Last updated

Aug 05, 2026

Sync your Cursor (or VS Code) preferences across machines using your own SSH server as the backend — the same idea as VS Code Settings Sync, without Microsoft/GitHub cloud.

Why a Cursor extension (not a separate VS app)?

Cursor is a VS Code fork and speaks the same extension API, but it does not ship VS Code’s built-in Settings Sync. An extension is the right vehicle: it can read/write the User data directory, install extensions, show conflict diffs, and run on every install you use. Publishing as a normal VS Code-compatible extension means it works in Cursor (and VS Code if you want).

What syncs (mirrors VS Code Settings Sync)

Resource Details
Settings settings.json, with machine-scoped / ignored keys stripped
Keyboard shortcuts keybindings.json (per-OS by default)
User snippets User/snippets/**
User tasks tasks.json
Extensions Installed extension IDs; missing ones are installed on pull
UI state Lightweight sidecar snapshot (language + sync metadata)
Profiles User/profiles/** when present

Also included:

  • Turn on / Turn off with optional remote clear
  • Configure which resources sync
  • Merge / Replace Local when remote data already exists
  • Conflict resolution: Accept Local, Accept Remote, or Show Conflicts (diff)
  • Three-way merge using last-successful-sync as base
  • Local backups (default 30 days) and remote history (default 20 versions)
  • Synced machines registry on the server
  • Background auto-sync + sync shortly after settings files change
  • Status bar indicator and Output channel log

Remote store layout

On the SSH host (default ~/cursor-ssh-sync):

cursor-ssh-sync/
  machines/<machineId>.json
  resources/
    settings/content.json
    keybindings/linux.json   # or darwin.json / win32.json
    tasks/content.json
    extensions/content.json
    uiState/content.json
    snippets/...
    profiles/...
  history/<resource>/<timestamp>.json

Requirements

  • Cursor or VS Code 1.85+
  • Node build tools only needed to compile from source
  • An SSH server you can reach (key-based auth recommended; password stored in editor Secret Storage)
  • Outbound TCP to your SSH port

Install

  1. Download the latest .vsix from Releases
  2. Cursor → Extensions → Install from VSIX…

From source

git clone https://github.com/nixomose/cursor-ssh-sync.git
cd cursor-ssh-sync
npm ci
npm run package   # → nixomose-cursor-ssh-sync-*.vsix

Then Install from VSIX… in Cursor.

Publishing to the VS Code Marketplace and Open VSX (Cursor’s gallery) is documented in PUBLISHING.md.

Setup

  1. Command Palette → Cursor SSH Sync: Configure SSH Connection...
  2. Enter host, port, username, private key path (or password), and remote directory
  3. Cursor SSH Sync: Turn On...
  4. Pick what to sync
  5. If the server already has data: choose Merge, Replace Local, or Merge Manually...

Repeat Turn On on each machine pointing at the same SSH store.

Useful commands

Command Purpose
Cursor SSH Sync: Turn On... Enable sync + first sync
Cursor SSH Sync: Turn Off... Disable (optionally clear remote)
Cursor SSH Sync: Sync Now Manual sync
Cursor SSH Sync: Configure... Toggle resources
Cursor SSH Sync: Show Synced Data Machines + last outcome + backups
Cursor SSH Sync: Open Local Backups Folder Reveal local backup dir
Cursor SSH Sync: Show Log Output channel
Cursor SSH Sync: Show Conflicts Diff local vs remote

Settings of note

  • cursorSshSync.ignoredSettings — extra keys never synced
  • cursorSshSync.ignoredExtensions — extension IDs to skip
  • cursorSshSync.keybindingsPerPlatform — default true (VS Code behavior)
  • cursorSshSync.autoSyncIntervalMinutes — default 5
  • cursorSshSync.ssh.* — connection details

Machine-specific defaults (proxy, terminal shells, zoom, etc.) are excluded automatically, matching VS Code’s approach. Keys matching password / secret / token / apiKey are also skipped.

Security notes

  • Prefer SSH keys; passwords go through VS Code/Cursor Secret Storage
  • The remote directory holds your editor prefs — keep the server and path private (chmod 700 recommended)
  • This extension does not sync workspace .vscode folders or secrets you intentionally keep out of user settings

Development

npm run watch     # rebuild on change
npm run lint      # typecheck
npm run package   # produce .vsix

Press F5 in this workspace (with the Extension Development Host) to try a live debug session once a .vscode/launch.json is present.

Related extensions