Skip to content

Getting Started

Installation

curl -fsSL https://github.com/gregnazario/must/releases/latest/download/install.sh \
  -o install.sh && sh install.sh && rm install.sh

Download must-x86_64-pc-windows-msvc.zip from the latest release.

git clone https://github.com/gregnazario/must.git
cd must
cargo install --path crates/must-cli

Verify

must --version

Create your first Mustfile

Initialize a starter config:

must init

This creates a Mustfile.toml with a shell-based build recipe:

[project]
name = "my-project"

[recipe.build]
type   = "shell"
script = "echo 'Hello from must!'"

Try it in the browser

Build

must build

Output:

Hello from must!
1 built, 0 cached, 0 failed

Add dependencies

[project]
name = "my-project"

[recipe.build]
type    = "rust-bin"
package = "my-app"

[recipe.test]
type    = "rust-test"
package = "my-app"
deps    = ["build"]
phony   = true

[recipe.lint]
type   = "shell"
script = "cargo clippy -- -D warnings"
phony  = true

[recipe.ci]
type   = "shell"
deps   = ["build", "test", "lint"]
phony  = true
script = "echo 'All checks passed'"

Now must build test lint runs all three, must ci runs the umbrella.

Validate your config

Check what's stale

must outdated
✓ build    [fresh]    rust-bin   cached 4s ago
⚠ test     [stale]    rust-test  deps changed
✗ lint     [miss]     shell      never built

Explore

must list           # list all recipes
must graph          # show dependency graph
must explain build  # cache key, inputs, command preview
must doctor         # check toolchains

Next steps