# Boolean option

Learn how to define boolean options for templates.

Boolean options accept a true or false value, making them ideal for feature flags and configuration switches.

## Example

The following template prints a greeting with an optional uppercase toggle:

**template.json5**

```json5
{
  "$schema": "https://schema.croct.com/json/v1/template.json",
  "title": "Greeting",
  "description": "Prints a greeting.",
  "options": {
    "uppercase": {
      "type": "boolean",
      "description": "Whether to print in uppercase.",
      "default": false
    }
  },
  "actions": [
    {
      "name": "print",
      "semantics": "info",
      "message": "${options.uppercase ? 'HELLO!' : 'Hello!'}"
    }
  ]
}
```

You can pass `--uppercase` to enable the flag, or `--no-uppercase` to explicitly disable it:

```sh
croct use template.json5 --uppercase
```

This prints `HELLO!`. Without the flag, it prints `Hello!`.

## Properties

The following list describes the properties for boolean options:

- `type`: `string`

  The option type. Always `boolean` for boolean options.

- `description`: `string`

  A description displayed when prompting the user.

- `default`: `boolean` (optional)

  The default value used when the user does not provide one.

## Explore

- [Options overview](/reference/cli/templates/options/overview): Learn how template options work.
- [Expressions](/reference/cli/templates/expressions): Learn how to use options in expressions.
