Awesome-omni-skill cursor-to-vscode-migration

Migrate editor setup from Cursor to VS Code. Cleans old VS Code data, copies settings/keybindings from Cursor, removes Cursor-specific config keys, and installs all extensions fresh. Use when switching from Cursor to VS Code.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/cursor-to-vscode-migration" ~/.claude/skills/diegosouzapw-awesome-omni-skill-cursor-to-vscode-migration && rm -rf "$T"
manifest: skills/tools/cursor-to-vscode-migration/SKILL.md
source content

Cursor to VS Code Migration

Overview

Automate the full migration from Cursor to VS Code on macOS: clean stale VS Code data, transfer settings/keybindings, filter out Cursor-specific config, and install extensions.

Workflow

1) Pre-flight checks

Before doing anything, verify the environment:

  • Confirm Cursor config exists at
    ~/Library/Application Support/Cursor/User/
    and
    ~/.cursor/extensions/
    .
  • Confirm VS Code is installed (
    code --version
    ).
  • Warn the user if VS Code is currently running -- it should be closed during migration.

If either Cursor config or VS Code is missing, stop and inform the user.

2) Audit old VS Code data

Check what exists and report sizes:

du -sh ~/.vscode/ 2>/dev/null
du -sh ~/Library/Application\ Support/Code/ 2>/dev/null
ls ~/.vscode/extensions/ 2>/dev/null | wc -l

Show the user what will be cleaned and confirm before proceeding.

3) Clean old VS Code data

Only after user confirmation, clean in this order:

a) Remove old extensions:

rm -rf ~/.vscode/extensions/

b) Remove old settings:

rm -f ~/.vscode/settings.json
rm -f ~/Library/Application\ Support/Code/User/settings.json
rm -f ~/Library/Application\ Support/Code/User/keybindings.json

c) Clear caches and storage (optional, confirm separately):

Run

scripts/clean_vscode_caches.sh
to remove all cache/storage directories under
~/Library/Application Support/Code/
while preserving
User/
and
machineid
.

4) Copy settings and keybindings from Cursor

cp ~/Library/Application\ Support/Cursor/User/settings.json \
   ~/Library/Application\ Support/Code/User/settings.json

cp ~/Library/Application\ Support/Cursor/User/keybindings.json \
   ~/Library/Application\ Support/Code/User/keybindings.json

If keybindings.json doesn't exist in Cursor, skip it silently.

5) Remove Cursor-specific settings

After copying, strip keys that are Cursor-specific and meaningless in VS Code. Run:

node ~/.codex/skills/cursor-to-vscode-migration/scripts/strip_cursor_keys.cjs \
  ~/Library/Application\ Support/Code/User/settings.json

This removes any keys matching

cursor.*
and
cursor.cpp.*
patterns from the JSON. Report which keys were removed.

6) Copy snippets (if they exist)

if [ -d ~/Library/Application\ Support/Cursor/User/snippets ]; then
  cp -r ~/Library/Application\ Support/Cursor/User/snippets/ \
        ~/Library/Application\ Support/Code/User/snippets/
fi

7) Install extensions

Do NOT copy extension binaries from

~/.cursor/extensions/
. Install fresh from the VS Code marketplace.

a) Extract extension IDs from Cursor:

node ~/.codex/skills/cursor-to-vscode-migration/scripts/list_cursor_extensions.cjs

This reads

~/.cursor/extensions/
, extracts publisher.name IDs, and filters out known Cursor-only extensions (see skip list below).

b) Install into VS Code:

cat /tmp/extensions_to_install.txt | xargs -L 1 code --install-extension --force

Skip list -- extensions that only work in Cursor or are no longer needed:

  • openai.chatgpt

If an extension fails to install, log it and continue. Report all failures at the end.

8) Post-migration checklist

After installation completes, report:

  • Number of extensions installed successfully
  • Any extensions that failed to install
  • Any Cursor-specific settings keys that were removed
  • Remind the user to:
    • Open VS Code and verify everything looks correct
    • Enable Settings Sync (Settings > Turn on Settings Sync) to back up the new config
    • Close and reopen VS Code if any extensions show update errors

Error handling

  • If a step fails, do not proceed to the next step. Report the error and ask the user how to proceed.
  • Never force-delete anything without user confirmation.
  • If VS Code CLI (
    code
    ) is not available, instruct the user to install it: Command Palette > "Shell Command: Install 'code' command in PATH".

Platform note

This skill targets macOS. Key path differences for Linux:

macOSLinux
~/Library/Application Support/Cursor/
~/.config/Cursor/
~/Library/Application Support/Code/
~/.config/Code/