github jdx/mise v2026.6.14
v2026.6.14: Bootstrap, end-to-end

4 hours ago

Added

  • bootstrap: mise bootstrap --only <part> as the inverse of --skip, accepting repeated/comma-separated phase names and mutually exclusive with --skip (#10607 by @jdx).
  • bootstrap: mise bootstrap packages import / prune for Homebrew formulae, snapshotting requested installed formulae into [bootstrap.packages] and ledger-pruning only adopted formulae no longer needed by merged config (#10606 by @jdx).
  • bootstrap: mise bootstrap status (alias ls) aggregates packages, dotfiles, macOS defaults, launchd, systemd, login shell, repos, shell activation, and [tools] into one report with --json and --missing (non-zero exit when anything is out of sync) (#10608, #10612 by @jdx).
  • bootstrap: Consolidated bootstrap: follow-up summary listing deferred user actions (macOS defaults relaunches, login shell re-login, unavailable managers, OS-skipped phases) at the end of mise bootstrap; dry runs show follow-up if applied (#10609 by @jdx).
  • bootstrap: Declarative [bootstrap.mise_shell_activate] config plus mise bootstrap shell apply/status to install marker-delimited mise activate/shims snippets in bash, zsh, and fish rc files (#10610 by @jdx).
  • bootstrap: Path-keyed [bootstrap.repos] with mise bootstrap repos apply/status to clone/update git checkouts; runs after packages, before dotfiles, with pre-repos/post-repos hooks and safety checks for dirty trees and origin mismatches (#10611 by @jdx).
  • bootstrap: Restructured mise bootstrap subcommands so visible CLI mirrors config sections (packages apply, dotfiles, mise-shell-activate, macos defaults, macos launchd-agents, linux systemd-units, repos); legacy paths kept as hidden aliases (#10613 by @jdx).
  • brew: Built-in brew-cask installer now supports binary cask artifacts (e.g. 1Password CLI op), staging in the Caskroom and symlinking under the Homebrew prefix (#10604 by @jdx).
  • backend: Asset platform detection now recognizes riscv64 (including riscv64gc) and loongarch64, so tools like aqua:astral-sh/uv install correctly on those hosts (#10506 by @elerch).

Fixed

  • which: mise which now auto-enables prefer_offline, so binary lookups no longer make remote HTTP calls when an installed version satisfies the request, even with minimum_release_age configured (#10595 by @JamBalaya56562).
  • sigstore: Sigstore TUF root fetches honor settings.url_replacements, fixing aqua cosign-verified installs (e.g. cosign@3.1.1) behind a mirror; the embedded production root is still pinned so a mirror cannot forge trust (#10596 by @JamBalaya56562).
  • config: Treat symlinked global config paths as global so ~/.config/mise/conf.d/*.toml on Fedora Atomic / ostree (/home -> /var/home) is no longer flagged as non-global and stripped (#10597 by @JamBalaya56562).
  • config: mise set and other TOML writes now target the nearest config directory before picking the lowest-precedence file in it, so nested projects no longer accidentally update a parent mise.toml (#10603 by @jdx).
  • config: Return a clean read-only error instead of panicking when something tries to write to an idiomatic version file (e.g. mise use --path package.json) (#10602 by @jdx).
  • github: github::get_headers returns an error rather than panicking on a relative URL, fixing an unwrap crash seen installing aqua:jdx/aube@v1.24.0 (#10591 by @risu729).
  • hook-env: Suppress repeated untrusted-config warnings while staying in the same directory; leaving and re-entering, or editing .mise.toml, re-enables the warning, and explicit commands still report the full error (#10589 by @jdx).
  • settings: mise settings set for a brand-new dotted key no longer emits an empty [settings] header before the nested [settings.foo] table (#10605 by @jdx).
  • completions: Deduplicate plugin names in shell completion so mise ls --installed no longer surfaces duplicate plugin@ entries (#10351 by @zeitlinger).

Documentation

💚 Sponsor mise

mise is built by @jdx under en.dev — an independent studio making developer tooling (mise, aube, and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at en.dev. Individual and company sponsorships keep mise fast, free, and independent.

Don't miss a new mise release

NewReleases is sending notifications on new releases.