pbj Icon

pbj

Project Build Job

← The Experimental Institute

pbj is a Rust command line tool for generating sensible test-driven development project scaffolds from declarative templates written in TOML.

What It Does

  1. Loads a named project template from your pbj configuration folders or the built-in templates.
  2. Initializes the project with the language's normal tooling.
  3. Adds production and development dependencies where supported.
  4. Writes source, test, and configuration files declared by the template.
  5. Runs any post-generation commands specified by the template.

Built-In Templates

pbj includes templates for Python, TypeScript, F#, and Go. The Python template uses uv, TypeScript uses pnpm, F# uses dotnet, and Go uses the go toolchain.

Usage

Install with Cargo:

cargo install pbj

Generate a new project:

pbj generate -t python project_name
pbj generate -t typescript project_name
pbj generate -t fsharp project_name
pbj generate -t go project_name

The generate command is also aliased to g. Templates can use variants, including a leetcode-oriented variant for local algorithm practice.

Source and documentation:

github.com/electric-hand/pbj