Cli
short description: Propulates an empty Git repository with the most common files and folders as a starting point.
detailed description: |
Propulates an empty Git repository with the most common files and folders as a starting point.
Initializes repositories for the following programming languages: C++, Go, Java, and TypeScript.
Supports these types of projects: firmware-stm32, library, service, tool (CLI), and
frontend-react (web UI).
Also generates CI/CD files for GitHub or GitLab.
These are the supported combinations:
| Language | CLI Tool | Firmware STM32 | Library | Service | React Frontend |
| ---------- | -------- | -------------- | ------- | ------- | -------------- |
| C++ | X | X | X | X | |
| Go | X | | X | X | |
| Java | | | X | X | |
| TypeScript | | | | | X |
Search for TODO markers once your repository has been populated.
Mono-repos: when a .mono-repo.yaml manifest is present in --targetpath and no --name flag is
given, `init` generates every entry in the manifest's repos list into its own subdirectory
instead of a single project. See specs/domain/use_cases/UC005-init_mono_repo.md.
commands:
- name: init
description: Initializes an empty Git repository with the most common files and folders as a starting point.
options:
- long: artifactname
short: a
type: string
default: null
description: Optional technical artifact name, i.e. name of the executable or archive. Derived from local Git repository if option is absent.
- long: assistant
short: null
type: stringSlice(copilot, duo, cursor)
default: []
description: Optional AI assistants to configure, in addition to Claude Code (always configured). May be repeated or comma-separated, e.g. --assistant copilot --assistant cursor or --assistant copilot,cursor.
- long: ci
short: c
type: enum(github, gitlab)
default: gitlab
description: Optionally determine your target CI/CD tool. Either github or gitlab. Researched from local Git repository if option is absent.
- long: containerregistry
short: r
type: string
default: null
description: Optional container image registry, e.g. registry.gitlab.com/user. Derived from git remote if option is absent.
- long: description
short: d
type: string
default: null
description: Brief description of the project.
- long: language
short: l
type: enum(cpp, go, java, typescript)
default: go
description: Determine your target language. One of cpp, go, java, or typescript.
- long: modulepath
short: m
type: string
default: null
description: Optional Go module path, e.g. gitlab.com/user/project. Derived from local Git repository if option is absent.
- long: name
short: n
type: string
default: null
description: Human readable name of the project.
- long: no-scaffolding
short: s
type: boolean
default: false
description: Generate only guidelines and AI-assistant support — no CI, build tooling, or prescriptive ADRs. Choose your own CI/build tool afterwards.
- long: projecttype
short: p
type: enum(tool, library, service, frontend-react, firmware-stm32)
default: service
description: Determine your target project type. One of library, service, tool (CLI), frontend-react, or firmware-stm32 (C++ only).
- long: silent
short: null
type: boolean
default: false
description: Suppress the post-generation instructions printed on success.
- long: targetpath
short: t
type: string
default: null
description: Target path referencing the (empty) repository folder to be initialized.
- name: update
description: Updates an already initialized Git repository.
Does not change the nature of the project, nor does it change developer files.
Only updates guidelines, CI/CD files, and .claude/ folder.
options:
- long: targetpath
short: t
type: string
default: null
description: Path to the repository to update. Defaults to the current working directory.
- long: dry-run
short: null
type: boolean
default: false
description: List files that would change without writing them. Useful in CI pipelines to detect available updates.
- name: version
description: Prints the version of this tool. Includes version, build date, and git commit hash.
options: null