Manage project-specific tools and environment variables in a single file
You no longer need to repeat the process of installing language versions, setting environment variables, and finding build commands every time you open a new project. mise reads a single mise.toml file in your project folder to install the necessary tools and configure the environment. It ensures the same settings are maintained whether you are in a shell, editor, or CI environment.
Managing three elements with a single mise.toml
mise handles development tools, environment variables, and tasks within a single configuration file. When you specify versions for tools like Node.js or Python, the required versions are installed automatically. Environment settings such as .env files or PATH entries are also loaded automatically. Tasks defined in mise.toml support dependency relationships and parallel execution, running in a state where the project's tools and environment are already prepared. You can use only the necessary parts selectively, allowing it to be used alongside existing .tool-versions files.
Running tools without modifying shell settings
The mise exec command allows you to run a specific version of a tool without changing your current shell settings. For example, running mise exec node@24 -- node --version will download Node.js 24 if it is not installed and then execute the command with that version. This approach does not affect the global environment, making it useful for temporarily testing different versions. If you enable shell activation, PATH and environment variables are automatically updated whenever you change directories, allowing you to call node directly.
Automating new machine setup
System settings outside of projects can also be managed via ~/.config/mise/config.toml. This reduces the manual process of installing items one by one when setting up a new computer.
Things to check before applying
mise is a CLI tool written in Rust, available for macOS, Linux, and Windows. For project team members to use the same environment, it is recommended to commit mise.toml and use mise lock for precise version pinning. It is compatible with existing version management files, but since activation commands differ by shell, you must apply the settings appropriate for your current shell.