Skip to content

mise installs migrate ​

Reinstall legacy installations into the identity install layout

Installations made before install_layout = "identity" was turned on stay in installs/<tool>/<version> and keep working; mise never moves them on its own, because tools record their own path in shebangs, virtual environments and package-manager files. This reinstalls each one into its own <label>-<hash> directory, then removes the old directory and puts the version link in its place, so a path that pointed into the old directory still resolves.

Each version is reinstalled from its backend, not copied, so the files are written for their new path. Run it while nothing is using the tools: the old directory is moved aside while its replacement installs, and put back if that fails. Versions whose recorded backend is not the one their tool resolves to now are left alone, as are tools that keep the legacy layout (http:, rust, dotnet).

Arguments ​

  • [TOOL@VERSION]… — Only migrate these tools, or these versions of them

    Defaults to every legacy installation.

Flags ​

  • -n --dry-run — Show what would move without changing anything
  • -h --help — Print help

Examples ​

List the legacy installations that would move

mise installs migrate --dry-run

Move every installed node, and one python

mise installs migrate node python@3.12.1
MIT LicenseCopyright © 2026jdx.dev