DevLogTechnical writing
Tools

just: the friendly command runner that Make wishes it were

September 28, 2026

You know the drill. Every project ends up with a handful of commands you type a dozen times a day — build, test, lint, deploy — and a README nobody reads. just is a command runner that fixes that by storing those commands as recipes in a file called justfile, so your whole team runs the same commands the same way.

Written in Rust by Casey Rodarmor and open source on GitHub (casey/just), it's a command runner, not a build system. That distinction is the whole point: it sidesteps Make's complexity and idiosyncrasies — no .PHONY, no implicit rules, no tab-versus-space archaeology. Recipes just run shell commands. The current release, 1.58.0 (published 2026-08-03), is licensed CC0-1.0, so it's free to use and modify without restriction.

Install

Pick whichever fits your machine:

# macOS
brew install just

# Windows
winget install --id Casey.Just --exact

# Anywhere with a Rust toolchain
cargo install just

# Quick script install (Linux, macOS, Windows)
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin

A first justfile

Create a file named justfile in your project root:

build:
    cargo build

test:
    cargo test

lint:
    cargo clippy -- -D warnings

Run just build and it executes that recipe. just --list shows every recipe at a glance, which doubles as your project's living README.

Arguments and defaults

Recipes can take arguments with {{var}}, and you can give them defaults:

deploy env="staging":
    echo "Deploying to {{env}}"
    ./deploy.sh {{env}}

just deploy uses staging; just deploy prod overrides it.

Dependencies

Recipes can depend on others. Run just build, and test runs first:

build: test
    cargo build --release

test:
    cargo test

Two settings worth knowing

just runs recipes with sh by default. If you want bash features like globbing, set the shell explicitly:

set shell := ["bash", "-uc"]

And to load environment variables from a .env file automatically:

set dotenv-load

Why you'll like it

just is a small tool that does one thing well: it makes your project's commands discoverable, consistent, and easy to run. It's not trying to be a build system, so it stays out of your way. If your team has ever argued about how to run the tests, a justfile is the shortest path to agreement.

← More Tools