Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
On Remote SSH (Linux x64), Cursor installs the universal build of ms-python.python, which is missing the native PET (python-env-tools/bin/pet) binary.
- Python Environments fails to initialize; interpreter paths cannot be validated even when the bench venv exists and works in the terminal.
- Cursor Pyright reports that
ms-python.pythonis missing or broken (hard dependency). - Installing the same extension version via the linux-x64 VSIX from the Microsoft Marketplace fixes the issue immediately.
Old (Cursor default install on Remote SSH Linux):
cursor --install-extension ms-python.python
(or auto-install on reconnect) deploys a universal package, e.g. ms-python.python-2025.4.0.
Extension folder has no python-env-tools/ directory.
Output panel (Python Environments):
spawn .../ms-python.python-2025.4.0/python-env-tools/bin/pet ENOENT
Failed to initialize environment managers: Python extension not found
Output panel (Cursor Pyright):
Cursor Pyright depends on the `ms-python.python` extension, which is not installed.
Bench Python at /home/frappe/frappe-bench-15/env/bin/python works in shell; extension still marks it unresolvable.
New (manual linux-x64 VSIX install — expected Cursor behavior):
Install ms-python.python with targetPlatform=linux-x64 from VS Marketplace.
Extension folder includes executable python-env-tools/bin/pet (~35 MB).
Output panel (Python Environments):
[pet] Starting Python Locator .../python-env-tools/bin/pet server
Resolved Python Environment /home/frappe/frappe-bench-15/env/bin/python
Environment discovery complete: 2 environments found (Global: 1, venv: 1)
Cursor Pyright and Ruff work; no PET / missing-extension errors.
Steps to Reproduce
-
Connect to a Linux x64 host via Cursor Remote SSH.
-
Open a workspace folder (e.g. Frappe bench
apps/). -
Install Python stack:
cursor --install-extension anysphere.cursorpyright --force
cursor --install-extension ms-python.python --force
cursor --install-extension charliermarsh.ruff --force
-
Reload window.
-
Open Output → Python Environments and Cursor Pyright.
-
Observe
pet ENOENTand/or “Python extension not found”. -
On the server, confirm missing binary:
find ~/.cursor-server/extensions/ms-python.python-* -path '*/python-env-tools/bin/pet'
# universal build: no output
- Workaround verification — download linux-x64 VSIX and reinstall:
TMPDIR=$(mktemp -d) && cd "$TMPDIR"
curl -fsSL -o python.vsix.gz \
"https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/python/2026.5.2026070801/vspackage?targetPlatform=linux-x64"
gunzip -c python.vsix.gz > python.vsix
unzip -l python.vsix | grep 'python-env-tools/bin/pet'
cursor --install-extension "$TMPDIR/python.vsix" --force
- Reload window → PET starts; bench venv resolves.
Expected Behavior
- On Remote SSH, when host platform is linux-x64, Cursor should install the platform-specific
ms-python.pythonVSIX (withpython-env-tools/bin/pet), not the universal build. - Or bundle/serve
petfor the remote host arch when resolvingms-python.python/anysphere.pythonextension packs. - Python Environments should initialize successfully on Remote SSH Linux without manual VSIX workarounds.
- Cursor Pyright should not report
ms-python.pythonas missing when it is installed.
Screenshots / Screen Recordings
Attach screenshots of:
- Output → Python Environments — spawn …/ms-python.python-2025.4.0/python-env-tools/bin/pet ENOENT
- Output → Cursor Pyright — “Cursor Pyright depends on the
ms-python.pythonextension, which is not installed.” - Terminal on SSH host —
find ~/.cursor-server/extensions/ms-python.python-* -path '*/python-env-tools/bin/pet'returning no output - Terminal on SSH host —
unzip -l python.vsix | grep 'python-env-tools/bin/pet'confirming linux-x64 VSIX has the binary - Output → Python Environments — [pet] Starting Python Locator …/python-env-tools/bin/pet server (after VSIX install)
Operating System
Windows 10/11
Version Information
IDE (local — Menu → About Cursor → Copy):
Version: 3.13.10 (system setup)
VS Code Version: 1.128.0
Commit: 4f02290ccd9304f0e6bf8ee85f6e9106f02ac1f0
Date: 2026-07-23T21:41:07.333Z
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
OS: Windows_NT x64 10.0.26200
Remote SSH server:
Cursor server: 3.13.10 (commit 4f02290ccd9304f0e6bf8ee85f6e9106f02ac1f0, x64)
OS: Ubuntu 22.04.5 LTS
Host: vps.contaboserver.net (Contabo VPS)
Workspace: /home/frappe/frappe-bench-15/apps
Python venv: /home/frappe/frappe-bench-15/env/bin/python (3.10.12)
Extensions involved (remote):
[email protected]
[email protected] (broken — universal, installed by Cursor)
[email protected] (works — linux-x64, manual VSIX)
[email protected]
[email protected]
[email protected]
For AI issues: which model did you use?
N/A — extension install / Remote SSH bug, not model-specific.
For AI issues: add Request ID with privacy disabled
N/A — extension install / Remote SSH bug, not model-specific.
Additional Information
Workaround (current):
- Do not rely on
cursor --install-extension ms-python.pythonalone on Remote SSH Linux. - Always install
ms-python.pythonlinux-x64 VSIX from Microsoft Marketplace (?targetPlatform=linux-x64). - Query latest version:
curl -fsSL -X POST "https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery" \
-H "Content-Type: application/json" \
-H "Accept: application/json;api-version=7.1-preview.1" \
-d '{"filters":[{"criteria":[{"filterType":7,"value":"ms-python.python"}],"pageNumber":1,"pageSize":1,"sortBy":0,"sortOrder":0}],"assetTypes":[],"flags":914}'
- Set
"python.languageServer": "None"in workspace settings so Cursor Pyright handles analysis (optional; avoids duplicate language servers). - Do not delete
~/.cursor-serverexpecting a clean auto-install — it often reinstalls the same broken universal build.
Related upstream issue:
microsoft/vscode-python#25820 — universal VSIX missing PET on Open VSX / non-Microsoft marketplaces.
Does this stop you from using Cursor
Yes - Cursor is unusable