v2026.2.22
jdx/misev2026.2.22Feb 27, 2026by mise-en-dev
AI Summary
A small release adding a new way to check for outdated plugins, along with three bug fixes for archive installs, tool environment resolution, and cross-platform Ruby lockfiles.
Key Highlights
- New `mise plugins ls --outdated` flag to check remote git refs in parallel
- `rename_exe` works with archives containing a `bin/` subdirectory
- Installing cargo/npm/pipx tools no longer crashes with `tools = true` env directives
- Ruby lockfile resolves correct Windows checksums for RubyInstaller2
- Registry: terradozer switched to GitHub fork
New Features
- mise plugins ls --outdated flag
- rename_exe fix for bin/ subdirectory in archives
- Fix for tools = true env directive resolution during install
- Ruby lockfile Windows checksum fix
Full Release Notes
A small release adding a new way to check for outdated plugins, along with three bug fixes for archive installs, tool environment resolution, and cross-platform Ruby lockfiles.
## Added
- **`mise plugins ls --outdated` flag** -- A new `-o`/`--outdated` flag checks remote git refs in parallel and displays only plugins where the local SHA differs from the remote. Shows a table with plugin name, URL, ref, local SHA, and remote SHA. Prints "All plugins are up to date" when everything is current. [#8360](https://github.com/jdx/mise/pull/8360) by @jdx
```sh
$ mise plugins ls --outdated
Plugin Url Ref Local Remote
tiny https://github.com/mise-plugins/rtx-tiny.git main abc1234 def5678
```
## Fixed
- **`rename_exe` works with archives containing a `bin/` subdirectory** -- When an archive extracts to a layout like `prefix/bin/binary`, the `rename_exe` option was silently skipped because it searched the extraction root non-recursively instead of the `bin/` subdirectory where the binary actually lives. Both the GitHub-style backend and the HTTP backend now auto-detect the `bin/` subdirectory as the search directory, matching the same logic used by `discover_bin_paths()` for PATH construction. [#8358](https://github.com/jdx/mise/pull/8358) by @jdx
- **Installing cargo/npm/pipx tools no longer crashes with `tools = true` env directives** -- When `[env]` contained entries like `NODE_VERSION = { value = "{{ tools.node.version }}", tools = true }`, installing npm/cargo/pipx tools would fail with "Variable not found in context" because the referenced tools might not be installed yet. The cargo, npm, and pipx backends now skip `tools = true` env directive resolution during installation while still including tool paths in PATH. [#8356](https://github.com/jdx/mise/pull/8356) by @jdx
- **Ruby lockfile resolves correct Windows checksums** -- Running `mise lock` on macOS/Linux now correctly resolves RubyInstaller2 binary URLs and checksums for Windows platform entries, instead of incorrectly using the MRI source tarball checksum. The lockfile generator now fetches the correct `.7z` asset from the `oneclick/rubyinstaller2` GitHub releases for Windows targets. [#8357](https://github.com/jdx/mise/pull/8357) by @jdx
## Changed
- **Registry: terradozer switched to GitHub fork** -- The terradozer registry entry now points to `github:chenrui333/terradozer` (replacing the archived asdf plugin and unavailable aqua backend), and is restricted to Linux and macOS. [#8365](https://github.com/jdx/mise/pull/8365) by @chenrui333
## New Contributors
* @chenrui333 made their first contribution in [#8365](https://github.com/jdx/mise/pull/8365)
**Full Changelog**: https://github.com/jdx/mise/compare/v2026.2.21...v2026.2.22