A feature-packed release that adds user-defined tool dependencies, .NET runtime-only installs, argument forwarding to task dependencies, and stronger supply-chain security for lockfiles -- along with a large batch of bug fixes across multiple backends and shells.
Highlights
- Declare tool dependencies in
mise.toml-- A newdependsfield lets you ensure one tool is fully installed before another starts, useful for tools with runtime dependencies on each other. - Pass arguments through task dependency chains -- Task dependencies can now reference the parent task's arguments using
{{usage.*}}templates, enabling parameterized build/deploy pipelines. - .NET runtime-only installs -- Install just the .NET runtime (or ASP.NET Core runtime) without the full SDK using the new
runtimetool option. - Stronger lockfile provenance verification --
mise locknow cryptographically verifies provenance for the current platform at lock time, and a newlocked_verify_provenancesetting enables re-verification at install time.
Added
-
User-specified tool dependencies -- Declare explicit installation dependencies between tools in
mise.tomlwith a newdependsfield, ensuring one tool is fully installed before another starts. #8776 by @cprecioso[tools] erlang = "27" elixir = { version = "1.18", depends = ["erlang"] }
-
.NET runtime-only installs -- Install .NET runtimes alongside or instead of SDKs using the
runtimetool option. Valid values:dotnet,aspnetcore,windowsdesktop. #8524 by @fragon10[tools] dotnet = ["9", { version = "8.0.14", runtime = "dotnet" }]
-
Task dependency argument forwarding -- Task dependencies can reference parent task arguments using
{{usage.*}}templates independs,depends_post, andwait_for. Arguments flow through entire dependency chains. #8893 by @jdx[tasks.build] usage = 'arg "<app>"' run = 'echo "building {{usage.app}}"' [tasks.deploy] usage = 'arg "<app>"' depends = [{ task = "build", args = ["{{usage.app}}"] }] run = 'echo "deploying {{usage.app}}"'
-
install_beforeenforced on transitive npm dependencies -- Theinstall_beforesupply-chain cutoff is now forwarded to transitive dependency resolution using each package manager's native mechanism (npm --before,bun --minimum-release-age,pnpm --config.minimumReleaseAge). #8851 by @risu729 -
locked_verify_provenancesetting -- New setting (also auto-enabled byMISE_PARANOID) that forces cryptographic provenance re-verification at install time even when the lockfile already has checksum and provenance data.mise locknow also performs full verification for the current platform at lock time. #8901 by @jdx -
tursoadded to the built-in registry -- Install the Turso CLI viamise use turso. #8884 by @kenn
Fixed
--env=VALUEand-E=VALUEflag parsing -- The equals-sign form of the environment flag (e.g.,mise --env=production) was silently ignored, causing fallback to the default environment. Both--env=VALUEand--env VALUEforms now work correctly. #8889 by @jdx- PEP 440
.devversions filtered in fuzzy matching -- Versions like2026.3.3.162408.dev0no longer incorrectly satisfy stable version requests. The version regex now matches.devin addition to-dev. #8849 by @richardthe3rd - Stale lockfile entries pruned during
mise lock <tool>-- Runningmise lock nodeafter a version change no longer leaves duplicate entries for the old and new versions. #8599 by @altendky - Spurious direnv warning suppressed -- The
failed to update DIRENV_DIFFwarning no longer appears when the direnv diff environment variable is empty. #8857 by @yaleman - Duplicate trust warning in zsh -- Entering an untrusted project directory in zsh no longer shows the
mise trustwarning twice. #8898 by @timothysparg - Plain
.tool-versionsno longer requires trust for task listing -- Files without Tera template syntax ({{,{%,{#) are skipped during the trust check inmise task ls. #8876 by @dportalesr - Tool options preserved with CLI version overrides --
filter_binsand other tool options are no longer lost when specifying a version via CLI (e.g.,mise bin-paths tool@version). #8888 by @jdx - Alias-specific options respected -- Tools configured with
tool_aliasnow correctly use the alias-specificasset_patternand other options instead of inheriting from the original tool. #8892 by @jdx - Precompiled Python uses lockfile URL -- Precompiled Python installs now honor the download URL recorded in
mise.lockinstead of always recomputing it, fixing reproducibility for locked installs. #8750 by @hehaoqian - Ruby build revisions in lockfiles -- Precompiled Ruby binaries from
jdx/rubynow support build revision tags (e.g.,3.3.11-1), preventing lockfile breakage when binaries are rebuilt with different checksums. #8900 by @jdx - Swift installs on unsupported Ubuntu versions -- Swift installs on Ubuntu versions newer than 24.04 now fall back to the 24.04 binary instead of 404ing. #8916 by @jdx
Changed
- Go settings renamed to
go.*namespace -- Allgo_*settings (e.g.,go_set_goroot) have been renamed to the nestedgo.*format (e.g.,go.set_goroot) for consistency with other language settings. The old names are preserved as deprecated aliases. #8598 by @jdbruijn
Breaking Changes
- Deprecated settings removed -- The following settings, deprecated for 18+ months, have been removed. If you are still using them, switch to their replacements: #8904 by @jdx
asdf-- usedisable_backendsinsteadvfox-- usedisable_backendsinsteadcargo_binstall-- usecargo.binstallinsteaddisable_default_shorthands-- usedisable_default_registryinsteadpipx_uvx-- usepipx.uvxinsteadpython_compile-- usepython.compileinsteadpython_default_packages_file-- usepython.default_packages_fileinsteadpython_patch_url-- usepython.patch_urlinsteadpython_patches_directory-- usepython.patches_directoryinsteadpython_precompiled_arch-- usepython.precompiled_archinsteadpython_precompiled_os-- usepython.precompiled_osinsteadpython_pyenv_repo-- usepython.pyenv_repoinsteadpython_venv_stdlib-- usepython.venv_stdlibinstead
New Contributors
- @cprecioso made their first contribution in #8776
- @fragon10 made their first contribution in #8524
- @dportalesr made their first contribution in #8876
- @timothysparg made their first contribution in #8898
- @hehaoqian made their first contribution in #8750
- @jdbruijn made their first contribution in #8598
- @yaleman made their first contribution in #8857
- @kenn made their first contribution in #8884
Full Changelog: v2026.4.3...v2026.4.4