Skip to content

Directory Structure

The following are the directories that mise uses.

TIP

If you often find yourself using these directories (as I do), I suggest setting all of them to ~/.mise for easy access.

~/.config/mise

  • Override: $MISE_CONFIG_DIR
  • Default: ${XDG_CONFIG_HOME:-$HOME/.config}/mise

This directory stores the global configuration file ~/.config/mise/config.toml. This is intended to go into your dotfiles repo to share across machines.

~/.cache/mise

  • Override: $MISE_CACHE_DIR
  • Default: ${XDG_CACHE_HOME:-$HOME/.cache}/mise, macOS: ~/Library/Caches/mise.

Stores internal cache that mise uses for things like the list of all available versions of a plugin. Do not share this across machines. You may delete this directory any time mise isn't actively installing something. Do this with mise cache clear. See Cache Behavior for more information.

~/.local/state/mise

  • Override: $MISE_STATE_DIR
  • Default: ${XDG_STATE_HOME:-$HOME/.local/state}/mise

Used for storing state local to the machine such as which config files are trusted. These should not be shared across machines.

~/.local/share/mise

  • Override: $MISE_DATA_DIR
  • Default: ${XDG_DATA_HOME:-$HOME/.local/share}/mise

This is the main directory that mise uses and is where plugins and tools are installed into. It is nearly identical to ~/.asdf in asdf, so much so that you may be able to get by symlinking these together and using asdf and mise simultaneously. (Supporting this isn't a project goal, however).

This directory could be shared across machines but only if they run the same OS/arch. In general I wouldn't advise doing so.

~/.local/share/mise/downloads

This is where plugins may write downloaded assets such as tarballs during installation. mise removes these files by default after install/uninstall; set always_keep_download to keep them for debugging backend/plugin install behavior. This directory is not a supported download cache. Some backends may skip a download when the expected file already exists, but that behavior is backend-specific and not guaranteed. Cache ~/.local/share/mise/installs instead if you want to avoid reinstalling tools in CI or offline workflows.

~/.local/share/mise/plugins

mise installs plugins to this directory when running mise plugins install. If you are working on a plugin, I suggest symlinking it manually by running:

sh
ln -s ~/src/mise-my-tool ~/.local/share/mise/plugins/my-tool

~/.local/share/mise/installs

This is where tools are installed to when running mise install. For example, mise install [email protected] will install to ~/.local/share/mise/installs/node/20.0.0

This will also create other symlinks to this directory for version prefixes ("20" and "20.15") and matching aliases ("lts", "latest"). For example:

sh
$ tree ~/.local/share/mise/installs/node
20 -> ./20.15.0
20.15 -> ./20.15.0
lts -> ./20.15.0
latest -> ./20.15.0

You can set the MISE_INSTALLS_DIR environment variable to override this location.

~/.local/share/mise/shims

This is where mise places shims. Generally these are used for IDE integration or if mise activate does not work for some reason.

MIT LicenseCopyright © 2026en.dev