> cursorport_

migrate Cursor → VS Code in one command
settings · keybindings · snippets · profiles · extensions

cursorport — terminal
$ npx cursorport   ✓  settings.json         cursor.* keys stripped ✓  keybindings.json ✓  snippets/              (14 files) ✓  profiles/               (2 profiles) ✓  extensions            (38 installed)   Migration complete. Backup saved: ~/.cursorport_backup_2025-05-05T10-00-00 Restart VS Code to apply all changes.   !  Font: Fira Code — make sure it’s installed system-wide
$ npx cursorport

No install needed — runs with npx. Or: npm install -g cursorport  ·  Requires Node.js ≥ 20 and both cursor + code in your PATH.

{ }
settings.json
Copied verbatim. cursor.* and anysphere.* keys stripped automatically so VS Code doesn't error.
⌨
keybindings.json
All custom keyboard shortcuts copied as-is.
✂
snippets/
All per-language snippet files migrated. Existing VS Code snippets won't be overwritten without confirmation.
◈
profiles/
All named editor profiles. Great for monorepos and context-switching setups.
⬡
extensions
Installs every extension that exists on the VS Code marketplace. Cursor-only extensions (anysphere.*) are skipped automatically.
!
font + theme hints
Detects your editor/terminal font and color theme. Warns if they need to be installed in VS Code.
flag description
-n, --dry-run Preview everything without writing any files
-f, --force Overwrite VS Code files without prompting
--skip-extensions Skip extension installation (fast settings-only run)
--only <targets> Comma-separated subset: settings,keybindings,snippets,profiles,extensions
import { migrate, resolvePaths } from 'cursorport'

const paths = resolvePaths('backup-label')
const results = await migrate(paths, {
  dryRun: false,
  force: true,
  skipExtensions: false,
})

for (const r of results) {
  console.log(r.target, r.status, r.count)
}

✓ macOS  ·  ✓ Linux  ·  ✓ Windows   —   User data and extension paths resolved per-OS automatically.