> cursorport_
migrate Cursor → VS Code in
one command
settings · keybindings · snippets · profiles · extensions
live output
$ 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
install
$ npx cursorport
No install needed — runs with npx. Or:
npm install -g cursorport ·
Requires Node.js ≥ 20 and both
cursor +
code in your PATH.
what gets migrated
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.
options
| 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
|
api
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) }
platforms
✓ macOS · ✓ Linux · ✓ Windows — User data and extension paths resolved per-OS automatically.