github jdx/mise v2026.6.6
v2026.6.6: Declarative machine bootstrap

11 hours ago

Added

  • mise bootstrap command for end-to-end machine setup — system packages, dotfiles, macOS defaults, login shell, tools, and an optional bootstrap task — with --yes, --dry-run, and --update (#10365, #10376 by @jdx).
  • Declarative dotfiles via [dotfiles] plus mise dotfiles add / apply / edit / status, supporting symlink, symlink-each, copy, and template modes, glob wildcards in source paths, and block/line edits to files mise doesn't own (#10365, #10368, #10374, #10376 by @jdx).
  • [bootstrap.macos.defaults] for declaratively managing macOS user defaults, applied through mise bootstrap macos-defaults apply with drift reporting in status and mise doctor (#10363 by @jdx).
  • [bootstrap.user].login_shell to declare and converge the current user's login shell (chsh -s, updating /etc/shells when needed) (#10377 by @jdx).
  • [bootstrap.brew.taps] and mise bootstrap packages brew tap / untap for third-party Homebrew taps, with tap context preserved through dependency resolution and source builds (#10375, #10383 by @jdx).
  • brew-cask: package manager that installs supported app-bundle casks directly from cask API metadata without requiring a local Homebrew install (#10383 by @jdx).
  • Native Homebrew source builds: when no usable bottle exists, mise provisions Ruby, evaluates the formula with a built-in Formula DSL shim, and builds from source into the canonical prefix (#10364 by @jdx).
  • mise oci build now bakes [dotfiles] and apt: [bootstrap.packages] into images as dedicated annotated OCI layers (#10373 by @jdx).
  • Safe mise.toml files (no templates, only min_version and plain [tools] / [tasks] strings) auto-load without a trust prompt; everything else still requires trust (#10360 by @jdx).

Fixed

  • CLI no longer panics on arguments containing invalid UTF-8; malformed bytes become U+FFFD and surface as a normal error (#10386 by @JamBalaya56562, fixes #10056).
  • GitHub 403 errors now include the response body, rate-limit headers, and whether the request was authenticated, replacing the bare 403 Forbidden message (#10382 by @jdx).
  • Brew shim (shim.rb) is now included in the published crate, fixing cargo publish for the source-build path (#10388 by @jdx).

Changed

  • MCP server, sandboxing, hooks/watch_files, monorepo tasks, task templates, native GitHub OAuth, custom vfox backends, Swift, and the dotnet/s3/spm backends are no longer experimental; the monorepo root key is now monorepo_root (with experimental_monorepo_root kept as a hidden alias) (#10371 by @jdx).
  • Version lists for mise-versions are now fetched from /data/{tool}.toml so Cloudflare can serve them as static assets (#10361 by @jdx).
  • Split archive extraction and single-file decompression into dedicated helpers (extract_archive, decompress_file), with clearer errors for unsupported formats (#10274 by @risu729).

Documentation

New Contributors

💚 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.