This release makes mise noticeably faster on Linux x64: shims have 15% lower latency, while config-aware commands are 8–11% faster in local release-to-release benchmarks. It also significantly expands the experimental monorepo task workflow with dependency inference across Cargo, uv (Python), Go, and Node workspaces, and makes precompiled Ruby binaries the default.
⚡ Performance: up to 15% lower latency
Official checksum-verified Linux x64 GNU binaries were compared on an AMD Ryzen 9 7950X3D using an isolated offline fixture with warm filesystem caches (20 warmups and 200 measured runs per command):
| Workload | v2026.7.18 | v2026.8.0 | Lower latency |
|---|---|---|---|
| Node shim dispatch | 6.990 ms | 5.929 ms | 15.2% |
tasks ls |
7.353 ms | 6.574 ms | 10.6% |
env -s bash |
7.942 ms | 7.187 ms | 9.5% |
current |
7.667 ms | 6.961 ms | 9.2% |
settings |
5.823 ms | 5.331 ms | 8.5% |
--help |
5.036 ms | 4.731 ms | 6.1% |
version |
5.108 ms | 4.884 ms | 4.4% |
registry |
7.457 ms | 7.181 ms | 3.7% |
Release downloads are smaller as well:
| Linux x64 artifact | Size change |
|---|---|
.tar.xz |
11.1% smaller |
.tar.gz |
5.9% smaller |
.tar.zst |
5.0% smaller |
| Allocated ELF sections | 0.6% smaller |
The raw executable file is 2.5% larger because of the BOLT file layout, despite its smaller allocated sections and compressed artifacts. Shim dispatch was measured in two reversed-order 300-run rounds. These are whole-release results against v2026.7.18, so they include all changes between the releases rather than isolating BOLT alone.
Highlights
- Workspace inference now spans four ecosystems.
mise tasks graphdiscovers projects and internal dependency edges from Cargo, uv, Go, and Node workspace metadata without needing the underlying toolchain installed, and--explainattributes every project, edge, and task field to its source. - Precompiled Ruby binaries are now the default, cutting install times for most users while keeping source builds available on demand.
Added
-
task: Cargo workspaces are now inferred for the task graph. mise parses root and member
Cargo.tomlfiles (nocargobinary required) to buildcargo:<package>projects and internal edges from normal, dev, build, target-specific, renamed, and inheritedworkspace = truepath dependencies, with provenance surfaced in graph output. (#11554 by @jdx) -
task: uv (Python) workspaces are inferred from
pyproject.toml. When[tool.uv.workspace]is present, member globs and exclusions defineuv:<package>projects and edges come from[tool.uv.sources]workspace = true/ localpathentries across main, optional, dependency-group, and legacy dev dependencies — again without invokinguvor Python. (#11556 by @jdx) -
task: Go workspaces are discovered from
go.workusedirectives and each module'sgo.mod, registering stablego:<module-path>projects without running thegobinary. Dependency ordering is supplied explicitly via[monorepo.projects]overrides. (#11559 by @jdx) -
task: workspace providers can now contribute task suggestions. The Node provider imports supported
inputs,outputs,cache, anddependsOnmetadata from matchingturbo.jsonentries for inferred package scripts, trackingturbo.jsonas a task definition source. Unsupported Turbo expressions are left unset. (#11543 by @jdx) -
task:
mise tasks graph --explainshows provider and metadata-source provenance for every inferred project, dependency edge, task, and provider-suggested field, and--jsonnow serializes the same attribution. Config overrides are labeled asconfigurationrather than misattributed to inference. (#11547 by @jdx)mise tasks graph --explain
-
task:
mise watchgains a per-taskwatch.no_vcs_ignoreoption so tasks can watch sources that are excluded by.gitignore(such as generated files). VCS ignores stay enabled by default to avoid scanning broad build directories; one opted-in task enables it for the combined watch process. (#11535 by @Marukome0743)[tasks.generate] run = "process generated/output.json" sources = ["generated/output.json"] watch = { no_vcs_ignore = true }
-
task: groundwork for affected-project task selection: mise can now resolve affected Git base/head revisions (with
MISE_AFFECTED_BASE/MISE_AFFECTED_HEADoverrides and CI auto-detection for GitHub Actions and GitLab), map changed files to the workspace projects that own them, and expand that set through transitive reverse-dependency edges across providers. (#11585, #11569, #11583 by @jdx)
Changed
- ruby: precompiled Ruby binaries are now the default when
ruby.compileis unset — installs tryjdx/rubybinaries first and fall back to a source build when none are available. Setruby.compile = trueto force a source build as before. (#11584 by @jdx)
Fixed
- config:
--path <dir>now targets a config file inside that directory foruse,unuse,set,unset,dotfiles add, and thesystemsubcommands. Previously--pathwas silently discarded when the current directory already had a config in scope, somise unuse --path ../othercould remove a tool from the wrong file. (#11575 by @JamBalaya56562) - task: Ctrl-C is now treated as an interruption rather than a task failure.
mise runstops starting new work, exits with status 130, and no longer printsno exit statusortask failed, while still allowing post-dependency cleanup to run. (#11511 by @Marukome0743) - task:
sourcesandoutputsnow support brace globs (e.g.{a,b}/**), and literal single-element braces are preserved rather than being mangled. (#11555, #11565 by @Marukome0743) - python:
mise run --tool python@3.12now honors the selected interpreter when creating a_.python.venv, instead of building the venv from the first[tools] pythonentry. (#11567 by @JamBalaya56562) - unuse:
mise unuse node@20onnode = ["20", "22"]now removes only the matching version and preserves the rest, including structured options and.tool-versionsentries. The whole tool key is removed only for an unversioned request or after the last version is unused. (#11563 by @Marukome0743) - env: an explicit
redact = falseon a variable now excludes it from matchingredactionspatterns, so a short opted-out value no longer leaks into the global scrubber and partially redacts unrelated secrets. (#11564 by @jdx) - hook-env: if a shell command overwrites a mise-managed variable or removes a PATH entry added by mise,
hook-envnow detects the drift and restores it, while leaving user-owned variables, added PATH entries, and PATH reordering untouched. (#11568 by @Marukome0743) - dotfiles:
symlink-eachno longer recursively walks shared targets like~for status, apply, and unapply. mise now records exact source-to-target pairs in a manifest under$MISE_STATE_DIR/dotfiles, avoiding traversal of unrelated and unreadable home-directory trees. Existing installs are backfilled on their next apply. (#11549 by @jdx) - asdf: dependencies declared via
[tools].dependsare now on the PATH given tobin/downloadandbin/installscripts during the samemise install, fixing first-install failures where a dependency's executable was still missing.bin/installnow also fails when it installs nothing. (#11531 by @Marukome0743, #11553 by @JamBalaya56562) - vfox: plugins whose
pre_installhook returns a sha1 or md5 checksum are now verified instead of panicking withnot implemented: sha1. (#11536 by @JamBalaya56562) - aqua: checksum files that carry a byte-order mark are now read correctly, and the checksum manifest is fetched with the text-fetching path again. (#11552, #11558 by @JamBalaya56562)
- brew-cask: direct cask pours are hardened with transactional activation, content-fingerprinted receipts, validated paths, and structured
terminate_process/postflight handling, covering current cask shapes such as Cloudflare WARP, TablePlus, Zoom, OrbStack, Surge, Plex Media Server, and Zed Preview. Homebrew-owned casks are left byte-for-byte untouched. (#11215 by @donbeave) - forgejo: the new
fjmacOS key path is now supported. (#11545 by @jdx) - github, gitlab:
gh/glabconfig is now found on Windows. (#11508 by @JamBalaya56562) - http: HTTP client initialization failures are now handled gracefully instead of aborting. (#11561 by @Marukome0743)
Performance
- shim: shims reuse the resolved toolset and config roots, reducing per-invocation overhead. (#11534 by @jdx)
- task: workspace discovery caches its filesystem access. (#11562 by @jdx)
- release: the Linux x64 binary is optimized with BOLT and overall release binary size is reduced. (#11533, #11520 by @jdx)
Documentation
Registry
- Updated the herdr repository. (#11518 by @ogulcancelik)
Full Changelog: v2026.7.18...v2026.8.0
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
AI-assisted — Tool: Codex; model: unavailable/unavailable; version: unavailable.