What is just?
just is a handy command runner written in Rust by Casey Rodarmor. It saves and runs project-specific commands, called recipes, stored in a file named justfile with a syntax inspired by make. Unlike make, just is not a build system: recipes are simply commands to run, so there are no phony targets and no dependency on file modification times. With over 25k GitHub stars, it has become the go-to task runner for modern projects.
.PHONY declarations everywhere? Fed up with tab-versus-space errors and implicit build rules that fire when you least expect them? just keeps the familiar recipe feel of a Makefile but drops the build-system baggage β every recipe is just a command.
β‘ Key Features of just
π Make-Inspired Syntax
Write recipes in a familiar, readable justfile. If you know Makefiles, you already know most of just β minus the quirks.
π§© Recipe Parameters
Recipes accept arguments and have default values, so a single recipe can adapt to many invocations without extra scripting.
π Any Shell or Language
Write recipes in sh, bash, Python, Node, or anything else with a shebang line. just runs each recipe with the interpreter you choose.
π List & Discover
Run just --list to see every recipe with its documentation comment. Newcomers can explore a project's tasks instantly.
π .env & Variables
Load environment files, define variables, and interpolate them into recipes. Keep configuration tidy and out of your commands.
π Cross-Platform
A single static binary that works the same on Linux, macOS, and Windows β no runtime, no interpreter, no quirks.
π Productivity Benefits
- Save Time: Run any project task with
just <recipe>instead of remembering long commands - Self-Documenting:
just --listshows every task and its description - Consistent: The whole team runs the same commands the same way
- No Build Quirks: Recipes are commands, not targets β no stale-timestamp surprises
- Portable: One justfile works across Linux, macOS, and Windows
apt upgrade keeps you on the latest version.
π¦ Installation from deb.griffo.io
Step 1: Add Repository
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updateπ There is an always-free mirror. deb-free.griffo.io serves packages free forever β no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries Ghostty, Oh My Posh and Zed; just is not one of them, so the repository above is the only way to get it today β ask and it can be enrolled.
Step 2: Install just
# Install latest just
sudo apt install just
# Verify installation
just --version# Install latest just
apt install just
# Verify installation
just --versionStep 3: Create Your First justfile
# Create a justfile in your project
cat > justfile <<'EOF'
# Build the project
build:
cargo build --release
# Run the tests
test:
cargo test
# Say hello to someone
hello name='world':
echo "Hello, {{name}}!"
EOF
# List available recipes
just --list
# Run a recipe
just build
just hello justπ― Basic Usage Examples
Running recipes:
# Run the first recipe in the justfile (the default)
just
# Run a specific recipe
just test
# Pass an argument to a recipe
just hello Dario
# List every recipe with its documentation
just --listWorking with justfiles:
# Show the resolved value of a variable
just --evaluate
# Print a recipe without running it
just --show build
# Use a justfile in another directory
just --justfile ~/project/justfile --working-directory ~/project build
# Choose a recipe interactively (needs a chooser like fzf)
just --chooseShell completions:
# Completions for bash, fish and zsh are installed with the package.
# Generate them manually for any shell if you need to:
just --completions bash
just --completions zsh
just --completions fishπ Why Choose deb.griffo.io?
- Official Debian: Available but often outdated versions
- Cargo Install: Requires Rust toolchain and compilation
- Install Script: Manual updates and no package management
- deb.griffo.io: Latest version with automatic updates
- β Latest Features: Get the newest recipe attributes and functions
- β No Rust Compilation: Pre-built binaries, no toolchain needed
- β Automatic Updates: Packages updated within hours of upstream releases
- β Complete Package: Includes shell completions and the man page
- β Multi-Distribution: Works on Bookworm, Trixie, and Sid
- β Easy Maintenance: Standard apt commands for updates
π¦ Package Build Repository
The Debian packages are automatically built and maintained in this GitHub repository:
- π€ just-debian - Latest release builds
π Related Packages
Also available from deb.griffo.io:
- fzf Fuzzy Finder - Powers
just --choosefor interactive recipe selection - Jujutsu - A modern, Git-compatible version control system
- Helix Editor - A post-modern modal editor for editing your justfiles
π Support This Project
If this repository saves you time and effort, please consider supporting it!