# just

> Command runner that saves and runs project-specific commands from a justfile with make-inspired syntax

Stars: 36.5k · Language: Rust · License: CC0-1.0 · Categories: Dev Tools

- Repository: https://github.com/casey/just
- Website: https://just.systems
- Page: https://www.trmn.sh/tools/just

## Install

- Homebrew: `brew install just`
- Cargo: `cargo install just`
- apt: `apt install just`

## Overview

just is a command runner that stores project-specific commands in a `justfile` using syntax inspired by make. Unlike make, just focuses purely on command execution rather than build management, avoiding many of make's complexities and idiosyncrasies. Commands are defined as recipes that can accept command line arguments and be executed with `just RECIPE`.

The tool supports cross-platform execution on Linux, macOS, Windows, and other Unix systems with minimal dependencies - only requiring a shell like `sh`. Recipes can be written in arbitrary languages including Python or Node.js using shebang syntax. just automatically loads `.env` files for environment variable population and provides static error checking for unknown recipes and circular dependencies before execution.

Key capabilities include recipe listing from the command line, shell completion scripts for popular shells, and the ability to invoke just from any subdirectory within a project. The tool supports custom shell configuration, allowing users to specify PowerShell, cmd.exe, or other shells instead of the default `sh`. This makes just particularly suitable for developers who need a simple, reliable way to manage and execute project-specific workflows across different platforms.

### Installation

```bash
# via Homebrew
brew install just
```

```bash
# via Cargo
cargo install just
```

```bash
# via apt
apt install just
```

![justfile syntax example](https://media.trmn.sh/cached/822e9825da81da0c31e5edf8faefcf593dd618b5ce1f3c289d612291509e3bc1.png)

## Alternatives

- [zellij](https://www.trmn.sh/tools/zellij.md): Terminal multiplexer with floating panes, multiplayer collaboration, WebAssembly plugins, and built-in web client (Rust, 35.9k stars)
- [mise](https://www.trmn.sh/tools/mise.md): CLI tool for managing development environments with version-controlled tools, environment variables, and tasks (Rust, 35.7k stars)
- [hyperfine](https://www.trmn.sh/tools/hyperfine.md): Command-line benchmarking tool that runs statistical analysis across multiple timing runs of shell commands (Rust, 29.2k stars)
- [fnm](https://www.trmn.sh/tools/fnm.md): Fast Node.js version manager built in Rust with support for .node-version and .nvmrc files (Rust, 27.3k stars)
- [difftastic](https://www.trmn.sh/tools/difftastic.md): Structural diff tool that compares files based on their syntax rather than lines (Rust, 26.1k stars)

## Guides

- [Put repeatable project commands in a Justfile](https://www.trmn.sh/guides/just-project-commands): Create a Justfile with a parameterized greeting and a test recipe, then run it from a project subdirectory.

---

Canonical: https://www.trmn.sh/tools/just
