just
🤖 Just a command runner
just runs the recipes in a justfile
Where make is a build system, just is a command runner. Recipes live in a file called justfile, errors get reported before anything runs, and it works on Linux, macOS, and Windows without extra dependencies.
A command runner, not a build system
just stores its commands, called recipes, in a file named justfile, with syntax inspired by make. The README is careful about the distinction: just is a command runner, not a build system, so it avoids much of make's complexity and idiosyncrasies, and there is no need for .PHONY recipes. It runs on Linux, macOS, Windows, and other reasonable Unixes with no additional dependencies, though a system without an sh needs a different shell chosen.
Errors fail before they run
Error handling is a selling point. The README says errors are specific and informative, with syntax errors reported along with their source context. Wherever possible, errors are resolved statically, so unknown recipes and circular dependencies are reported before anything runs. You can also invoke just from any subdirectory, not just the one holding the justfile.
Ways to install it
Installation covers most bases. A packages table lists arkade, asdf, Cargo, Conda, Homebrew, Nix, npm, pipx, Snap, Spack, and uv, plus operating system package managers for FreeBSD, OpenBSD, Alpine, Arch, Debian, Fedora, Gentoo, NixOS, openSUSE, Solus, and Void, and Windows options through Chocolatey, Scoop, and winget. Pre built binaries come with a SHA256SUM file for verification, and the README notes that install.sh can hit GitHub API rate limits on shared IPs, with a token option to work around it.
Backwards compatibility as policy
The README makes a stability promise. With the release of version 1.0, just commits to backwards compatibility, future releases will not introduce incompatible changes that break existing justfiles, and there will never be a just 2.0. Breaking changes would be opt in per justfile. Unstable features are marked and error by default unless you pass the --unstable flag or set the right environment variable. A minimum-version setting lets a justfile require a specific just version.
Editors and integrations
The tooling around just gets its own sections. Vim 9.1.1042 or better and Neovim 0.11 or better support Justfile syntax highlighting out of the box. Emacs has just-mode on MELPA, and Sublime Text has the Just package. just-lsp provides a language server with go to definition, inline diagnostics, and code completion. There is even just-mcp, an adapter that lets LLMs query the contents of justfiles and run recipes.
Community notes