36,640
stars
+21
872
forks
104
watchers
2,053
prs
1,499
issues
147
releases
175
discussions
README
Table of Contents↗️
just
just is a handy way to save and run project-specific commands.
This readme is also available as a book. The
book reflects the latest release, whereas the
readme on GitHub
reflects latest master.
(中文文档在 这里,
快看过来!)
Commands, called recipes, are stored in a file called justfile with syntax
inspired by make:
!screenshot
You can then run them with just RECIPE:
console
$ just test-all
cc .c -o main
./test --all
Yay, all your tests passed!
just has a ton of useful features, and many improvements over make:
- just is a command runner, not a build system, so it avoids much of
make's complexity and idiosyncrasies.
No need for .PHONY recipes!
- Linux, macOS, Windows, and other reasonable unixes are supported with no
additional dependencies. (Although if your system doesn't have an sh,
you'll need to choose a different shell.)
- Errors are specific and informative, and syntax errors are reported along
with their source context.
- Recipes can accept command line arguments, including
flags and options.
- just has a rich expression language and many
built-in-functions.
- Wherever possible, errors are resolved statically. Unknown recipes and
circular dependencies are reported before anything runs.
- just loads .env files, making it easy to populate
environment variables.
- Recipes can be listed from the command line.
- Command line completion scripts are
available for most popular shells.
- Recipes can be written in
arbitrary languages, like Python or Node.js.
- just can be invoked from any subdirectory, not just the directory that
contains the justfile.
- justfiles can be organized into multiple files using modules
and imports.
- And much more!
If you need help with just, please feel free to open an issue or ping me on
Discord. Feature requests and bug reports are
always welcome!
Installation
------------
Just can be installed using your favorite package manager, by
downloading pre-built binaries, or building from source
with cargo install just.
Prerequisites
just should run on any system with a reasonable sh, including Linux, macOS,
and the BSDs.
Windows
On Windows, just works with the sh provided by
Git for Windows,
GitHub Desktop, or
Cygwin. After installation, sh must be available in
the PATH of the shell you want to invoke just from.
If you'd rather not install sh, you can use the shell setting to use the
shell of your choice.
Like PowerShell:
just
use PowerShell instead of sh:
set shell := ["powershell.exe", "-c"]
hello:
Write-Host "Hello, world!"
…or cmd.exe:
just
use cmd.exe instead of sh:
set shell := ["cmd.exe", "/c"]
list:
dir
You can also set the shell using command-line arguments. For example, to use
PowerShell, launch just with --shell powershell.exe --shell-arg -c.
(PowerShell is installed by default on Windows 7 SP1 and Windows Server 2008 R2
SP1 and later, and cmd.exe is quite fiddly, so Top issues
#2252Module improvement tracking issue34 comments · 2024-07-14#1582Run subsequents on success or failure22 comments · 2023-04-14#1556Running multiple recipes with default arguments19 comments · 2023-02-24#2033PROPOSAL: Autogenerated Documentation16 comments · 2024-05-14#1885support wildcard imports in justfiles16 comments · 2024-02-03#1829Sharing `just` arguments between invocations16 comments · 2024-01-09#2442Inline modules15 comments · 2024-10-29#1294List doc output too dark on Windows15 comments · 2022-07-28
Discussions
#3760Localization of The Just Programmer Manual0 comments · 2026-10-25#3735MProcs like UI for parallel recipes0 comments · 2026-10-05#3687Ability to dump script for validation/linting2 comments · 2026-08-04#3683How to make shell completions work for modern versions of aliased just1 comments · 2026-07-27#3369odu: A justfile-based CI runner1 comments · 2026-06-11#3363ccline: AI at the zsh prompt when you need a shell command just doesn't have0 comments · 2026-06-10#3324Just a note of appreciation2 comments · 2026-04-30#3306More general mechanism for conditionally enabling recipes1 comments · 2026-04-21
Latest release
1.59.0 1.59.0 2026-10-15Breaking - Require unicode paths (3708 by casey) Added - Allow --working-directory without --justfile (3720 by casey) - Allow --usage with module path to show usage for all recipes in module (3718 by casey) - Add [cache(environment)] to add and remove variables from cache key (3696 by casey) Fixed - Only emit byte order mark for Powershell on Windows (3745 by casey) - Handle minified JSON in install script (3737 by casey) Changed - Pass justfile to default chooser via environment variable (3742 by casey) Misc - Allow fixme and xxx in bin/forbid (3734 by casey) - Ignore