Configuration Precedence ~~~~~~~~~~~~~~~~~~~~~~~~ From lowest to highest: 1. Defaults defined in the source code. 2. Default config file (``$BORG_CONFIG_DIR/default.yaml``). 3. ``--config`` file(s) (in the order given). 4. Full config environment variable: (``BORG_CONFIG``). 5. Environment variables (e.g. ``BORG_LOG_LEVEL``). 6. Command-line arguments in order left to right (might include config files). Configuration files ~~~~~~~~~~~~~~~~~~~ Borg supports reading options from YAML configuration files. This is implemented via `jsonargparse `_ and works for all options that can also be set on the command line. Default configuration file ``$BORG_CONFIG_DIR/default.yaml`` is loaded automatically on every Borg invocation if it exists. You do not need to pass ``--config`` explicitly for this file. ``--config PATH`` Load additional options from the YAML file at *PATH*. Options in this file take precedence over the default config file but are overridden by explicit command-line arguments. This option can be used multiple times, with later files overriding earlier ones. ``--print_config`` Print the current effective configuration (all options in YAML format) to stdout and exit. This reflects the merged result of the default config file, any ``--config`` file, environment variables, and command-line arguments given before ``--print_config``. The output can be used as a starting point for a config file. File format Config files are YAML documents. Top-level keys are option names (without leading ``--`` and with ``-`` replaced by ``_``). Nested keys correspond to subcommands. Example ``default.yaml``:: # apply to all borg commands: log_level: info show_rc: true # options specific to "borg create": create: compression: zstd,3 stats: true The top-level keys set options that are common to all commands (equivalent to placing them before the subcommand on the command line). Keys nested under a subcommand name (e.g. ``create:``) are only applied when that subcommand is invoked. .. note:: ``--print_config`` shows the merged effective configuration and is a convenient way to check what values Borg will actually use, and to generate contents for your borg config file(s):: borg --repo /backup/main create --compression zstd,3 --print_config