Skip to content

Mise en Place

Mise en Place is a tool for consistently managing packages, environment variables, and tasks in a project.

Mise en Place is a tool that helps you manage your project’s dependencies, environment variables, and tasks in a consistent manner. It allows you to define these aspects in a single configuration file, making it easier to set up and maintain your development environment.

Package Management

Environment Variables

Task Automation

I’m only covering installation methods for Linux, macOS, and Homebrew here. For other installation methods, please refer to the official documentation.

Terminal window
curl https://mise.run | sh

By default, mise will be installed to ~/.local/bin (this is simply a suggestion. mise can be installed anywhere). You can verify the installation by running:

Terminal window
~/.local/bin/mise --version
# _ __
# ____ ___ (_)_______ ___ ____ ____ / /___ _________
# / __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
# / / / / / / (__ ) __/_____/ __/ / / /_____/ /_/ / / /_/ / /__/ __/
# /_/ /_/ /_/_/____/\___/ \___/_/ /_/ / .___/_/\__,_/\___/\___/
# /_/ by @jdx
# 2026.2.1 macos-arm64 (2026-02-02)

~/.local/bin does not need to be in PATH. mise will automatically add its own directory to PATH when activated. mise respects MISE_DATA_DIR and XDG_DATA_HOME if you’d like to change these locations.

After installation, we need to activate mise in our shell. You can do this by adding the following line to your shell configuration file (e.g., .bashrc, .zshrc, etc.):

Terminal window
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc

There are at least two places where you can define your mise configuration:

  1. For Global settings: ~/.config/mise/config.toml
  2. For project-specific settings: mise.toml

Here is an example of a mise.toml file that defines packages, environment variables, and tasks:

[settings]
python.uv_venv_auto = true
[tools]
d2 = "latest"
fnox = "latest"
"pipx:harlequin" = "latest"
pre-commit = "latest"
python = "3.14.0"
sops = "latest"
sqlite = "latest"
terraform = "1.14.3"
terragrunt = "0.97.2"
[env]
_.source = '.env_vars'
_.python.venv = { path = "venv", create = true }
PROXMOX_VE_API_TOKEN = "$(fnox get PM_USER)=$(fnox get PM_PASS)"