Create, edit, or review justfiles for the just command runner. Use when adding or modifying recipes, parameters, dependencies, settings, attributes, aliases, or shebang scripts; fixing invocation or working-directory behavior; or documenting tasks for `just --list` output.
justfile or .justfile to the working directory and edit in place.justfile top to bottom; note set directives, variables, aliases, and groups._.Recipe:
build target="app": clean
cargo build --release --bin {{target}}
Dependencies: run before the recipe body; parameterized deps are wrapped in parentheses.
rebuild: clean build
build arch: (clean arch)
cargo build --target {{arch}}
Parameters: defaults supported; variadics use * (zero or more) or + (one or more).
test suite="all":
cargo test --tests {{suite}}
backup *files:
tar czf backup.tar.gz {{files}}
Exported parameters: prefix with $ to pass as environment variables.
test-with-env $TEST_MODE:
echo "$TEST_MODE"
Variables and interpolation:
app := "myapp"
build:
echo "{{app}}"
Default recipe: place first if you want it to run with just.
default:
@just --list
Use set to configure behavior globally.
set dotenv-load := true
set shell := ["bash", "-eo", "pipefail", "-c"]
set working-directory := "ios"
Common attributes:
[group('name')] or [group: 'name'] to categorize recipes in listings.[working-directory('path')] to override the cwd for one recipe.[private] to hide a recipe or alias from just --list.[doc('description')] to control list output text.[confirm('prompt')] to request confirmation.[linux], [macos], [windows] for platform-specific recipes.[no-cd] to run in the invoking directory instead of the justfile directory.[positional-arguments] for positional-argument recipes.Aliases:
alias b := build
For multi-line scripts, start the body with a shebang.