2025-08-18 21:43:36 +01:00
|
|
|
---
|
|
|
|
|
title: Configuration Reference
|
|
|
|
|
description: Complete reference for the Task config files and env vars
|
|
|
|
|
permalink: /reference/config/
|
|
|
|
|
outline: deep
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# Configuration Reference
|
|
|
|
|
|
|
|
|
|
Task has multiple ways of being configured. These methods are parsed, in
|
|
|
|
|
sequence, in the following order with the highest priority last:
|
|
|
|
|
|
|
|
|
|
- [Environment variables](./environment.md)
|
|
|
|
|
- _Configuration files_
|
|
|
|
|
- [Command-line flags](./cli.md)
|
|
|
|
|
|
|
|
|
|
In this document, we will look at the second of the three options, configuration
|
|
|
|
|
files.
|
|
|
|
|
|
|
|
|
|
## File Precedence
|
|
|
|
|
|
2025-08-20 12:13:26 +01:00
|
|
|
Task will automatically look for directories containing configuration files in
|
|
|
|
|
the following order with the highest priority first:
|
2025-08-18 21:43:36 +01:00
|
|
|
|
|
|
|
|
- Current directory (or the one specified by the `--taskfile`/`--entrypoint`
|
|
|
|
|
flags).
|
|
|
|
|
- Each directory walking up the file tree from the current directory (or the one
|
|
|
|
|
specified by the `--taskfile`/`--entrypoint` flags) until we reach the user's
|
|
|
|
|
home directory or the root directory of that drive.
|
2025-08-20 12:13:26 +01:00
|
|
|
- The users `$HOME` directory.
|
|
|
|
|
- The `$XDG_CONFIG_HOME/task` directory.
|
|
|
|
|
|
|
|
|
|
Config files in the current directory, its parent folders or home directory
|
|
|
|
|
should be called `.taskrc.yml` or `.taskrc.yaml`. Config files in the
|
|
|
|
|
`$XDG_CONFIG_HOME/task` directory are named the same way, but should not contain
|
|
|
|
|
the `.` prefix.
|
2025-08-18 21:43:36 +01:00
|
|
|
|
|
|
|
|
All config files will be merged together into a unified config, starting with
|
|
|
|
|
the lowest priority file in `$XDG_CONFIG_HOME/task` with each subsequent file
|
|
|
|
|
overwriting the previous one if values are set.
|
|
|
|
|
|
|
|
|
|
For example, given the following files:
|
|
|
|
|
|
2025-08-20 12:13:26 +01:00
|
|
|
```yaml [$XDG_CONFIG_HOME/task/taskrc.yml]
|
2025-08-18 21:43:36 +01:00
|
|
|
# lowest priority global config
|
|
|
|
|
option_1: foo
|
|
|
|
|
option_2: foo
|
|
|
|
|
option_3: foo
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```yaml [$HOME/.taskrc.yml]
|
|
|
|
|
option_1: bar
|
|
|
|
|
option_2: bar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```yaml [$HOME/path/to/project/.taskrc.yml]
|
|
|
|
|
# highest priority project config
|
|
|
|
|
option_1: baz
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
You would end up with the following configuration:
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
option_1: baz # Taken from $HOME/path/to/project/.taskrc.yml
|
|
|
|
|
option_2: bar # Taken from $HOME/.taskrc.yml
|
|
|
|
|
option_3: foo # Taken from $XDG_CONFIG_HOME/task/.taskrc.yml
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Configuration Options
|
|
|
|
|
|
|
|
|
|
### `experiments`
|
|
|
|
|
|
|
|
|
|
The experiments section allows you to enable Task's experimental features. These
|
|
|
|
|
options are not enumerated here. Instead, please refer to our
|
|
|
|
|
[experiments documentation](../experiments/index.md) for more information.
|