I’ve been using just as a Makefile replacement for a couple of years now and I cannot go back. The main thing it gets right is the --list output: a human-friendly table of what recipes exist and what they do, generated from the inline comments, with no effort on my part.

This cast is me opening a project cold and running the tour. just --list shows me the recipes. just check runs fmt –check and clippy. just test runs the unit tests and the CLI integration tests. just cover runs cargo-llvm-cov and prints the coverage number.

Notice how fast each one is — none of these take more than a couple of seconds because the project is small. The value isn’t speed; it’s that I never have to remember that “oh, fmt –check is separate from fmt” or “the integration tests are in a different crate.” I just type just check and go.

The release VERSION recipe at the bottom is the one I don’t run in the cast, because it would try to tag and push. Mentioning it on the list is reminder enough for me to not manually do the tag-and-push dance.

Callouts:

  • The inline # comment on each recipe is what shows up in --list. Write them for other people (including future-you).
  • just has a --choose flag that opens an fzf-style picker of recipes. Great for big justfiles.
  • You can pass arguments: just release 0.4.2 would call release with VERSION=0.4.2 available as {{VERSION}}.

Most of my projects have roughly these same five recipes. You want the 80% list to be memorable across projects.