LinuxCommandLibrary

just.1

Run project-specific commands from a `justfile`

TLDR

Run a recipe specified in the justfile

$ just [recipe]
copy

Initialize new justfile in project root
$ just --init
copy

Edit justfile in the default editor
$ just [[-e|--edit]]
copy

List available recipes in the justfile
$ just [[-l|--list]]
copy

Print justfile
$ just --dump
copy

SYNOPSIS

just [OPTIONS] [TARGET [ARG …​]]

PARAMETERS

-C DIR, --directory DIR
    Change to directory DIR before reading justfile

-d N, --dump
    Dump variables and exit (level N controls verbosity)

-f FILE, --file FILE
    Use FILE as justfile

--choose
    Interactively choose a recipe to run

--list
    List available recipes

--summary
    List recipes with descriptions

--dry-run
    Print commands without executing

--dry
    Alias for --dry-run

-h, --help
    Print help

-V, --version
    Print version

DESCRIPTION

just is a command runner that provides a convenient way to save and run project-specific commands. Recipes are stored in a file called 'justfile' with a syntax inspired by Make but simplified and more approachable.

It supports features like dependencies between recipes, variables, string interpolation, conditionals, loops, shebang lines, and private recipes. Arguments can be passed to recipes, with support for rest arguments, variadic arguments, and default values.

just automatically chooses the appropriate executable based on the current directory, supports multiple justfiles, and offers powerful invocation options like dry runs, choosing targets interactively, and dumping variables for debugging. It's particularly popular in development workflows for building, testing, and deploying projects, especially in Rust and other modern ecosystems.

Unlike Make, justfiles use declarative syntax without tabs, making them easier to read and edit. It's cross-platform and written in Rust for performance and safety.

CAVEATS

Not installed by default; requires manual installation. justfile must be named 'justfile' or specified with -f. Fails if no justfile found unless --choose used.

JUSTFILE LOCATION

Searched in current dir, parents, JUSTFILE, HOME/.justfile; use --file to override.

INSTALLATION

Via Cargo: cargo install just; binaries on GitHub releases; some distros package it.

EXAMPLE RECIPE

test:
test-a
test-b
  echo 'Tests passed!'

HISTORY

Developed by Casey Primozic (dustballbear), first released in 2020. Written in Rust, gained popularity for its simplicity over Make. Version 1.0.0 in 2022; actively maintained with frequent updates.

SEE ALSO

make(1), ninja(1)

Copied to clipboard