This release adds an experimental spinel: backend for compiling Ruby CLIs to native binaries. The mise.toml schema now checks each backend's own tool options, and daemon presets work on Windows. It also includes fixes for shell activation with untrusted configs, task timeouts and Windows quoting.
Added
-
Experimental
spinel:backend. It builds a Ruby command-line tool from a GitHub repository into a native executable using Spinel, Matz's Ruby AOT compiler. Versions come from git tags throughgit ls-remote, so listing them doesn't call the GitHub API. Available options:entrypoint,bin,tag_prefix,source_refandspinel. You need thespinelcompiler onPATH(mise doesn't install it yet) andmise settings experimental=true. It works on macOS and Linux only, and it may be removed later if it becomes a maintenance burden. Based on nateberkopec/mise-backend-spinel. #13922[tools."spinel:tobi/try"] version = "1.10.1" entrypoint = "try.rb" bin = "try" tag_prefix = "v"
-
Typed tool options in the JSON schema. Editors that use
schema/mise.jsonnow validate and autocomplete options for each backend, based on the tool's prefix. This covers github, gitlab, forgejo, ubi, http, s3, aqua, cargo, npm, pypi/pipx, gem, go, conda, spm, packslip and spinel. It also covers core-tool options forpython,java,rustanddotnet, per-platform overrides (platforms.<os>-<arch>) and[tasks.*.tools]tables. For example, a numericasset_patternorjavarelease_type = "stable"is now flagged. Boolean options accepttrue/false,"true"/"false"and1/0, the same values mise accepts.lazy_binsaccepts a single string. The deprecatedexperimental_monorepo_rootkey is allowed again. Runtime behavior is unchanged, but your editor may now flag mistakes in existing configs. #13924 -
Daemon presets on Windows.
mise daemons startno longer refuses preset daemons on Windows. Every preset exceptredis, which has no Windows build, now runs under pitchfork's defaultcmd /Cshell. For PostgreSQL to stop cleanly, you need pitchfork 2.29.0 or later. PostgreSQL also won't start from an elevated prompt. Windows reserves some port ranges for Hyper-V and WSL, so a preset's default port can be blocked. If it is, set a different one withports. #13929 by @JamBalaya56562[daemons.db] preset = "postgres" version = "18" options = { database = "app" }
-
Install mise with packslip. The installation guide now covers installing mise's signed release without running an install script. packslip verifies the Sigstore signature and the archive digest.
mise self-updateworks with this install method. #13710packslip install github.com/jdx/mise --pin ps1_nlhmwtfeufglxv5myvwvronk7a
Fixed
Config and activation
- An untrusted project config no longer breaks shell activation. Before,
mise hook-envfailed completely, so tools and env from your trusted global config were not applied either. Now it skips the untrusted file, prints the usual one-time warning and loads everything else. Explicit commands such asmise runandmise xstill error on untrusted configs. #13919 - A failed settings reload is reported as an error instead of crashing. Commands such as
mise install,mise use,mise upgradeandmise ls-remote --prereleasereload settings partway through. Before, a failed reload aborted mise with SIGABRT and a core dump. Now mise printsfailed to reload settingswith the cause and keeps using the previous settings. #13925 --no-configandMISE_NO_CONFIG=1now skip.miserc.tomldiscovery. Before, a malformed project, global or system miserc broke commands likemise --no-config version. #13926 by @donbeave
Tasks
- A timed-out task fails even if it exits cleanly. On Unix, a task that caught SIGTERM and exited 0 after its
timeoutwas reported as successful. Nowmise runreportstimed outand exits non-zero. #13930 by @Marukome0743 - Timed-out tasks on Windows can clean up. When a task hits its
timeout, mise now sends it Ctrl+C and gives it 5 seconds before ending its process tree, the way Unix uses SIGTERM followed by SIGKILL. For example, PowerShellfinallyblocks now run. Only the timed-out task gets the Ctrl+C. The whole-runmise run --timeoutstill stops tasks immediately on Windows. #13889 by @JamBalaya56562
Windows
mise exec -- cmd /ckeeps double quotes. Before,mise exec -- cmd /c 'echo "a b"'printed\"a b\". Pitchfork daemons withmise = truewhoseruncontained a quote, such as a quoted program path with a space, also failed to start. mise now passes a single quoted command after/cor/kto cmd unchanged. #13887 by @JamBalaya56562- Task daemons with
initsteps start undercmd.exe. Before, they failed with'exec' is not recognized. On Windows, mise now builds the command with cmd quoting and escaping. Writeinitsteps as cmd commands. #13928 by @JamBalaya56562
Other
- packslip follows repositories that moved to a new owner. mise now treats a transfer like a rename, matching on repository ID with a one-time warning. It still refuses a different repository that reuses a deleted repository's name. Refusal messages now tell you which records to clear:
mise packslip forget, the tool'smise.lockentries, or both. Existing pins and lockfile entries still load. #13710 mise dot saveand history sync work after a tracked directory is replaced by a symlink. Before, they failed while reading older checkpoints. #13931
Registry
helmfile(1.8.1 and later) anddagu(2.18.0 and later) now install from signed packslip manifests. Older versions still install throughaqua:. To list them, runmise ls-remote aqua:helmfile/helmfileormise ls-remote aqua:dagucloud/dagu. #13933- New aqua packages:
goccy/tobari,ymmt2005/pbschema-lens.
Full Changelog: v2026.10.1...v2026.10.2
💚 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.