jdx / mise
git clone https://github.com/jdx/mise.git
v2026.10.17 · 2d ago
dev tools, env vars, task runner
+37
stars, 24h · #1,044
+~184
stars, 7 days · #1,211
+~790
stars, 30 days · #1,070
35k
★ total · +1% this week
1.5k
forks · 9 open issues
Star history (as recorded here)
LanguageRust
LicenseMIT
Created2023-01-09 (3y ago)
Last pushtoday
Watchers51
OwnerUser
Links
- GitHub: github.com/jdx/mise
- Homepage: https://mise.jdx.dev
- Releases · Issues · Hacker News mentions
README excerpt
mise-en-place Dev tools, env vars, and tasks in one CLI Getting started • Docs • Dev tools • Environments • Tasks • Bootstrap Sponsored by View all sponsors ## What is mise? mise (pronounced "meez", short for _mise-en-place_) installs a project's tools, sets its environment variables, and runs its tasks from one `mise.toml` that works in your shell, editor, and CI. With `mise bootstrap`, it can also set up a whole machine: packages, dotfiles, and services. - Install tools such as Node.js, Python, and Terraform from a registry of 1,000+, with a different version in each project. - Set environment variables and load `.env` files for each project. - Run tasks, such as build and test, with the project's tools and environment variables. - Set up a machine with `mise bootstrap`, which applies the system packages, dotfiles, repositories, and services you declare for it. Use only the parts you need. You can start with one tool or one task. ## Demo Watch mise run a tool once with `mise exec`, set global defaults, and switch Node.js versions as you move into and out of a project. The demo transcript lists the commands with current versions. ## Quickstart ### 1. Install mise On macOS or Linux: [code] On Windows, run `winget install jdx.mise`. For Homebrew, apt, Scoop, and other methods, see Installing mise. The installer puts mise in `~/.local/bin`. If that directory is not on your `PATH`, type `~/.local/bin/mise` wherever the steps below say `mise`, until you activate mise in step 4. ### 2. Try a tool [code] `mise exec` installs Node.js 24 if needed and runs one command with it. It does not change your shell or any config file, and it works without activation. ### 3. Set up a project [code] `mise use` installs Node.js 24 and writes it to a new `mise.toml`. Add an environment variable and a task to that file: [code] Run the task: [code] [code] The task runs with the project's Node.js and `NODE_ENV`. Commit `mise.toml` so teammates and CI get the same setup. `"24"` is a version request for the Node.js 24 series, not an exact pin; to share exact versions, use a lockfile. Run `mise use python@3.14` to add another tool to the project, or `mise use --global node@24` to set a personal default in `~/.config/mise/config.toml`. To see what mise loaded in this directory: [code] ### 4. Activate mise in your shell (optional) Activation puts a project's tools on your `PATH` and sets its environment variables when you enter the project, so you can run `node` without `mise exec`. If you installed with `mise.run`, run the commands for your shell once: [code] [code] [code] Open a new shell. In `my-project`, `node --version` now prints `v24.x.x`. For PowerShell, Nushell, and other shells, or for mise installed another way, see Shell setup. ## Where to go next | To | Read | | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------