Skip to content

Configuration Reference ​

Task has multiple ways of being configured. These methods are parsed, in sequence, in the following order with the highest priority last:

In this document, we will look at the first of the three options, configuration files.

File Precedence ​

Task will automatically look for directories containing configuration files in the following order with the highest priority first:

  • 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.
  • 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.

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:

$XDG_CONFIG_HOME/task/taskrc.yml
yaml
# lowest priority global config
option_1: foo
option_2: foo
option_3: foo
$HOME/.taskrc.yml
yaml
option_1: bar
option_2: bar
$HOME/path/to/project/.taskrc.yml
yaml
# 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 for more information.

yaml
experiments:
  feature_name: 1
  another_feature: 2

verbose ​

  • Type: boolean
  • Default: false
  • Description: Enable verbose output for all tasks
  • CLI equivalent: -v, --verbose
  • Environment variable: TASK_VERBOSE
yaml
verbose: true

silent ​

  • Type: boolean
  • Default: false
  • Description: Disables echoing of commands
  • CLI equivalent: -s, --silent
  • Environment variable: TASK_SILENT
yaml
silent: true

color ​

  • Type: boolean
  • Default: true
  • Description: Enable colored output. Colors are automatically enabled in CI environments (CI=true).
  • CLI equivalent: -c, --color
  • Environment variable: TASK_COLOR
yaml
color: false

disable-fuzzy ​

  • Type: boolean
  • Default: false
  • Description: Disable fuzzy matching for task names. When enabled, Task will not suggest similar task names when you mistype a task name.
  • CLI equivalent: --disable-fuzzy
  • Environment variable: TASK_DISABLE_FUZZY
yaml
disable-fuzzy: true

concurrency ​

yaml
concurrency: 4

failfast ​

  • Type: boolean
  • Default: false
  • Description: Stop executing dependencies as soon as one of them fail
  • CLI equivalent: -F, --failfast
  • Environment variable: TASK_FAILFAST
yaml
failfast: true

interactive ​

  • Type: boolean
  • Default: false
  • Description: Prompt for missing required variables instead of failing. When enabled, Task will display an interactive prompt for any missing required variable. Requires a TTY. Task automatically detects non-TTY environments (CI pipelines, etc.) and skips prompts.
  • CLI equivalent: --interactive
yaml
interactive: true

temp-dir ​

  • Type: string
  • Default: ./.task
  • Description: Directory to store Task temporary files, such as checksums and temporary metadata. Relative paths are relative to the root Taskfile.
  • Environment variable: TASK_TEMP_DIR
yaml
temp-dir: .task

Example Configuration ​

Here's a complete example of a .taskrc.yml file with all available options:

yaml
# Global settings
verbose: true
silent: false
color: true
disable-fuzzy: false
concurrency: 2
temp-dir: .task

# Enable experimental features
experiments:
  REMOTE_TASKFILES: 1