Skip to content

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