dev tools, env vars, task runner
  • Rust 79.6%
  • Shell 15.8%
  • TypeScript 2.5%
  • PowerShell 0.6%
  • Lua 0.5%
  • Other 0.7%
Find a file
2026-06-18 01:11:33 +00:00
.cargo chore: Merge vfox.rs into jdx/mise monorepo (#5590) 2025-07-12 06:54:20 -05:00
.claude chore: update singular/plural forms for word "task" (#7448) 2025-12-19 05:27:35 +00:00
.config various CLI improvements (#1190) 2023-12-14 22:51:17 -06:00
.cursor chore: remove devcontainer and docker development setup (#8421) 2026-03-02 12:39:57 +00:00
.github chore(ci): revert idempotent release asset upload (#10433) 2026-06-14 04:49:02 -05:00
.idea fix(backend): adjust libc detection for musl distros (#10020) 2026-05-27 23:29:52 -05:00
cloudflare/workers chore(docs): switch canonical domain to mise.en.dev (#9411) 2026-04-26 14:51:50 -05:00
completions chore(deps): bump usage to 3.5.2 (#10498) 2026-06-17 02:52:26 +00:00
crates chore(deps): replace fuzzy matcher (#10467) 2026-06-15 20:00:39 -05:00
docs fix(pipx): warn for unsupported uv exclude-newer (#10510) 2026-06-17 16:59:42 -05:00
e2e fix(env): expand escaped dollar in env shell expansion (#10511) 2026-06-18 00:59:47 +00:00
e2e-win fix(task): error on empty task shell (#10517) 2026-06-17 19:46:22 -05:00
licenses feat(backend): add pkgx backend (#10408) 2026-06-13 16:53:51 -05:00
man/man1 feat(bootstrap): add skip controls (#10497) 2026-06-17 03:20:18 +00:00
packaging chore: release 2026.6.11 (#10446) 2026-06-16 03:40:58 +00:00
registry registry: added pinniped (#10456) 2026-06-15 06:09:30 -10:00
schema feat(env): add default fallback shorthand (#10441) 2026-06-14 21:58:59 +00:00
scripts chore(ci): revert idempotent release asset upload (#10433) 2026-06-14 04:49:02 -05:00
share/fish/vendor_conf.d rtx -> mise 2024-01-02 16:29:35 -06:00
src fix(pipx): force pip backend for mise pipx subprocess calls (#10513) 2026-06-18 01:11:33 +00:00
test feat(deps): add depends field for user-specified tool dependencies (#8776) 2026-04-04 16:43:25 +00:00
vendor/aqua-registry chore: release 2026.6.11 (#10446) 2026-06-16 03:40:58 +00:00
xtasks feat(bootstrap): add skip controls (#10497) 2026-06-17 03:20:18 +00:00
.cliffignore chore: reset CHANGELOG 2024-11-23 10:44:56 -06:00
.coderabbit.yaml chore(ci): use shared coderabbit config (#10442) 2026-06-14 21:12:13 +00:00
.dockerignore docker: build source from repo (#1122) 2023-12-07 23:28:46 -06:00
.editorconfig chore: improve shfmt linter (#5181) 2025-05-25 16:19:11 +00:00
.gitattributes perf(aqua): bake rkyv aqua package blobs (#9535) 2026-05-10 06:49:32 -05:00
.gitignore fix(tasks): implement smart flag routing for task arguments (#6861) 2025-11-02 09:45:59 -06:00
.markdown-link-check.json refactor: simplified stdout/stderr mocking in tests (#1163) 2023-12-13 21:22:43 +00:00
.markdownlint.json fix(fig): resolve __dirname error in ES module (#7021) 2025-11-20 01:37:20 +00:00
.markdownlintignore chore: consolidate all linters into hk.pkl (#8498) 2026-03-07 15:39:38 +00:00
.prettierignore chore(ci): restore lint as Linux build cache writer (#9305) 2026-04-22 13:40:52 -05:00
.prettierrc.toml fix: Improve fig spec with better generators (#3762) 2025-01-10 23:17:05 +00:00
.release-skip-e2e chore: release 2025.7.26 (#5776) 2025-07-24 02:49:33 -05:00
.shellcheckrc chore: disable "useless cat" shellcheck 2025-09-16 11:07:24 -05:00
.taplo.toml refactor(registry): split registry.toml into one file per tool (#7820) 2026-01-25 18:59:34 +00:00
.yamllint.yml ci: added super-linter (#1096) 2023-12-06 15:24:20 -06:00
age.pub chore: age encrypt minisign key 2024-12-23 05:38:27 -08:00
AGENTS.md chore: invert CLAUDE.md/AGENTS.md so AGENTS.md is canonical (#9560) 2026-05-03 07:22:38 -05:00
build.rs fix(config): ignore local credential commands (#10356) 2026-06-12 16:55:58 +00:00
bun.lock chore(deps): lock file maintenance lockfile maintenance (#10448) 2026-06-15 06:52:30 +00:00
Cargo.lock fix(task): error on empty task shell (#10517) 2026-06-17 19:46:22 -05:00
Cargo.toml fix(task): error on empty task shell (#10517) 2026-06-17 19:46:22 -05:00
CHANGELOG.md chore: release 2026.6.11 (#10446) 2026-06-16 03:40:58 +00:00
CLAUDE.md chore: invert CLAUDE.md/AGENTS.md so AGENTS.md is canonical (#9560) 2026-05-03 07:22:38 -05:00
cliff.toml chore(release): show registry section last in changelog (#7156) 2025-11-29 20:31:35 -06:00
communique.toml docs: update intro messaging (#9418) 2026-04-26 20:49:11 -05:00
CONTRIBUTING.md docs: make contributing guide canonical (#10380) 2026-06-13 00:57:12 -05:00
Cross.toml Revert "fix(build): upgrade cross images to :main for C++17 support (#7958)" 2026-02-02 03:43:46 +00:00
default.nix chore: release 2026.6.11 (#10446) 2026-06-16 03:40:58 +00:00
deny.toml chore(deps): replace size formatting deps (#10438) 2026-06-14 14:19:49 -05:00
Dockerfile rtx -> mise 2024-01-02 16:29:35 -06:00
eslint.config.mjs chore(deps): migrate eslint config to flat format for v10 compat (#9222) 2026-04-18 01:30:11 +00:00
flake.lock fix: update flake.lock and add fix for rust-bindgen to default.nix (#8874) 2026-04-04 08:31:12 -05:00
flake.nix chore: remove coverage (#3278) 2024-11-29 06:11:33 +00:00
hk.pkl perf(aqua): bake rkyv aqua package blobs (#9535) 2026-05-10 06:49:32 -05:00
LICENSE docs: Update LICENSE 2024-12-31 12:12:14 -06:00
llms.txt docs: update intro messaging (#9418) 2026-04-26 20:49:11 -05:00
minisign.key.age chore: age encrypt minisign key 2024-12-23 05:38:27 -08:00
minisign.pub feat: mise g bootstrap (#3792) 2024-12-22 19:43:34 +00:00
mise.code-workspace docs: create comprehensive architecture documentation suite and enhance development guides (#5572) 2025-07-11 09:23:01 -05:00
mise.lock chore(deps): bump usage to 3.5.2 (#10498) 2026-06-17 02:52:26 +00:00
mise.toml fix(lockfile): respect existing platforms during auto-lock (#9621) 2026-05-05 11:39:06 -05:00
mise.usage.kdl feat(bootstrap): add skip controls (#10497) 2026-06-17 03:20:18 +00:00
package.json chore(deps): update dependency vitepress-plugin-tabs to ^0.9.0 (#9518) 2026-05-01 09:02:00 +00:00
pitchfork.toml chore: pitchfork 2024-12-14 16:43:52 +00:00
README.md chore: release 2026.6.11 (#10446) 2026-06-16 03:40:58 +00:00
SECURITY.md chore(docs): switch canonical domain to mise.en.dev (#9411) 2026-04-26 14:51:50 -05:00
settings.toml docs: fix relative duration example for months (#10193) 2026-06-15 17:25:54 -05:00
snapcraft.yaml chore: release 2026.6.11 (#10446) 2026-06-16 03:40:58 +00:00
tasks.md fix(task): show multiline descriptions in usage help (#10204) 2026-06-12 03:29:44 -05:00
tasks.toml test(e2e): run tests in parallel (#9563) 2026-05-03 10:03:07 -05:00
tsconfig.json chore(deps): replace dependency @tsconfig/node22 with @tsconfig/node24 (#7618) 2026-01-16 19:57:20 -06:00
zipsign.pub zipsign (#985) 2023-11-09 17:25:38 +00:00

mise
mise-en-place

Crates.io GitHub GitHub Workflow Status Discord

Dev tools, env vars, and tasks in one CLI

Getting StartedDocumentationDev ToolsEnvironmentsTasks

Sponsored by 37signals.
View all sponsors.


Tip

My latest project, aube just hit stable! It's the fastest Node.js package manager with strong security defaults and is compatible with npm/pnpm/yarn lockfiles!

What is it?

mise prepares your development environment before each command runs. It keeps project tools, environment variables, and tasks in one mise.toml file so new shells, checkouts, and CI jobs all start from the same setup.

  • Install and switch between dev tools like node, python, cmake, terraform, and hundreds more.
  • Load environment variables per project directory, including values from .env files and other sources.
  • Define and run tasks for building, testing, linting, and deploying projects.

Demo

The following demo shows how to install and use mise to manage multiple versions of node on the same system. Note that calling which node gives us a real path to node, not a shim.

It also shows that you can use mise to install and many other tools such as jq, terraform, or go.

demo

See demo transcript.

Quickstart

Install mise

See Getting started for more options.

$ curl https://mise.run | sh
$ ~/.local/bin/mise --version
              _                                        __
   ____ ___  (_)_______        ___  ____        ____  / /___ _________
  / __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
 / / / / / / (__  )  __/_____/  __/ / / /_____/ /_/ / / /_/ / /__/  __/
/_/ /_/ /_/_/____/\___/      \___/_/ /_/     / .___/_/\__,_/\___/\___/
                                            /_/                 by @jdx
2026.6.11 macos-arm64 (2026-06-16)

Hook mise into your shell (pick the right one for your shell):

# note this assumes mise is located at ~/.local/bin/mise
# which is what https://mise.run does by default
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
echo '~/.local/bin/mise activate pwsh | Out-String | Invoke-Expression' >> ~/.config/powershell/Microsoft.PowerShell_profile.ps1

Execute commands with specific tools

$ mise exec node@26 -- node -v
mise node@26.x.x ✓ installed
v26.x.x

Install tools

$ mise use --global node@26 go@1
$ node -v
v26.x.x
$ go version
go version go1.x.x macos/arm64

See dev tools for more examples.

Manage environment variables

# mise.toml
[env]
SOME_VAR = "foo"
$ mise set SOME_VAR=bar
$ echo $SOME_VAR
bar

Note that mise can also load .env files.

Run tasks

# mise.toml
[tasks.build]
description = "build the project"
run = "echo building..."
$ mise run build
building...

See tasks for more information.

Example mise project

Here is a combined example to give you an idea of how you can use mise to manage your a project's tools, environment, and tasks.

# mise.toml
[tools]
terraform = "1"
aws-cli = "2"

[env]
TF_WORKSPACE = "development"
AWS_REGION = "us-west-2"
AWS_PROFILE = "dev"

[tasks.plan]
description = "Run terraform plan with configured workspace"
run = """
terraform init
terraform workspace select $TF_WORKSPACE
terraform plan
"""

[tasks.validate]
description = "Validate AWS credentials and terraform config"
run = """
aws sts get-caller-identity
terraform validate
"""

[tasks.deploy]
description = "Deploy infrastructure after validation"
depends = ["validate", "plan"]
run = "terraform apply -auto-approve"

Run it with:

mise install # install tools specified in mise.toml
mise run deploy

Find more examples in the mise cookbook.

Full Documentation

See mise.en.dev

GitHub Issues & Discussions

Due to the volume of issue submissions mise received, using GitHub Issues became unsustainable for the project. Instead, mise uses GitHub Discussions which provide a more community-centric platform for communication and require less management on the part of the maintainers.

Please note the following discussion categories, which match how issues are often used:

Special Thanks

Namespace
Thanks to Namespace for providing CI services for mise.

Contributors

Contributors