# Xygeni CLI Configuration options

Each scan has configuration options that are by default available in files named `xygeni.yml` and `xygeni.<command>.yml` in the scanner's `conf` directory. Each file is a YAML document that could be edited and uploaded to the Xygeni platform for reuse.

{% hint style="info" %}
See following sections for specific scanner configurations:

* [Dependency Scanner configuration](/xygeni-products/open-source-security-oss/dependency-scanner/dependency-scanner-configuration.md)
* [CI/CD Misconfigurations Scanner Configuration](/xygeni-products/software-supply-chain-security-sscs/ci-cd-scanner/ci-cd-misconfigurations-scanner-configuration.md)
* [Secrets Scanner configuration](/xygeni-products/secrets-security/secrets-scanner/secrets-scanner-configuration.md)
* [IaC Scanner Configuration](/xygeni-products/iac-security/iac-scanner/iac-scanner-configuration.md)
* [Code Tampering Scanner Configuration](/xygeni-products/anomaly-detection/code-tampering-scanner/code-tampering-scanner-configuration.md)
* [Malware Scanner Configuration](/xygeni-products/code-security-cs/malware-scanner/malware-scanner-configuration.md)
  {% endhint %}

Nevertheless, you can also configure the scanners by command line without the need to modify the configuration files.

The `-cop|--conf-option` are global options that go before the command, each for given a value to a configuration property

```bash
$ xygeni -cop | --conf-option key:value -cop | --conf-option key2:value ... <command> ...
```

{% hint style="info" %}
Quotes surrounding key:value are optional, depending on shell metacharacters that can appear in key:value

`key` is the name of the configuration property, and `value` is the value to be assigned. For nested properties separate the parts with '/'.
{% endhint %}

Examples:

```bash
# Disable commit resolution
xygeni -cop 'commitResolution:never' scan ...
# Set parallel mode with two threads
xygeni -cop 'mode:parallel' -cop 'parallelism:2' secrets ...
# Disable timeout
xygeni -cop 'timeout:0' secrets ...

# More complex cases (using long or short option names):
xygeni --config-option "report[format=text]/sort: exposure" \
  --config-option "report[format=text]/borders: none" \
  --config-option "parallelism: min(availableProcessors - 1, 4)" \
  scan ...

# Imagine that the user has this environment var instead of the expected JENKINS_URL
xygeni -cop "cicd[kind=jenkins]/url: ${MY_JENKINS_URL}" misconf ...
```

Note that many configuration options are passed through environment variables or local files in CI/CD pipelines, and for sporadic changes it may be easier to specify a few options with `--conf-option`, possibly storing command line options in an `@argument` file which could be under version control, etc.) This could be convenient when many configuration properties need to be overridden for scanning a particular project.

{% hint style="info" %}
Follow our [**Central Configuration**](/xygeni-scanner-cli/xygeni-cli-overview/cli-utils/central-configuration.md) for instructions on how to handle central configuration.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.xygeni.io/xygeni-scanner-cli/xygeni-cli-overview/xygeni-cli-configuration-options.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
