Skip to content

Repository files navigation

scaffolder

A fast, opinionated project scaffolder that bootstraps production-ready codebases in seconds.

Release Latest release License Rust Platforms

scaffolder generates clean, batteries-included project templates from a single command — correctly wired tooling, sensible defaults, and zero boilerplate to copy-paste. It ships as a single static binary with no runtime dependencies.

The first template targets TypeScript with either a Node.js or Bun runtime; more languages are on the way.

Highlights

  • One command, ready to ship — TypeScript (ESNext), ESLint + Prettier, Lefthook git hooks, a Makefile, and tests, all pre-wired.
  • Interactive or scripted — guided prompts for humans, flags for CI.
  • Pick your stack — choose your package manager, runtime-aware test runner, module system, and Node version when using the Node.js runtime.
  • Cross-platform — prebuilt binaries for macOS, Linux, and Windows (x86_64 & ARM64).
  • Self-updatingscaffolder self-update keeps you current.

Install

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/reedchan7/scaffolder/main/install.sh | sh

This detects your OS and CPU architecture, downloads the matching prebuilt binary, and installs it to ~/.local/bin. Re-run it any time to update.

Customize the version or install location:

curl -fsSL https://raw.githubusercontent.com/reedchan7/scaffolder/main/install.sh \
  | sh -s -- --version v0.1.0 --bin-dir "$HOME/.local/bin"
Option Env var Default
--version <tag> SCAFFOLDER_VERSION latest
--bin-dir <dir> SCAFFOLDER_INSTALL_DIR ~/.local/bin

Windows (PowerShell)

irm https://github.com/reedchan7/scaffolder/releases/latest/download/scaffolder-installer.ps1 | iex

Manual download

Grab a prebuilt archive from the latest release, extract it, and put the scaffolder binary on your PATH:

OS x86_64 / AMD64 aarch64 / ARM64
Linux scaffolder-x86_64-unknown-linux-gnu.tar.xz scaffolder-aarch64-unknown-linux-gnu.tar.xz
macOS scaffolder-x86_64-apple-darwin.tar.xz scaffolder-aarch64-apple-darwin.tar.xz
Windows scaffolder-x86_64-pc-windows-msvc.zip scaffolder-aarch64-pc-windows-msvc.zip

Quick start

scaffolder new typescript-node my-app      # one-shot (CI friendly)
scaffolder new                             # interactive
scaffolder agent trust claude              # trust current project for an agent
scaffolder list                            # show available templates

The generated project is ready to make check immediately — formatting, linting, and tests all pass out of the box.

Usage

scaffolder new [TEMPLATE] [NAME] [OPTIONS]   # scaffold a new project
scaffolder agent trust <AGENT>...             # trust current project for one or more agents
scaffolder list                              # list available templates
scaffolder self-update                       # update to the latest release

new options

Flag Default Values
--pm pnpm pnpm npm yarn bun
--test vitest (bun when --pm bun) vitest node bun
--module esm esm cjs
--node 24 major version integer; used by Node.js projects
--dir . parent directory for the generated project
--license (private) MIT Apache-2.0
--ai off flag — also writes CLAUDE.md + AGENTS.md
--no-git off flag — skip git init
--no-install off flag — skip dependency install

Omit --license to keep the project private (no license file is written).

--pm bun generates a Bun-runtime project: Bun scripts, Bun TypeScript settings, and Bun's built-in test runner. --test bun is only valid with --pm bun.

agent trust

scaffolder agent trust claude

Supported agents: claude, codex, kimi-code, agy, reasonix, pi.

The command merges the needed trust or bypass-permission setting into the agent's documented local or user config file. Existing unrelated config is kept, and conflicting values prompt before being replaced.

Update

Re-run the install command above, or use the built-in self-updater:

scaffolder self-update

Contributing

Common tasks are wrapped in a Makefile — run make help to list them all:

make build                              # release binary -> target/release/scaffolder
make test                               # unit + integration tests
make check                              # fmt + clippy + tests (what CI runs)
make install                            # build & install to ~/.local/bin (override: BINDIR=...)
make run ARGS="new typescript-node demo"

Cutting a release

make bump VERSION=0.2.0                  # update the version in Cargo.toml
git commit -am "chore: release v0.2.0"
make release                            # tag v0.2.0 and push -> CI builds & publishes

License

MIT © Reed Chan

About

Scaffold production-ready projects in seconds. Interactive or one-shot, batteries-included (TypeScript, ESLint, Prettier, Vitest, git hooks). Single self-updating binary.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages