Added
mise bootstrapcommand for end-to-end machine setup — system packages, dotfiles, macOS defaults, login shell, tools, and an optionalbootstraptask — with--yes,--dry-run, and--update(#10365, #10376 by @jdx).- Declarative dotfiles via
[dotfiles]plusmise dotfiles add/apply/edit/status, supportingsymlink,symlink-each,copy, andtemplatemodes, 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 throughmise bootstrap macos-defaults applywith drift reporting in status andmise doctor(#10363 by @jdx).[bootstrap.user].login_shellto declare and converge the current user's login shell (chsh -s, updating/etc/shellswhen needed) (#10377 by @jdx).[bootstrap.brew.taps]andmise bootstrap packages brew tap/untapfor 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 buildnow bakes[dotfiles]andapt:[bootstrap.packages]into images as dedicated annotated OCI layers (#10373 by @jdx).- Safe
mise.tomlfiles (no templates, onlymin_versionand 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 Forbiddenmessage (#10382 by @jdx). - Brew shim (
shim.rb) is now included in the published crate, fixingcargo publishfor 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 nowmonorepo_root(withexperimental_monorepo_rootkept as a hidden alias) (#10371 by @jdx). - Version lists for
mise-versionsare now fetched from/data/{tool}.tomlso 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
- Documented the 24h default for
minimum_release_age(#10366 by @ThijsdeJong-TomTom). - Link to all sponsors, add more tips-and-tricks entries, clarify contribution fit, and make the contributing guide canonical (#10369, #10370, #10378, #10380 by @jdx).
New Contributors
- @ThijsdeJong-TomTom made their first contribution in #10366
💚 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.