Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
The Quarto preview button in Cursor (but not VS Code) ignores both project-level (_quarto.yml) and workspace-level (.vscode/settings.json) Python configuration, instead using an auto-detected uv environment that lacks the required Jupyter kernel.
This works correctly in VS Code - both the terminal command and preview button work. The issue is specific to Cursor.
Steps to Reproduce
- Create a project with a
pyproject.toml(triggers Cursor to auto-create a uv environment) - Set up a conda environment with a registered Jupyter kernel at
~/Library/Jupyter/kernels/my-kernel-name/ - Create a
_quarto.ymlwith explicit Python path:jupyter: python: /path/to/conda/env/bin/python - Create a
.vscode/settings.jsonwith:{ "python.defaultInterpreterPath": "/path/to/conda/env/bin/python", "python.terminal.activateEnvironment": false, "quarto.render.env": { "QUARTO_PYTHON": "/path/to/conda/env/bin/python" } } - Create a
.qmdfile withjupyter: my-kernel-namein the YAML header - Click the Quarto preview button in Cursor
Expected Behavior
The preview should respect the Python configuration from _quarto.yml and .vscode/settings.json, using the specified Python interpreter which can access the required Jupyter kernel.
This is exactly what happens in VS Code - the preview button works correctly there.
Operating System
MacOS
Version Information
Version: 2.4.27
VSCode Version: 1.105.1
Commit: 4f2b772756b8f609e1354b3063de282ccbe7a690
Date: 2026-01-31T21:24:58.143Z
Build Type: Stable
Release Track: Default
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Darwin arm64 25.2.0
Additional Information
Workarounds
-
Running manually in Cursor terminal works:
quarto preview path/to/file.qmd --no-browser --no-watch-inputsThis respects the
_quarto.ymlconfiguration. -
Using VS Code instead of Cursor - the preview button works correctly in VS Code with the same configuration files.
Root Cause Analysis
Cursor’s Python extension auto-detects pyproject.toml and creates an ephemeral uv environment. Cursor’s Quarto integration appears to use this auto-detected Python environment instead of respecting:
- The
jupyter.pythonsetting in_quarto.yml - The
python.defaultInterpreterPathin.vscode/settings.json - The
QUARTO_PYTHONenvironment variable set viaquarto.render.env
This is a Cursor-specific issue - VS Code with the exact same configuration files and Quarto extension correctly respects the Python path configuration. The terminal-based quarto preview command also works correctly in Cursor.
Impact
This makes the Cursor preview button unusable for projects that:
- Use conda/mamba environments with custom Jupyter kernels
- Have a
pyproject.tomlfor tooling (ruff, pytest, etc.) - Cannot or should not use uv for environment management
Users must either:
- Use VS Code instead of Cursor for Quarto work
- Run
quarto previewmanually in the terminal (losing the convenience of the preview button)
Suggested Fix
Cursor’s Quarto integration should match VS Code’s behavior and respect the Python path configuration in this priority order:
jupyter.pythonin_quarto.yml(project-level configuration)QUARTO_PYTHONenvironment variable (if set viaquarto.render.env)python.defaultInterpreterPathfrom.vscode/settings.json(workspace-level)- Auto-detected Python (current behavior, only as fallback)
This would:
- Align Cursor’s preview button behavior with VS Code
- Match the terminal-based CLI behavior
- Give users control over which Python interpreter to use
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor