init — Generate Configuration
Interactive Mode
Running metis init with no flags launches an interactive wizard:
$ cd /path/to/project $ metis init
Press enter to accept the default value shown in [bracket value info]. Type a value to override. Invalid input is rejected with a warning and the prompt repeats.
$ metis init --interactive
Passing any flag (e.g. --style google) after init disables the interactive wizard and uses CLI-only mode.
With clang-tidy
# standard preset $ metis init --enable-clang-tidy # strict preset $ metis init --enable-clang-tidy --tidy-preset strict # compiler warnings only $ metis init --enable-clang-tidy --tidy-severity warning
With --enable-clang-tidy, three files are created:
.metis.toml— includesclang-tidycheck.clang-format— formatter config.clang-tidy— static analysis config with curated check preset
Formatter & Analyzer Options
# available styles: google, llvm, chromium, mozilla, webkit, microsoft, gnu $ metis init --style llvm # clang-tidy preset: minimal, standard (default), strict, custom $ metis init --enable-clang-tidy --tidy-preset standard # tidy severity: note (off), warning (compiler only), error (all) $ metis init --enable-clang-tidy --tidy-severity warning # header filter: 0=none, 1=project, 2=all $ metis init --enable-clang-tidy --tidy-header-filter 1
Full Customization
$ metis init \ --style google \ --name my-project \ --indent-width 4 \ --column-limit 120 \ --pointer-alignment Left \ --brace-style Attach \ --enable-clang-tidy \ --tidy-preset strict \ --tidy-severity error
Custom Config Path
$ metis --config /path/to/.metis.toml init
Dependencies
# add a dependency (name:git_url:git_tag, tag defaults to main) $ metis init --enable-cmake --add-dep fmt:https://github.com/fmtlib/fmt.git:11.0.2 # repeatable — add several $ metis init --enable-cmake \ --add-dep fmt:https://github.com/fmtlib/fmt.git:11.0.2 \ --add-dep tomlplusplus:https://github.com/marzer/tomlplusplus.git:v3.4.0
Security Checks
$ metis init --enable-security-checks
Adds metis-security (hardcoded secrets / dangerous functions) and metis-dep-security (dependency vulnerability scan) checks to .metis.toml.
Compiler Checks
# enable compiler warnings-as-errors check $ metis init --enable-compiler-checks # specify compiler $ metis init --enable-compiler-checks --compiler gcc # set C++ standard for compiler checks $ metis init --enable-compiler-checks --compiler-cpp-standard 20 # treat warnings as errors (default) $ metis init --enable-compiler-checks --compiler-werror # disable warnings-as-errors $ metis init --enable-compiler-checks --compiler-no-werror # run checks in both Debug and Release $ metis init --enable-compiler-checks --compiler-debug-and-release