프로젝트 환경 및 도구 관리를 위한 올인원 툴, mise 소개
요약
mise는 Node.js, Python, Terraform 등 다양한 개발 도구와 프로젝트별 환경 변수, 빌드/테스트 태스크까지 통합적으로 관리하는 강력한 CLI 도구입니다. asdf나 direnv의 기능을 하나로 합친 개념으로, `mise.toml` 파일을 통해 필요한 버전과 설정을 정의하고, `mise install`, `mise run` 명령어로 쉽게 프로젝트를 설정하고 실행할 수 있습니다. 이를 통해 개발 환경의 일관성을 확보하고 복잡한 의존성 관리를 간소화합니다.
핵심 포인트
- 다양한 언어 및 도구 버전 관리: Node, Python, Terraform 등 여러 개발 도구를 단일 시스템에서 쉽게 설치하고 전환할 수 있습니다 (예: `mise exec node@26`).
- 프로젝트 환경 변수 설정: `.env` 파일 로드뿐만 아니라 `mise.toml`을 통해 프로젝트별 전역 환경 변수를 정의하고 관리할 수 있습니다.
- 통합된 태스크 실행 시스템: 빌드, 테스트, 배포 등 복잡한 워크플로우를 `[tasks]` 섹션에 정의하고 의존성(`depends`)까지 설정하여 일괄적으로 실행할 수 있습니다 (예: `mise run deploy`).
- 설정 파일 구조화: 모든 프로젝트의 도구 버전, 환경 변수, 태스크가 단일 `mise.toml` 파일에 통합되어 관리됩니다.
Like asdf (or nvm or pyenv but for any language) it manages dev tools like node, python, cmake, terraform, and hundreds more.
Like direnv it manages environment variables for different project directories.
Like make it manages tasks used to build and test projects.
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.
See demo transcript.
See Getting started for more options.
$ curl https://mise.run | sh
$ ~/.local/bin/mise --version
____ ___ ()______ ___ ____ ____ / /___ _________
/ __ __ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ / / _
/ / / / / / ( ) // / / / // // / / // / /__/ __/
// // ////_/ ___// // / .//_,_/_/___/
/_/ by @jdx
2026.4.19 macos-arm64 (2026-04-22)
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/.local/bin/mise activate zsh)"' >>
echo 'eval "$(/.zshrc/.local/bin/mise activate fish | source' >>
echo '/.config/fish/config.fish/.local/bin/mise activate pwsh | Out-String | Invoke-Expression' >> ~/.config/powershell/Microsoft.PowerShell_profile.ps1
echo '
$ mise exec node@26 -- node -v
mise node@26.x.x ✓ installed
v26.x.x
$ 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.
mise.toml
[env]
SOME_VAR = "foo"
$ mise set SOME_VAR=bar
$ echo $SOME_VAR
bar
Note that mise
can also load .env
files.
mise.toml
[tasks.build]
description = "build the project"
run = "echo building..."
$ mise run build
building...
See tasks for more information.
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.
See mise.jdx.dev
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:
- Announcements
- Ideas: for feature requests, etc.
- Troubleshooting & Bug Reports
We're grateful for Cloudflare's support through Project Alexandria.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Rust (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기