Supported extensions
List of extensions that can be automatically configured to use tools from
mise.
- By default, Mise VSCode will not modify your
.vscode/settings.jsonfile. If you want to enable the automatic configuration of extensions, see the set-up guide. - If you want to configure one extension manually, search for
Mise: Configure extension sdk path...in the command palette. - When automatic configuration is enabled, the extensions are configured to use
mise shims. The extension runsmise reshimfirst so that the shims exist. You can update this feature in the settings. - If you want to share your
.vscode/settings.jsonfile with others, you can enableconfigureExtensionsUseSymLinks. This will create a folder in your.vscodedirectory with a symlink to the tools installed bymise. The symlinks target the shims, or the installed binaries whenconfigureExtensionsUseShimsis disabled. Without automatic configuration, enabling it in the workspace settings still creates the symlinks and keeps them up to date, without writing settings, so the settings you write yourself can point at them (e.g.${workspaceFolder}/.vscode/mise-tools/shellcheck). - Settings that take an install folder (a JDK or SDK home,
go.gorootwhen shims are disabled) point at the folder of one version. When the version comes from your global or system mise config, they point at mise’sgloballink instead (e.g.~/.local/share/mise/installs/java/global, mise 2026.10.8+), which followsmise use -gandmise upgrade. A version set in a project config keeps its own folder, and symlinks, when enabled, are used first.
| Extension | Settings | Comment |
|---|---|---|
| Python | python.defaultInterpreterPath |
You will still need to select the interpreter. See this discussion |
| Go | go.goroot, go.alternateTools |
|
| Java | jdk.jdkhome |
|
| Java (Red Hat) | java.jdt.ls.java.home |
|
| Gradle | java.import.gradle.java.home |
|
| Salesforce Apex | salesforcedx-vscode-apex.java.home |
|
| Shellcheck | shellcheck.executablePath |
|
| NodeJS | debug.javascript.defaultRuntimeExecutable.pwa-node |
|
| Deno | deno.path |
|
| Bun | bun.runtime |
|
| Ruff | ruff.path, ruff.interpreter |
|
| php, php built-in | php.validate.executablePath, php.debug.executablePath |
Does not work with symlinks |
| julia | julia.executablePath |
Does not work with shims |
| erlang | erlang.erlangPath |
Does not work with shims |
| dart | dart.sdkPath |
Does not work with shims |
| flutter | dart.flutterSdkPath |
Does not work with shims |
| zig | zig.path, zig.zls.path (install zls with mise) |
Does not work with shims or symlinks |
| sops | sops.binPath |
|
| ginkgo test explorer | ginkgotestexplorer.ginkgoPath |
|
| buf | buf.commandLine.path |
|
| biome | biome.lsp.bin |
Not enabled by default. Update "mise.configureExtensionsAutomaticallyIgnoreList" to [] to enable it. Use it only if you don’t install biome with npm. |
| oxc | oxc.path.oxfmt, oxc.path.oxlint, oxc.path.tsgolint |
Not enabled by default. Update "mise.configureExtensionsAutomaticallyIgnoreList" to [] to enable it. Use it only if you don’t install oxc with npm. Note that oxfmt and npm:tsgolint are separate tools from oxlint. |
oxc.path.node (if node installed through mise) |
||
| bazel | bazel.executable, bazel.buildifierExecutable |
Does not work with shims |
| Swift | swift.path |
Does not work with shims |
| Pkl | pkl.cli.path |
Not on the marketplace. Install the .vsix from the releases |
pkl.lsp.java.path (if java installed through mise) |
||
| Hadolint | hadolint.hadolintPath |
Does not work with symlinks |
| ty | ty.path |
|
| Shell-format | shellformat.path |
|
| Lua | Lua.misc.executablePath |
Does not work with symlinks |
| CMake | cmake.cmakePath |
|
| .NET Runtime | dotnetAcquisitionExtension.sharedExistingDotnetPath |
|
| Sonarlint | sonarlint.ls.javaHome (if java installed through mise) |
|
sonarlint.pathToNodeExecutable (if node installed through mise) |
Extensions which have built-in support for mise:
- Ruby, with ruby-lsp
- Elixir
will look for
miseand install the lsp server automatically
Custom Extensions
Section titled “Custom Extensions”If the extension you’re using is not listed above, you can still configure it manually. See the Custom Extensions Guide for more details.
Extensions that are not supported:
- Rust does not offer to update the cargo path automatically. See this discussion for workarounds.
If you would like to add one, you can open a PR that updates src/utils/supportedExtensions.ts