Skip to content

plz plzRun all the things

A smart cross-platform task and hook runner with helpful defaults for cargo, pnpm, and uv.

Install

bash
# Installs to ~/.local/bin/plz
curl --proto '=https' --tlsv1.2 -LsSf https://plzplz.org/install.sh | sh
uv
uv tool install plzplz
cargo
cargo install plzplz

Quick Example

plz init example

toml
# Check formatting
[tasks.format]
run = "cargo fmt --check"
fail_hook = { suggest_command = "cargo fmt" }
git_hook = "pre-commit"
bash
plz format

Features

  • Auto-detect environmentsplz init detects Rust, pnpm, npm, uv and suggests tasks
  • Task dependencies — declare prerequisites with depends so tasks run in the right order
  • Serial & parallel executionrun_serial and run_parallel for composing tasks
  • Failure hooks — suggest commands, show messages, or run scripts on failure
  • Task groups — organize related tasks with [taskgroup.X] namespaces
  • Git hooks — configure hooks directly in plz.toml
  • Environment wrappers — run commands through pnpm, npm, uv, or uvx with tool_env
  • Interactive selection — fuzzy-find tasks when you forget the name