Skip to content

Releases: jdx/mise

v2026.2.8: Hooks Get Their Act Together

09 Feb 11:19
Immutable release. Only release title and notes can be modified.
v2026.2.8
67b504b

Choose a tag to compare

This release focuses on hooks—fixing 12 community-reported issues that were making them unreliable. There are also some nice quality-of-life improvements for Node.js and Ruby users.

Highlights

Hooks overhaul — A comprehensive fix for the hooks system addressing a dozen issues reported by the community. Global hooks now actually work, hook execution order is corrected (leave fires before enter), infinite loops in fish shell are fixed, and postinstall hooks can now find all installed tools. #8058

Node version detection from package.json — mise now reads tool versions directly from package.json using the devEngines and packageManager fields. This means your Node, Bun, pnpm, yarn, and npm versions can be auto-detected without a separate .tool-versions or mise.toml file. Semver ranges are simplified automatically (>=18.0.018). #8059

Precompiled Ruby goes stable — You can now use precompiled Ruby binaries by setting ruby.compile=false without needing experimental=true. This will become the default in 2026.8.0. If you haven't tried it, precompiled Ruby installs in seconds instead of minutes. #8052

New Features

  • --dry-run-code flag — Added to install, upgrade, prune, uninstall, and use commands. Behaves like --dry-run but exits with code 1 when there's work to do, enabling patterns like if ! mise install --dry-run-code -q; then mise install; fi #8063

Bug Fixes

  • MISE_ARCH override — The bun and erlang plugins now respect MISE_ARCH at runtime, which is useful for Windows ARM64 users running x64 binaries under emulation #8062
  • key=value formatmise settings set, mise settings add, mise config set, and mise shell-alias set now accept key=value as a single argument #8053

Registry

Dependencies

  • Upgraded to TOML 1.1 support via toml 0.9 and toml_edit 0.24 #8057

v2026.2.7: Windows Gets Real

08 Feb 10:45
Immutable release. Only release title and notes can be modified.
v2026.2.7
989d72e

Choose a tag to compare

This release brings a significant improvement for Windows users with native .exe shims, along with several bug fixes that improve the reliability of tool installation and version resolution.

Highlights

Native Windows Shims (#8045)

mise now generates native .exe shim files instead of .cmd batch scripts. This resolves a whole category of frustrating issues:

  • No more intermittent ENOENT errors from spawnSync in node
  • where.exe now correctly finds your tools
  • Better compatibility with package managers like npm and bun that expect real executables
  • Proper control flow in batch scripts

The new "exe" mode is now the default for windows_shim_mode. This follows the same pattern used by Scoop, Volta, and Chocolatey. If you need to switch back, you can set windows_shim_mode = "file" in your settings. Thanks to @iki for helping with this.

Bug Fixes

  • Config options preserved during CLI installs (#8044) - Running mise install tool@version with an explicit version no longer loses tool-level config options like postinstall from your mise.toml. Registry defaults (like uvx=false or pipx_args) are also preserved when using table syntax.

  • Linked versions take priority over lockfiles (#8050) - Tools created with mise link now correctly override lockfile entries during version resolution. Previously, a lockfile pin would override your linked version, causing confusing "missing" warnings.

  • Fixed duplicate entries in ls --all-sources (#8042) - Thanks @roele!

Registry Updates

  • Switched oxlint to use npm backend by default (#8038) - Thanks @risu729!
  • Added orval for OpenAPI client generation: mise use orval (#8051) - Thanks @zdunecki for your first contribution!

v2026.2.6: Shell Expansion & Source Tracking

07 Feb 10:54
Immutable release. Only release title and notes can be modified.
v2026.2.6
bafec35

Choose a tag to compare

This release brings a couple of nice quality-of-life improvements alongside several bug fixes.

Highlights

Shell-style variable expansion in env values (#8029) - You can now use shell-style variable expansion like ${VAR:-default} and ${VAR:+alternate} directly in your mise.toml environment variables. This makes it easier to set up flexible configurations without needing to drop into shell scripts.

New --all-sources flag for mise ls (#8019) - Thanks to @TylerHillery for adding this flag, which shows all the sources where a tool version is defined. Useful for debugging why a particular version is being used when you have multiple config files.

Bug Fixes

  • gem backend: Fixed Windows support and resolved a newline issue in gem scripts (#8031, #8034) - Thanks @my1e5!
  • lockfile: Tools are now written to the lockfile matching their source config, fixing issues where lockfile entries could get misattributed (#8012)
  • mise ls: Sources in --all-sources output are now sorted deterministically (#8037)
  • tasks: File tasks now auto-install tools defined in mise.toml, matching the behavior of inline tasks (#8030)

Security

  • Updated the time crate to 0.3.47 to address RUSTSEC-2026-0009 (#8026)

New Tools

New Contributors

Welcome to @sheeki03 and @TylerHillery for their first contributions!

📦 Aqua Registry Updates

New Packages (1)

Updated Packages (6)

v2026.2.5: Lockfiles Break Free

06 Feb 11:11
Immutable release. Only release title and notes can be modified.
v2026.2.5
666d0fa

Choose a tag to compare

This is a small maintenance release with one user-facing improvement.

Bug Fixes

  • Lockfiles no longer require experimental mode - You can now use mise.lock files without setting experimental = true in your configuration. Lockfiles help ensure reproducible tool versions across your team, and this change makes them accessible to everyone by default. (#8011)

For more information on lockfiles, see the documentation.

📦 Aqua Registry Updates

Updated Packages (1)

v2026.2.4: Taming the Environment

05 Feb 11:12
Immutable release. Only release title and notes can be modified.
v2026.2.4
4d8b611

Choose a tag to compare

This release focuses on fixing several edge cases in environment handling and tool management. Users working with complex environment configurations, npm package managers, and locked tool versions will find this update particularly helpful.

Bug Fixes

  • Environment variable resolution for tool templates: When using env._.source to source environment files, tool templates now correctly resolve the sourced environment variables. Previously, tool version templates that depended on sourced env vars might not have worked as expected. Thanks to @corymhall for this fix! #7895

  • npm package manager dependencies: When using mise to manage Node.js package managers (npm, yarn, pnpm, bun), mise now only declares the specifically configured package manager as a dependency rather than all of them. This prevents unnecessary dependency resolution issues. #7995

  • Respect use_locked_version during upgrades: The mise upgrade command now properly respects the use_locked_version setting when checking tracked configs. If you have this setting enabled, upgrades will now correctly use the locked versions from your config files. #7997

  • Ignore MISE_TOOL_VERSION in env parsing: Fixed an issue where the internal MISE_TOOL_VERSION environment variable could interfere with environment variable parsing, preventing potential conflicts in certain workflows. #8004

New Contributors

Welcome to @corymhall who made their first contribution to mise! 🎉

v2026.2.3: Locked and Loaded

04 Feb 11:15
Immutable release. Only release title and notes can be modified.
v2026.2.3
c1daa88

Choose a tag to compare

This patch release fixes an important bug affecting users who use mise in locked mode with pipx, npm, cargo, or asdf backends. Previously, these backends would fail when lockfile enforcement was enabled—now they work seamlessly with your locked configurations.

This release also includes a security-related dependency update and welcomes three new tools to the registry: mermaid-ascii for creating ASCII diagrams from Mermaid syntax, Godot game engine, and Julia programming language support.

Bug Fixes

  • Locked mode now works with more backends - Users can now use mise install with pipx, npm, cargo, and asdf backends when lockfile mode is enabled. Previously these backends would fail in locked mode, forcing users to disable lockfiles or use different installation methods. #7985

Security

New Tools

  • mermaid-ascii - Generate ASCII art diagrams from Mermaid diagram syntax, great for documentation and terminal-based workflows. Thanks @TyceHerrman! #7984
  • godot - The popular open-source game engine is now available via mise. Thanks @dmarcoux! #7989
  • julia - The Julia programming language can now be installed and managed with mise. Thanks @quinnj! #7990

New Contributors

Welcome to our new contributors! 🎉

📦 Aqua Registry Updates

New Packages (2)

v2026.2.2: Smart Suggestions and Python UV Improvements

03 Feb 14:43
Immutable release. Only release title and notes can be modified.
v2026.2.2
b06b8f1

Choose a tag to compare

This release brings quality-of-life improvements that make mise smarter and more helpful. When you mistype a tool name, mise now suggests what you might have meant with "Did you mean?" hints, and warns you about inactive tools that might need attention. Python users will appreciate the reworked python.uv_venv_auto setting that gives more control over virtual environment management.

Highlights

  • "Did you mean?" suggestions - Mistype a tool name and mise will now suggest similar tools you might have intended, plus warn about inactive tools in your config (#7965)

  • Reworked python.uv_venv_auto setting - The UV virtual environment auto-creation behavior has been improved for better control over when and how venvs are created. See the Python documentation for details. Thanks @halms! (#7905)

  • Windows mingw-w64 detection - The asset matcher now properly detects mingw-w64 packages for Windows, improving tool installation on Windows systems. Thanks @lchagnoleau! (#7981)

  • vfox plugin download_path - Plugin authors can now access download_path in the BackendInstall context, making it easier to write plugins that need to reference downloaded files. Thanks @malept! (#7959)

Bug Fixes

  • Prefer-offline mode improvements - hook-env no longer attempts to fetch remote versions for uninstalled tools when running in prefer-offline mode (#7976)

  • ETXTBSY retry - Fixed an edge case where spawning processes could fail with "Text file busy" errors by adding automatic retries (#7964)

  • ToolOptions comma parsing - Tool options now properly support comma-separated values, fixing issues with complex option configurations. Thanks @roele! (#7971)

Documentation

New Contributors

Welcome @gogolok who made their first contribution with an install script typo fix! (#7980)

📦 Aqua Registry Updates

New Packages (4)

Updated Packages (3)

v2026.2.1: Task Docs and Tool Stubs

02 Feb 11:24
Immutable release. Only release title and notes can be modified.
v2026.2.1
e0df7b0

Choose a tag to compare

Highlights

Task documentation improvements - The mise generate task-docs command now supports a --index flag and uses task names when generating multi-file documentation with --multi. This gives you better control over how your task documentation is organized and named. #7944

Tool stub generation with --lock - You can now generate tool stubs with locked versions using mise generate tool-stub --lock, making it easier to pin exact tool versions in your generated stubs. #7948

Plugin shadowing warnings - mise now warns you when an env plugin shadows a tool from the registry, helping you avoid confusion when a local plugin name conflicts with a well-known tool. #7953

Lua log module for vfox plugins - Plugin authors can now use a dedicated logging module to output debug information, warnings, and errors from their Lua plugins. #7949

Bug Fixes

  • Fixed handling of file:// URLs in the registry's normalize_remote function #7947
  • Fixed LuaLS warnings in vfox test fixtures and added linting #7946

Internal Changes

  • Unified the deprecated_at! macro to provide consistent deprecation warnings #7957

Full documentation: https://mise.jdx.dev/

v2026.2.0: Lockfiles Graduate, Editor Arrives

01 Feb 12:42
Immutable release. Only release title and notes can be modified.
v2026.2.0
3689a4a

Choose a tag to compare

This release marks a significant milestone: lockfiles are now stable and no longer require an experimental flag. After extensive testing and refinement, lockfiles are ready for production use, giving you reproducible builds with cryptographically verified tool versions across your team.

The other headline feature is mise edit, a brand new interactive configuration editor that makes managing your mise setup more intuitive than ever. Just run mise edit and navigate your configuration with a proper editor interface.

Highlights

  • Lockfiles are stable — No more MISE_EXPERIMENTAL=1 needed! Lockfiles ensure everyone on your team gets exactly the same tool versions with SHA256 verification. See the lockfile documentation for details. #7929

  • Interactive config editor — The new mise edit command launches an interactive editor for your mise configuration, making it easier to manage tools and settings. #7930

  • Smarter task confirmation dialogs — Task confirm prompts now support usage values, giving you more context when confirming task execution. Thanks @roele! #7924

  • Windows shebang task support — File tasks with shebangs are now properly discovered and executed on Windows. #7941

Performance

  • Faster dependency scheduling — Tool installation now uses Kahn's algorithm for optimal parallel dependency resolution, speeding up installs with complex dependency trees. #7933

  • Efficient secret redaction — Switched to Aho-Corasick algorithm for redacting secrets in output, improving performance when many secrets are configured. #7931

Bug Fixes

  • PATH ordering preserved — Fixed an issue where paths added after mise activate could get reordered unexpectedly. #7919

  • Lockfile reliability — Atomic writes prevent corruption, cache invalidation works correctly, and URL/SHA256 info is properly preserved when merging platform information. #7923, #7927

  • Template hash filter — The hash filter in templates now uses SHA256 instead of Blake3 for broader compatibility. #7925

  • Smarter version pruningmise upgrade now respects tracked configs when pruning old versions, preventing accidental removal of versions still in use. #7926

  • Deterministic error output — Failed installations are now sorted, making error messages consistent across runs. #7936

Documentation

  • Improved clarity on uvx and pipx dependencies — Thanks @ygormutti for your first contribution! #7878

v2026.1.12: Monorepo Task Resolution

31 Jan 10:59
Immutable release. Only release title and notes can be modified.
v2026.1.12
819edd1

Choose a tag to compare

This release focuses on improving the developer experience for monorepo setups and fixing cross-platform compatibility issues. If you've been struggling with task includes in monorepos or encountering strange behavior when cloning plugins on Windows Subsystem for Linux (WSL), this update has you covered.

Bug Fixes

  • Monorepo task includes now resolve correctly - Task includes are now resolved relative to the config file directory rather than the current working directory. This is a significant fix for monorepo users who define tasks in nested config files and expect includes to work relative to where the config lives. (#7917)

  • WSL git clone compatibility - Fixed an issue where autocrlf settings could cause problems when cloning git repositories on WSL. Mise now explicitly disables autocrlf during git clone operations, preventing line-ending issues that could break plugins and tools on Windows Subsystem for Linux. (#7916)

Documentation

  • Added documentation for using bash array patterns with variadic arguments in tasks, making it easier to handle variable numbers of arguments in your task definitions. (#7914) See the tasks documentation for more details.