The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Mise can manage project-specific versions of Node, Go, Ruby, and PHP, but avoiding shims does not require avoiding Mise. Choose shell activation for interactive work, shims when an application cannot load your shell setup, and mise exec or mise run for commands, scripts, and CI. Repeated shim launches can repeat version-resolution work; there is no universal speedup figure, and the right approach depends on how you run commands.
How Mise selects project tool versions
Mise installs development tools and selects versions based on configuration and execution context. A project can store its requested versions in mise.toml. In a project directory, mise use installs a requested tool and records it in the configuration; mise install installs tools already declared there without changing the file.
Use project-level requests for tools a project needs. A personal default can instead be set with mise use -g. Version requests should reflect the project’s compatibility requirements: a moving request is not the same as an exact pin. Commit the project configuration so teammates can use the same declared requests.
Set up Node, Go, and Ruby in a project
Install Mise using the instructions for your operating system, then open a terminal in the project directory and add the version requests the project requires. These examples follow Mise’s language guides; they are examples, not recommendations for every project.
mise use node@26
mise use go@1.25
mise use ruby@3.4
Each command installs the requested tool and records it in mise.toml. Check the project’s requirements before selecting versions, and verify that the required executable is available for your operating system and architecture.
Node
Mise’s Node guide documents project requests such as mise use node@26 and global defaults such as mise use -g node@26. Check the selected executable with mise exec -- node --version. The guide also notes that an external plugin with the same name can affect behavior, so inspect the plugin configuration if Node resolution is unexpected. Mise’s Node.js guide
Go
The Go guide documents requests such as mise use go@1.25. Go version files, including .go-version, go.mod, and go.work, require the relevant Mise setting to be enabled. For workspace files, the toolchain goX.Y.Z directive can request an exact version; Go’s own toolchain selection may then affect which tool runs. Verify with mise exec -- go version. Mise’s Go guide
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesRank #2
Ruby
The Ruby guide documents requests such as mise use ruby@3.4. Mise uses precompiled binaries on supported platforms and otherwise can build from source with ruby-build. The documented precompiled platforms include Apple Silicon macOS and glibc Linux on arm64 and x86_64; Alpine and other musl systems compile from source unless configured otherwise. Check the installed executable with mise exec -- ruby --version. Platform support can change, so check the current guide for your system. Mise’s Ruby guide
PHP
PHP appears in Mise’s registry, but the available PHP-specific guidance does not establish its current backend, command syntax, or supported platform matrix. Do not infer those details from registry presence alone. Consult the current official PHP language guide before adding a PHP request to the project configuration.
Choose activation, shims, or explicit execution
| Approach | Use it when | Trade-off |
|---|---|---|
mise activate |
You want tools and environment variables to follow project context in an interactive shell. | Depends on shell configuration and updates PATH at prompts and supported directory-change hooks. |
| Shims | An editor or other program needs to find tools but does not load your shell startup files. | Resolves the environment when a command is invoked; repeated calls can repeat that work. Shims do not support every activation feature. |
mise exec or mise run |
You need an explicit environment for a one-off command, script, task, or CI job. | Run commands through the Mise wrapper or a Mise task rather than relying on interactive prompt hooks. |
Mise’s documentation describes the distinction this way: “Shims resolve the environment when a command is invoked.” It also cautions that “Which costs less depends on how you run commands.” Shims are not inherently slow in every setting: the relevant issue is whether your workflow repeatedly starts commands through them.
Rank #3
Use Mise without repeated shim dispatch
Interactive terminal
For an interactive shell, configure mise activate for the shell you actually use, then restart the shell. Mise can update PATH and the environment as you work in project directories, so selected tools can resolve directly rather than relying on a shim for every launch. Follow the official getting-started guide for the shell-specific setup. Mise getting started
Free tools Windows power users keep installed
One-click scans. No signup required.
Script or CI job
For a script, wrap the enclosing process with mise exec so its child commands inherit the resolved environment. For example:
mise exec -- bash benchmark.sh
This prepares the environment for the script, rather than making each command inside it independently enter through a shim. For project tasks, define a Mise task and invoke it with mise run. In CI, use explicit installation and execution steps instead of assuming an interactive shell’s prompt hooks are active.
Editor or application that skips shell setup
If an editor or independently launched application does not read shell startup files, shims may be the practical way to expose Mise-managed tools to it. Confirm that the shim directory is on that application’s PATH and that the application supports the needed Mise behavior. The choice is about compatibility, not a rule that shims must always be removed.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Verify what actually runs
A version listed in configuration does not guarantee that a publisher provides an artifact for every operating system and architecture. Check the executable through Mise in the context where you intend to use it:
Recommended Free Tools
mise exec -- node --version
mise exec -- go version
mise exec -- ruby --version
For interactive use, also check the command from the configured shell after activation. If the result differs, inspect the project’s mise.toml, the active directory, shell activation, and any external plugins or language-specific version selection. For Go, account for enabled version-file parsing and Go’s own toolchain behavior.
Best Value
What the performance claim does—and does not—mean
Mise documents repeated shim invocation as repeated environment resolution, and describes activation as doing its work at prompts and supported directory-change hooks. That explains why explicit execution or shell activation can avoid repeated shim dispatch in some workflows. It is not a measured benchmark or a promise that every project will run faster.
No universal percentage or timing follows from that mechanism. Actual results depend on how commands are launched and the surrounding environment. A meaningful benchmark would need to disclose the machine, operating system, shell, Mise version, runtime, invocation count, warm or cold conditions, and the competing manager configuration.
Quick Recap
References
- Getting started: installation, project setup, activation, and execution
- Shims: activation differences and repeated invocation
- Node.js language guide
- Go language guide
- Ruby language guide
- Installing Mise
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

