Cursor IDE TypeScript Version downgraded

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The typescript version of the cursor IDE is downgraded the moment I import extensions from VS Code. I had to manually set my workspace config to overcome this. And because of this downgrade the RAM usage was so huge that my laptop used to crash.

Steps to Reproduce

Open cursor in the Ubuntu machine. And then import extensions from VS Code. Now check the TS version.

Screenshots / Screen Recordings

Operating System

Linux

Version Information

Version: 3.1.17
VSCode Version: 1.105.1
Commit: fce1e9ab7844f9ea35793da01e634aa7e50bce90
Date: 2026-04-19T19:33:58.189Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Linux x64 6.17.0-1017-oem

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, I can see from the screenshot that “Use VS Code’s Version 5.3.0-dev.20230808” clearly points to an old global TypeScript install that your VS Code user-level typescript.tsdk was set to use.

When you import settings from VS Code, Cursor brings over most of your settings.json, including typescript.tsdk and typescript.tsserver.*. These keys don’t get filtered, so Cursor starts using the same old TS as VS Code. That’s why you’re seeing the downgrade, and it likely explains the high RAM usage too, old tsserver plus maybe an inherited typescript.tsserver.maxTsServerMemory.

What to do:

  • Open user settings: Cmd+Shift+P or Ctrl+Shift+P then Preferences: Open User Settings (JSON)
  • Remove or fix these keys:
    • typescript.tsdk
    • typescript.tsserver.maxTsServerMemory
    • any typescript.tsserver.* that you didn’t set yourself
  • Restart the TS server: Cmd+Shift+P or Ctrl+Shift+P then TypeScript: Restart TS Server
  • Check via TypeScript: Select TypeScript Version, “Use VS Code’s Version” should show the current bundled version in Cursor, not 5.3.0-dev.

The workspace override you already did is also a valid fix, but then you’d need to add node_modules/typescript manually in every new project.

Let me know if RAM usage improves after cleaning up the user settings.

{
    "workbench.colorTheme": "Winter is Coming (Dark Blue)",
    "editor.fontSize": 16,
    "diffEditor.wordWrap": "on",
    "git.suggestSmartCommit": false,
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "redhat.telemetry.enabled": true,
    "[java]": {
        "editor.defaultFormatter": "redhat.java"
    },
    "files.exclude": {
        "**/.git": false
    },
    "[xml]": {
        "editor.defaultFormatter": "fabianlauer.vs-code-xml-format"
    },
    "gitlens.advanced.messages": {
        "suppressLineUncommittedWarning": true
    },
    "files.associations": {
        "*.macha": "wat"
    },
    "editor.inlayHints.fontSize": 14,
    "python.analysis.inlayHints.functionReturnTypes": true,
    "python.analysis.inlayHints.callArgumentNames": "all",
    "python.analysis.inlayHints.pytestParameters": true,
    "python.analysis.inlayHints.variableTypes": true,
    "javascript.inlayHints.enumMemberValues.enabled": true,
    "javascript.inlayHints.functionLikeReturnTypes.enabled": true,
    "javascript.inlayHints.parameterNames.enabled": "all",
    "javascript.inlayHints.parameterTypes.enabled": true,
    "javascript.inlayHints.propertyDeclarationTypes.enabled": true,
    "javascript.inlayHints.variableTypes.enabled": true,
    "typescript.inlayHints.enumMemberValues.enabled": true,
    "typescript.inlayHints.functionLikeReturnTypes.enabled": true,
    "typescript.inlayHints.parameterNames.enabled": "all",
    "typescript.inlayHints.parameterTypes.enabled": true,
    "typescript.inlayHints.propertyDeclarationTypes.enabled": true,
    "typescript.inlayHints.variableTypes.enabled": true,
    "[javascript]": {
        "editor.defaultFormatter": "vscode.typescript-language-features"
    },
    "[c]": {
        "editor.defaultFormatter": "ms-vscode.cpptools"
    },
    "security.workspace.trust.untrustedFiles": "open",
    "cmake.showOptionsMovedNotification": false,
    "[json]": {
        "editor.defaultFormatter": "vscode.json-language-features"
    },
    "gitlens.gitCommands.skipConfirmations": [
        "fetch:command",
        "stash-push:command",
        "stash-apply:command"
    ],
    "[dockerfile]": {
        "editor.defaultFormatter": "ms-azuretools.vscode-docker"
    },
    "vs-kubernetes": {
        "vscode-kubernetes.helm-path-linux": "/home/manojad/.local/state/vs-kubernetes/tools/helm/linux-amd64/helm",
        "vscode-kubernetes.kubectl-path-linux": "/home/manojad/.local/state/vs-kubernetes/tools/kubectl/kubectl",
        "vscode-kubernetes.minikube-path-linux": "/home/manojad/.local/state/vs-kubernetes/tools/minikube/linux-amd64/minikube"
    },
    "[cpp]": {
        "editor.defaultFormatter": "ms-vscode.cpptools"
    },
    "workbench.editorAssociations": {
        "*.bin": "hexEditor.hexedit"
    },
    "oracledevtools.connectionConfiguration.configFilesFolder": "C:\\Users\\manoj\\Oracle\\network\\admin",
    "[oraclesql]": {
        "editor.suggest.showSnippets": true,
        "editor.quickSuggestions": {
            "comments": "on",
            "strings": "on",
            "other": "on"
        }
    },
    "oracledevtools.connectionConfiguration.walletFileFolder": "C:\\Users\\manoj\\Oracle\\network\\admin",
    "oracledevtools.bookmarkFileFolder": "C:\\Users\\manoj\\Oracle\\oracle.oracledevtools",
    "oracledevtools.download.otherFolder": "C:\\Users\\manoj\\downloads",
    "diffEditor.hideUnchangedRegions.enabled": true,
    "[python]": {
        "editor.defaultFormatter": "ms-python.black-formatter"
    },
    "[go]": {
        "editor.defaultFormatter": "golang.go"
    },
    "[oracle-sql]": {
        "editor.defaultFormatter": "Oracle.sql-developer"
    },
    "[postgres]": {
        "editor.defaultFormatter": "inferrinizzard.prettier-sql-vscode"
    },
    "[php]": {
        "editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
    },
    "sqldeveloper.sqlHistory.historyLimit": 500,
    "sqldeveloper.telemetry.enabled": false,
    "[javascriptreact]": {
        "editor.defaultFormatter": "vscode.typescript-language-features"
    },
    "git.autofetch": true,
    "remote.autoForwardPortsSource": "hybrid",
    "editor.tabSize": 2,
    "files.autoSave": "afterDelay",
    "docker.extension.enableComposeLanguageServer": false,
    "[dockercompose]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 2,
        "editor.autoIndent": "advanced",
        "editor.quickSuggestions": {
            "other": true,
            "comments": false,
            "strings": true
        },
        "editor.defaultFormatter": "redhat.vscode-yaml"
    },
    "[github-actions-workflow]": {
        "editor.defaultFormatter": "redhat.vscode-yaml"
    },
    "sqldeveloper.datagrid.fontFamily": "'Droid Sans Mono', monospace",
    "gitlens.ai.model": "vscode",
    "gitlens.ai.vscode.model": "copilot:gpt-4.1",
    "editor.minimap.enabled": false,
    "chat.mcp.gallery.enabled": true,
    "claudeCode.preferredLocation": "panel",
    "workbench.iconTheme": "vscode-icons"
}

This is my user settings JSON. I have already removed all those you mentioned and have nothing. But it always selects the old version.

Thanks for the settings.json. In user scope it really is clean. But 5.3.0-dev.20230808 is a TypeScript nightly build from August 2023. That usually comes from the TypeScript Nightly extension ms-vscode.vscode-typescript-next. It looks like it got installed during the VS Code import and is overriding the bundled TypeScript.

Please check two places:

  • Extensions panel: find TypeScript Nightly publisher Microsoft id ms-vscode.vscode-typescript-next, then Disable or Uninstall it, then run Developer: Reload Window.
  • Workspace settings in the project where you see the old version: open .vscode/settings.json and make sure there is no typescript.tsdk pointing to some global node_modules/typescript. You mentioned you did a workspace override as a workaround, so it might still be there.

After that, run Cmd+Shift+P or Ctrl+Shift+P then TypeScript: Select TypeScript Version and choose Use VS Code’s Version. You should see a current bundled 5.x there. Then run TypeScript: Restart TS Server.

If after removing Nightly it still shows 5.3.0-dev, please share the output of TypeScript: Select TypeScript Version. A screenshot of all options in the dropdown is enough, it will show where the path is coming from.

Thanks, it works. But can I know why there is a mismatch in the extension version? VS Code has version 6 for the same extension, but the Cursor has v5.3 for the same extensions.

Glad it’s working.

About the version difference: Cursor uses the Open VSX Registry at openvsx.org as its extension source, while VS Code uses the proprietary Microsoft Marketplace. Microsoft doesn’t publish its extensions to OpenVSX, so anything starting with ms-vscode.* or ms-python.* including TypeScript Nightly ms-vscode.vscode-typescript-next gets mirrored there by third party maintainers and is usually behind in version. This isn’t a Cursor bug, it’s a marketplace limitation.

If you need the newest version of a Microsoft extension, you can download the .vsix from their GitHub Releases and install it via Extensions: Install from VSIX..., but for TypeScript Nightly in your case you don’t need that since the bundled TypeScript in Cursor is already up to date.