Agent-friendly software project scaffolding CLI for apps, APIs, CLIs, and OSS packages.
Early build. StackForge is release-scoped as a CLI-first tool first, with CrewCmd support treated as a later wrapper for orchestrator and sub-agent use.
stackforgeCLI owns deterministic project generation.- Humans and agents use the same local command surface.
- CrewCmd owns orchestration instructions, health checks, and capability routing later; it does not replace the CLI.
- OpenClaw agents should only run StackForge tasks on machines where the CLI is installed and verified.
pnpm install
pnpm build
pnpm dev templates
pnpm dev init oss-cli my-tool --dry-run
pnpm dev init oss-cli my-tool
pnpm dev init oss-cli my-tool --prd ./docs/PRD.md --tasks ./docs/TASKS.md
pnpm dev init oss-cli my-tool --prd ./docs/PRD.md --taskbriefThe V1 release bar is a documented, deterministic command surface:
stackforge --version
stackforge templates
stackforge init oss-cli demo --dry-run
stackforge init oss-cli demoStackForge never creates a GitHub repository by default. To request GitHub creation, add --github-create; the first run is still a dry run for the GitHub and git publish commands so you can review them safely:
pnpm dev init oss-cli my-tool --github-create
pnpm dev init oss-cli my-tool --github-create --github-visibility publicAfter reviewing the printed github.command and github.publish.commands, rerun with --github-execute to create the repository through the GitHub CLI, initialize the generated project as a local git repo, create the initial scaffold commit, add origin, and push main:
pnpm dev init oss-cli my-tool --github-create --github-execute--github-execute requires --github-create and cannot be combined with --dry-run. The default visibility is private; use --github-visibility public only when you intentionally want a public repository. For safety, git initialization and push only run for a fresh generated project directory, not an existing directory being overwritten with --force.
StackForge is local-first and review-friendly:
- no hidden network calls
- no implicit GitHub creation
- no default LLM calls
- no autonomous merging or publishing
- no destructive overwrite behavior without explicit intent
oss-cli: TypeScript CLI packagenext-app: Next.js applicationpython-api: Python API service
Generated repositories include scripts/validate.sh as the default local verification path. It runs the repo's normal local package checks when they exist, including release:check, and only runs agent-qc ready when agent-qc is installed, so agent-qc stays optional.
oss-cli projects also include ReleaseBox by default: releasebox.config.json, reviewed/tag-gated GitHub release workflows, and package smoke scripts. The generated release path creates GitHub Releases with attached tarballs while leaving npm and Homebrew publishing disabled until explicitly enabled.
Use --prd <path> and --tasks <path> with stackforge init to copy local planning inputs into the generated repo as docs/PRD.md and docs/TASKS.md.
If you want StackForge to derive docs/TASKS.md from a PRD after the scaffold is written, use --taskbrief:
pnpm dev init oss-cli my-tool --prd ./docs/PRD.md --taskbrief
pnpm dev init oss-cli my-tool --prd ./docs/PRD.md --taskbrief --taskbrief-workspace ./taskbriefRules:
--taskbriefrequires--prd--taskbriefcannot be combined with--tasks- dry-run prints the planned
taskbrief parse ... --format markdown --output docs/TASKS.mdcommand without executing it - execute mode runs
taskbrieflocally after StackForge writes the scaffold files - if
taskbriefis missing fromPATHor exits non-zero, StackForge fails with a clear error
See docs/PRD.md.