Just Command Runner
GitHub Repository
just is a handy way to save and run project-specific commands. It's a command runner, not a build system, avoiding much of make 's complexity.
Instructions
Prerequisites
-
just must be installed: brew install just
-
Commands are stored in a justfile (or Justfile ).
Common Settings (set ... )
You can configure just behavior at the top of your justfile :
-
set shell := ["bash", "-c"] : Change the default shell.
-
set dotenv-load : Automatically load .env files.
-
set allow-duplicate-recipes : Allow overriding recipes.
-
set fallback : Search for justfile in parent directories.
-
set quiet : Don't echo commands by default.
Example Justfiles
For complete reference, see these templates:
-
Node.js + Docker
-
Python + Venv
-
Bun + TypeScript
-
Astral UV + Python
-
Multi-Module / Advanced
Workflow
Create a justfile : Define recipes at the top level of your project. Always include a default recipe that lists available commands:
default: @just --list
The default recipe (runs when calling just with no args)
default: just --list
A basic recipe
test: cargo test
A recipe with parameters
build target: echo "Building {{target}}..." cc main.c -o {{target}}
Run Recipes:
-
Run the default recipe: just
-
Run a specific recipe: just <recipe>
-
Pass arguments to a recipe: just build my-app
-
List all available recipes: just --list
Advanced Features:
-
Dependencies: test: build (runs build before test ).
-
Shebang Recipes: Use other languages like Python or Node inside a recipe. python-task: #!/usr/bin/env python3 print("Hello from Python!")
-
Dotenv: set dotenv-load at the top of the file to load .env .
Examples
Example 1: Standard Development Justfile
User request:
Create a justfile for my Node project to handle lint, test, and dev
You would:
- Create a justfile : default: @just --list
lint: npm run lint
test: npm test
dev: npm run dev
- Tell the user they can now run just dev or just test .
Example 2: Recipe with Parameters
User request:
Add a recipe to just to deploy to a specific environment
You would:
-
Edit the justfile : deploy env: echo "Deploying to {{env}}..." ./scripts/deploy.sh --target {{env}}
-
Inform the user they can run just deploy production .
Example 3: Listing Recipes
User request:
What commands are available in this project?
You would:
- Run just --list to see available recipes and their comments.