Skip to content

Initialize a project

Run minimal init

Minimal can auto-detect most languages and produce an initial minimal.toml to get you started. Supported languages and build systems include Go, Rust, pnpm, npm, Bun, Deno, Python (uv/pip), Gradle, Make, Meson, CMake, and Zig.

Drop into your project directory in a shell, and run:

shell
$ minimal init
Alternative: Manual setup

Create the below minimal.toml file in the root of your repository.

toml
[upstream] # The software supply chain
repo = "https://github.com/gominimal/pkgs"
branch = "main"

[harness] # Wires Minimal to build a pnpm project
use = "pnpm"

[tasks.shell]
packages = ["base"]
exec = "bash -l"
toml
[upstream] # The software supply chain
repo = "https://github.com/gominimal/pkgs"
branch = "main"

[harness] # Wires Minimal to build a go binary
use = "go"

[tasks.shell]
packages = ["base"]
exec = "bash -l"
toml
[upstream] # The software supply chain
repo = "https://github.com/gominimal/pkgs"
branch = "main"

[harness] # Wires Minimal to build a rust workspace
use = "rust"

[tasks.shell]
packages = ["base"]
exec = "bash -l"

Run minimal update

Run minimal update to fetch the necessary tools and packages from the minimal public registry.

shell
$ minimal update
Upstream https://github.com/gominimal/pkgs:main updated from <unpinned> to 9d36aa3d0fec09658fe3bbc676beeae49a89c53d
$