Dotfile management moves to the top level as mise dot, Homebrew bootstrap installs run their download, extraction, and linking stages concurrently, and several install paths are corrected: embedded aube reputation gates now report the real reason and honor --yes, PyPI tools fall back to version-only installs when a dependency graph cannot be built, lazy tools no longer trigger missing: warnings, and lockfiles no longer resurrect disabled backends.
Added
-
dotfiles: The full dotfiles command tree is now available as
mise dotfiles, withmise dotas a short alias.mise bootstrap dotfilesremains supported and all three spellings share the same behavior, including bootstrap hooks aroundapply. Generated history-watch services now invokemise dot watch. (#13158 by @jdx)mise dot track ~/.zshrc mise dot status mise dot history
-
dotfiles: Enabling encryption on a file that was previously saved in plaintext left older commits that blocked sync.
mise dot sync --allow-plaintext-historylets that history reach the origin for one run, and the global-only settingsettings.history.allow_plaintext_history = true(defaultfalse, envMISE_HISTORY_ALLOW_PLAINTEXT_HISTORY) does the same for sync, publish, the history watcher, and incoming history on pull. New saves still follow the file's encryption policy; the history guide also documents how to remove the old commits instead. (#13175 by @jdx) -
registry: Added
poppler(conda:poppler), providingpdftotext,pdfinfo,pdftoppm,pdftocairo,pdfunite, and the other Poppler PDF utilities. (#13133 by @i-api)
Fixed
- npm: Embedded aube reputation gates (low weekly downloads, similar-name, new package name) no longer surface as a misleading
user aborted mise adderror when stdin is closed or no terminal is attached. Non-interactive installs now report the measured signal (for example 569 weekly downloads against the 1000 threshold) and suggest the mise-native fix,allow_low_downloads = trueon the tool; an explicit "no" reportsuser declined to add <package>. An explicit CLI--yesnow reaches the aube prompt and approves it, including auto-installs throughuse,exec,run,shell, andupgrade; CI mode and a configuredyes = truesetting alone do not approve reputation gates. (#13123 by @jdx) - pypi: Ordinary
mise installofpypi:/pipx:tools no longer fails when a uv dependency graph cannot represent the package or its configuration, such as a source-only dependency or free-formuvx_args/pipx_args. mise warns and falls back to the version-only install path, reusing an existing version-only installation on later runs.mise lockandmise install --lockedremain strict and still reject unsupported arguments or dependencies without usable wheels. (#13170 by @jdx) - Tools declared with
lazy = trueare no longer reported asmissing: <tool>when entering a project or running a baremise install, regardless ofstatus.missing_tools; ordinary missing tools are still reported as before. (#13169 by @jdx) - backend: Backend discovery from lockfiles now skips backends listed in
disable_backends. When a parentmise.lockpins a shorthand such asyarntoasdf:yarnand a child project disables asdf,mise tool yarn --backendand a fresh childmise locknow select the first enabled recorded backend or fall back to the enabled registry backend (aqua:yarnpkg/berry) instead of the disabled pin. The parent lockfile is left unchanged and explicitly installing a disabled backend still fails. (#13178 by @jdx)
Changed
- bootstrap:
mise bootstrap packages applyinstalls Homebrew packages substantially faster. Formula metadata for each dependency frontier is fetched concurrently, bottles are extracted, relocated, signed, and receipted concurrently, and each job now downloads and prepares its own bottle so prepared bottles are committed as soon as dependency order allows. All stages respect the existingjobslimit with no new settings; Cellar commits and prefix linking stay dependency-ordered,opt/<name>is linked last so an interrupted install cannot look complete, and a failure cancels queued work while cleaning up in-flight staging. On Apple silicon, a fresh install ofbrew:jq brew:tree brew:wget brew:just brew:shellcheckdropped from roughly 6.6s to 4.0s, and dependency resolution forbrew:ffmpegfrom 288ms to 112ms. (#13151, #13152, #13155 by @jdx)
Documentation
- The npm backend, PyPI backend, and
mise.lockguides now open with quick-start and everyday workflows (mise use node@24 npm:prettier,mise use python@3.14 uv pypi:black,mise lock,mise install --locked) and group dependency-graph locking, sidecar management, and strict-mode details afterward. The lockfile guide clarifies that URL-lock exemptions do not exempt dependency graphs from validation. (#13149 by @jdx)
Full Changelog: v2026.9.7...v2026.9.8
💚 Sponsor mise
mise is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If mise saves you or your team time, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep mise fast, free, and independent.