---
title: "Command line"
url: "/reference/configuration/cli/"
kind: "reference"
summary: "Every flag of the arion binary: config file selection, Envoy bootstrap override and runtime tuning."
---

> Arion site index: [/llms.txt](/llms.txt)

# Command line

Every flag of the arion binary: config file selection, Envoy bootstrap override and runtime tuning.

The `arion` binary takes its configuration from one or both of two file flags, plus optional runtime-tuning flags that override the file's `runtime` section.

## Flags

| Flag | Value | Default | Description |
|---|---|---|---|
| `-c`, `--config` | path | — | An Arion configuration file in the [file format](@/reference/configuration/file-format.md), with top-level `runtime`, `logging`, `envoy_bootstrap` and friends. |
| `--with-envoy-bootstrap` | path | — | A bare Envoy Bootstrap YAML file (top-level `node`, `static_resources`, `dynamic_resources`, `admin` — not wrapped in `envoy_bootstrap:`). Replaces any bootstrap from `--config`. |
| `-C`, `--num-cpus` | integer ≥ 1 | from file / detected | Cores to use. Overrides `runtime.num_cpus`. |
| `-R`, `--num-runtimes` | integer ≥ 1 | from file / `1` | Tokio worker runtimes. Overrides `runtime.num_runtimes`. |
| `-S`, `--num-service-threads` | integer ≥ 1 | from file / `1` | Service threads. Overrides `runtime.num_service_threads`. |
| `--global-queue-interval` | integer ≥ 1 | Tokio default | Scheduler ticks between global queue polls. Overrides `runtime.global_queue_interval`. |
| `--event-interval` | integer | Tokio default | Scheduler ticks between I/O event polls. Overrides `runtime.event_interval`. |
| `--max-io-events-per-tick` | integer ≥ 1 | Tokio default | Maximum I/O events per tick. Overrides `runtime.max_io_events_per_tick`. |
| `--clusters-manager-queue-length` | integer ≥ 1 | — | Accepted but not currently applied by the runtime. |
| `--core-ids` | comma-separated integers | — | Accepted but not currently applied; use `runtime.affinity_strategy` in the config file to pin cores. |
| `-h`, `--help` | — | — | Print usage and exit. |

At least one of `--config` or `--with-envoy-bootstrap` is required. [Environment variables](@/reference/configuration/environment-variables.md) take precedence over these flags, which take precedence over the file.

## Selecting the configuration source

- `--config` alone: the file provides everything, including the bootstrap via its `envoy_bootstrap` (or native `bootstrap`) key.
- `--with-envoy-bootstrap` alone: the file is parsed as an Envoy Bootstrap directly; `runtime`, `logging`, `access_logging`, `metrics` and `timezone` all take their defaults.
- Both: process settings come from the `--config` file, and its bootstrap — whichever key it used — is discarded in favour of the Envoy bootstrap file.

## Invocation

```bash
# Arion file format
arion --config arion.yaml

# An unmodified Envoy bootstrap, e.g. when migrating from Envoy
arion --with-envoy-bootstrap envoy.yaml

# Process tuning from arion.yaml, resources from envoy.yaml, two runtimes
arion -c arion.yaml --with-envoy-bootstrap envoy.yaml -R 2
```

On a configuration error Arion logs the reason, including the YAML path of the offending field, and exits with status `1`.
