`quarto.path` is not used directly when it points to a launcher/trampoline executable

Open
#1,000 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
52/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
typescript, vscode

Research direction

Start by tracing how the configured quarto.path is handled for command execution and integrated-terminal PATH changes, using the Pixi launcher reproduction as the failing case. Done means commands use /home/***/.pixi/bin/quarto without bypassing its runtime setup, or an option prevents the automatic terminal PATH modification.

Written by the indexing model from the issue text.

Description

bug vscode
Bug description

When quarto.path is explicitly configured, I expect the VS Code extension to invoke that executable, or at least preserve it as the effective Quarto command used by the extension and the integrated terminal.

However, the extension appears to use the configured executable only for discovery. It then resolves the underlying Quarto installation path, likely from quarto --paths, and prepends the resolved internal bin directory to the integrated terminal PATH.

This breaks installations where the configured Quarto executable is a launcher or trampoline, such as Quarto installed through pixi. In this setup, the launcher is not just a path alias: it is responsible for setting up the runtime environment required by Quarto. The internal Quarto script inside the Pixi environment is not intended to be executed directly.

Therefore, the issue is that quarto.path is not treated as the authoritative executable path. Instead, the extension rewrites the terminal environment in a way that bypasses the configured launcher.

Configuration
{
  "quarto.usePipQuarto": false,
  "quarto.path": "/home/***/.pixi/bin/quarto"
}
Steps to reproduce
  1. Install Quarto through Pixi, for example with:
pixi global install quarto
  1. Configure the VS Code extension to use the Pixi launcher:
{
  "quarto.usePipQuarto": false,
  "quarto.path": "/home/***/.pixi/bin/quarto"
}
  1. Open VS Code / VS Code Remote with the Quarto extension enabled.

  2. Check the integrated terminal PATH.

The extension prepends:

/home/***/.pixi/envs/quarto/bin
  1. Run:
which quarto
quarto check
Actual behavior

quarto resolves to:

/home/***/.pixi/envs/quarto/bin/quarto

Running quarto check then fails with:

/home/***/.pixi/envs/quarto/bin/quarto: line 208:
/home/***/.pixi/envs/quarto/bin/tools/x86_64/deno: No such file or directory

This happens because the command bypasses the Pixi launcher at:

/home/***/.pixi/bin/quarto
Expected behavior

When quarto.path is configured, the extension should treat that path as the authoritative Quarto executable.

In this case, commands should use:

/home/***/.pixi/bin/quarto

rather than resolving and prepending the internal Quarto installation directory.

At minimum, the extension should provide an option to disable automatic modification of the integrated terminal PATH.

Dominant language
TypeScript
Stars
645
Forks
62
Avg merge
17h 42m
Merged PRs (30d)
13

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from quarto-dev/quarto

All issues in quarto-dev/quarto

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.