ScriptsApr 15, 2026·2 min read

just — A Handy Command Runner Written in Rust

just is a make-inspired command runner that saves and runs project-specific commands without make's historical baggage — simple `justfile` syntax, argument support, cross-platform, single Rust binary.

Introduction

just is a pragmatic replacement for make when you don't actually need build-graph semantics — you just need a project-scoped command book. Where make treats every target as a filesystem artifact and punishes you for whitespace mistakes, just treats recipes as named shell commands with arguments, defaults, and interpolation that don't fight you.

What just Does

  • Runs recipes defined in a justfile.
  • Supports named arguments, defaults, dependencies between recipes.
  • Evaluates shell per recipe (bash/zsh/pwsh configurable).
  • Exports environment variables per recipe or globally.
  • Lists recipes with just --list.

Architecture Overview

just parses the justfile into an AST of recipes and expressions, resolves the dependency graph (without timestamp semantics), and executes each recipe as a shell subprocess with interpolation applied. Variable assignment is lazy; set shell := ["bash", "-uc"] picks the interpreter.

Self-Hosting & Configuration

  • Install via brew, cargo, scoop, winget, apt (snap), dnf.
  • just --init bootstraps a justfile.
  • Config block: set dotenv-load := true auto-loads .env.
  • set windows-powershell := true flips to PowerShell on Windows.
  • .justfile and justfile both recognized.

Key Features

  • Clean recipe syntax with real arguments (not $1 hacks).
  • Cross-platform: single binary for Linux/macOS/Windows.
  • Dotenv autoloading.
  • Per-recipe shebangs — write a recipe in Python or Node inline.
  • just --choose opens fzf picker.

Comparison with Similar Tools

  • make — universal; archaic syntax, tab-sensitive, filesystem-focused.
  • npm scripts — Node-only; no arguments, no deps.
  • task (go-task) — YAML-based; similar niche.
  • mage — Go-based; requires Go.
  • invoke (Python) — rich but Python-only.

FAQ

Q: Does it replace make for building C projects? A: No — use make for compilation. just is for workflow recipes.

Q: Can I call recipes from other recipes? A: Yes — recipeA: recipeB as dependency, or just recipeB inline.

Q: How about secrets? A: set dotenv-load + .env + gitignore.

Q: Windows without WSL? A: Yes, runs natively. Set set shell := ["pwsh.exe", "-c"].

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets