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.
