Command line reference

When generating code using the Yellicode CLI (command line interface), Yellicode looks for codegenconfig.json files in the current working directory. You can create one using the yellicode init command (see below) or create one manually.

Running without arguments

Running the yellicode command without any arguments will compile and run all templates that are configured in the codegenconfig.json file.


The CLI accepts the following arguments:


This will walk you through creating a codegenconfig.json file, a basic code generation template and an initial model file. It will also install the @yellicode/templating and @yellicode/elements dependencies. If the directory does not contain a NPM package.json file yet, a default one will be created (similar to the npm init --yes command).

Note: if you want to create and configure a plain JSON model instead of a Yellicode model, enter a file name with a '.json' extension when prompted for the model name.
yellicode init


Starts Yellicode in watch mode. The CLI will watch for changes to all input files (config files, configured models and templates) and regenerates the dependent files when any of the inputs change.

yellicode --watch

-- debug-template

Enables template debugging. You can only run a single template in this mode. There are several ways to specify the target template for debugging. For details, please refer to debugging templates.

yellicode --debug-template


The --template argument runs a single template instead of all. This argument must contain the full path to the template file. Also, the template file must have a valid configuration in the codegenconfig.json file.

yellicode --template "[full-path-to-template-file]"


Specifies what messages the CLI should output. You can provide one of the following values:

  • none: Output no tracing and debugging messages.
  • error: Output error-handling messages.
  • warning: Output warnings and error-handling messages.
  • info: Output informational messages, warnings, and error-handling messages.
  • verbose: Output all debugging and tracing messages.

The default level is info. You can change the log level as follows:

yellicode --log-level verbose