id = "go-task"
name = "Task"
homepage = "https://taskfile.dev/"
description = "A fast, cross-platform build tool inspired by Make, designed for modern workflows."
executables = ["task"]
[dotfiles]
paths = ["[configHome]/task/taskrc.yml", "~/.taskrc.yml"]
secret = []
[commands]
format = 1
label = "Run Taskfile tasks"
description = "Run, list or preview tasks defined in a Taskfile. Remote Taskfile, experiment and output-group options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true }
[[commands.source]]
id = "flags"
kind = "manual"
url = "https://github.com/go-task/task/blob/main/internal/flags/flags.go"
revision = "2026-10-27"
evidence = "--list, -l Lists tasks with description of current Taskfile.\n--list-all, -a Lists tasks with or without a description.\n--dry, -n Compiles and prints tasks in the order that they would be run, without executing them.\n--force, -f Forces execution of the directly called task.\n--watch, -w Enables watch of the given task.\n--parallel, -p Executes tasks provided on command line in parallel.\n--dir, -d Sets the directory in which Task will execute and look for a Taskfile.\n--taskfile, -t Choose which Taskfile to run. Defaults to \"Taskfile.yml\".\n--summary Show summary about a task.\n--verbose, -v Enables verbose mode.\n--silent, -s Disables echoing.\n--yes, -y Assume \"yes\" as answer to all prompts.\n--output, -o Sets output style: [interleaved|group|prefixed].\n--concurrency, -C Limit number of tasks to run concurrently.\n--init, -i Creates a new Taskfile.yml in the current folder."
[[commands.field]]
id = "tasks"
label = "Tasks"
description = "Task names to run; leave empty for the default task. Variables (NAME=value) can be typed in as well."
type = "string"
position = 0
multiple = true
sources = ["flags"]
[[commands.field]]
id = "list"
label = "List tasks"
description = "List tasks with a description instead of running."
type = "boolean"
option = ["--list", "-l"]
sources = ["flags"]
[[commands.field]]
id = "list_all"
label = "List all tasks"
type = "boolean"
option = ["--list-all", "-a"]
sources = ["flags"]
[[commands.field]]
id = "dry"
label = "Dry run"
description = "Print the tasks in the order they would run, without executing them."
type = "boolean"
option = ["--dry", "-n"]
sources = ["flags"]
[[commands.field]]
id = "force"
label = "Force"
description = "Run the called task even if it is up to date."
type = "boolean"
option = ["--force", "-f"]
effect = "exec"
sources = ["flags"]
[[commands.field]]
id = "watch"
label = "Watch"
type = "boolean"
option = ["--watch", "-w"]
sources = ["flags"]
[[commands.field]]
id = "parallel"
label = "Parallel"
description = "Run the listed tasks in parallel."
type = "boolean"
option = ["--parallel", "-p"]
sources = ["flags"]
[[commands.field]]
id = "summary"
label = "Summary"
description = "Show a summary of the task."
type = "boolean"
option = ["--summary"]
sources = ["flags"]
[[commands.field]]
id = "dir"
label = "Directory"
type = "path"
option = ["--dir", "-d"]
path = { kind = "directory", role = "input" }
sources = ["flags"]
[[commands.field]]
id = "taskfile"
label = "Taskfile"
description = "Defaults to Taskfile.yml."
type = "path"
option = ["--taskfile", "-t"]
path = { kind = "file", role = "input" }
sources = ["flags"]
[[commands.field]]
id = "output"
label = "Output style"
type = "string"
option = ["--output", "-o"]
suggestions = [{ value = "interleaved", label = "interleaved" }, { value = "group", label = "group" }, { value = "prefixed", label = "prefixed" }]
sources = ["flags"]
[[commands.field]]
id = "concurrency"
label = "Concurrency"
type = "integer"
option = ["--concurrency", "-C"]
sources = ["flags"]
[[commands.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["--verbose", "-v"]
sources = ["flags"]
[[commands.field]]
id = "silent"
label = "Silent"
type = "boolean"
option = ["--silent", "-s"]
sources = ["flags"]
[[commands.field]]
id = "yes"
label = "Assume yes"
type = "boolean"
option = ["--yes", "-y"]
sources = ["flags"]
[[commands.field]]
id = "init"
label = "Create Taskfile"
description = "Create a new Taskfile.yml here."
type = "boolean"
option = ["--init", "-i"]
effect = "overwrite"
sources = ["flags"]
[[commands.task]]
id = "run"
label = "Run tasks"
fields = ["tasks", "dry", "force", "parallel", "watch"]
required = []
[[commands.task]]
id = "list"
label = "List tasks"
fields = ["list", "taskfile", "dir"]
required = []
set = { list = [true] }
[[commands.task]]
id = "preview"
label = "Preview a task"
fields = ["tasks", "dry"]
required = ["tasks"]
set = { dry = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["tasks", "list", "dry", "force", "watch", "parallel"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["summary", "dir", "taskfile", "output", "concurrency", "verbose", "silent", "yes", "init", "list_all"]