top of page
Search

Are You Using mise-en-place Yet?

  • Writer: Bjorn Olsen
    Bjorn Olsen
  • 6 days ago
  • 2 min read

If you're developing with Python, Terraform, AWS, Azure, or really anything - managing your tools and environments can quickly become a mess.


ree

Our data engineers recently discovered a powerful utility called mise, short for mise-en-place, a polyglot tool version manager. It's now become a go-to part of our development workflow.


Why Use mise?

When you're working across multiple repositories and environments, maintaining consistent tool versions is a challenge. One developer might use Python 3.8, another 3.10. One repo needs Terraform 1.5.7, another needs a newer or older version. Add in CLI tools like aws, jq, go, trivy, java, and it gets complicated - fast.


Sure, you might already be using pyenv for Python or tfenv for Terraform, but what about everything else?


Even for niche or obscure Pokemon (I mean tools) the mise registry likely has you covered.


cocogittoginkgo or mongosh anyone?


How To Use It

Install mise. Add a simple mise.toml file to your repo with a [tools] section that declares all the tools and versions you need:


[tools]
awscli = "latest"
python = "3.14.0"
terraform = "1.5.7"
rclone = "latest"

Then run:


mise install

Boom - everything is installed, all at once.


ree

Works in CI Too

There’s a dedicated GitHub Action to make using mise seamless in your CI workflows: 👉 jdx/mise-action


Drop it into your workflow YAML file like this:


jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: jdx/mise-action@v2

As long as your repo has a mise.toml file, this will automatically install all required tools before the rest of your job runs.


You don’t need CI workflows cluttered with install steps for every tool - mise handles all of that upfront.


When you add a tool or change a version in mise.toml, you don’t risk forgetting to update your CI workflows to match.


Manage Environments with Ease

Need to set environment variables like AWS_PROFILE?


Drop them into a local override file like mise.local.toml.

This is handy when:

  • Working in different AWS accounts

  • Letting developers use their own profiles or settings


If mise is active, your terminal will automatically set those variables - before your next command even runs. No additional setup required.


Set a Global Tool Baseline

You can use mise to manage a global baseline of your favourite tools on your system. Quickly switch, upgrade, or downgrade versions as needed.


More Power Under the Hood

mise also supports Tasks, Plugins, and more - though we haven’t explored those features yet.


TL;DR

If you’re juggling multiple tools, repos or environments, mise brings simplicity and consistency.


Install mise, add a mise.toml, and move on with your life.


Comments


Commenting on this post isn't available anymore. Contact the site owner for more info.
bottom of page