casey /just

🤖 Just a command runner

★ 36,640⑂ 872👁 104⑃ 2,053● 1,499▤ 147◈ 175
RustCC0-1.0Created 2016-06-17just.systems
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

Discussions

Latest release

1.59.0 1.59.0 2026-10-15
Breaking
- 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

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON