The <code>cmds</code> attribute should contain the commands of a task.
The example below allows compiling a Go app and uses <ahref="https://github.com/tdewolff/minify/tree/master/cmd/minify"target="_blank"rel="noopener noreferrer">Minify</a> to concat
executable called must be available by the OS or in PATH.</p><p>If you omit a task name, "default" will be assumed.</p><h2class="anchor anchorWithStickyNavbar_LWe7"id="supported-file-names">Supported file names<aclass="hash-link"href="#supported-file-names"title="Direct link to heading"></a></h2><p>Task will look for the following file names, in order of priority:</p><ul><li>Taskfile.yml</li><li>Taskfile.yaml</li><li>Taskfile.dist.yml</li><li>Taskfile.dist.yaml</li></ul><p>The intention of having the <code>.dist</code> variants is to allow projects to have one
<code>.gitignore</code>).</p><h3class="anchor anchorWithStickyNavbar_LWe7"id="running-a-taskfile-from-a-subdirectory">Running a Taskfile from a subdirectory<aclass="hash-link"href="#running-a-taskfile-from-a-subdirectory"title="Direct link to heading"></a></h3><p>If a Taskfile cannot be found in the current working directory, it will walk up
just like variables, as you can see in the <ahref="#variables">Variables</a> section.</p></div></div><h3class="anchor anchorWithStickyNavbar_LWe7"id="env-files">.env files<aclass="hash-link"href="#env-files"title="Direct link to heading"></a></h3><p>You can also ask Task to include <code>.env</code> like files by using the <code>dotenv:</code>
the importing mechanism to include other Taskfiles using the <code>includes</code> keyword:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">includes</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">docs</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"> ./documentation </span><spanclass="token comment"style="color:#6B6B6B;font-style:italic"># will look for ./documentation/Taskfile.yml</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">docker</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"> ./DockerTasks.yml</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The tasks described in the given Taskfiles will be available with the informed
from the <code>DockerTasks.yml</code> file.</p><p>Relative paths are resolved relative to the directory containing the including Taskfile.</p><h3class="anchor anchorWithStickyNavbar_LWe7"id="os-specific-taskfiles">OS-specific Taskfiles<aclass="hash-link"href="#os-specific-taskfiles"title="Direct link to heading"></a></h3><p>With <code>version: '2'</code>, task automatically includes any <code>Taskfile_{{OS}}.yml</code>
in another directory by using this alternative syntax:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">includes</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">docs</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">taskfile</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"> ./docs/Taskfile.yml</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">dir</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"> ./docs</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><divclass="theme-admonition theme-admonition-info alert alert--info admonition_LlT9"><divclass="admonitionHeading_tbUL"><spanclass="admonitionIcon_kALy"><svgviewBox="0 0 14 16"><pathfill-rule="evenodd"d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><divclass="admonitionContent_S0QG"><p>The included Taskfiles must be using the same schema version as the main
Taskfile uses.</p></div></div><h3class="anchor anchorWithStickyNavbar_LWe7"id="optional-includes">Optional includes<aclass="hash-link"href="#optional-includes"title="Direct link to heading"></a></h3><p>Includes marked as optional will allow Task to continue execution as normal if
the included file is missing.</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">includes</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tests</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">taskfile</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"> ./tests/Taskfile.yml</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">optional</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token boolean important"style="color:#005CC5">true</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">greet</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> echo "This command can still be successfully executed if ./tests/Taskfile.yml does not exist"</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3class="anchor anchorWithStickyNavbar_LWe7"id="internal-includes">Internal includes<aclass="hash-link"href="#internal-includes"title="Direct link to heading"></a></h3><p>Includes marked as internal will set all the tasks of the included file to be
<code>MY_VAR: '{{.MY_VAR | default "my-default-value"}}'</code>.</p></div></div><h2class="anchor anchorWithStickyNavbar_LWe7"id="internal-tasks">Internal tasks<aclass="hash-link"href="#internal-tasks"title="Direct link to heading"></a></h2><p>Internal tasks are tasks that cannot be called directly by the user. They will
<ahref="#calling-another-task">Calling Another Task</a> section below.</p></blockquote><p>You may have tasks that depend on others. Just pointing them on <code>deps</code> will
using the <code>--parallel</code> flag (alias <code>-p</code>). Example: <code>task --parallel js css</code>.</p></div></div><p>If you want to pass information to dependencies, you can do that the same
<code>task: :task-name</code>.</p></div></div><h2class="anchor anchorWithStickyNavbar_LWe7"id="prevent-unnecessary-work">Prevent unnecessary work<aclass="hash-link"href="#prevent-unnecessary-work"title="Direct link to heading"></a></h2><h3class="anchor anchorWithStickyNavbar_LWe7"id="by-fingerprinting-locally-generated-files-and-their-sources">By fingerprinting locally generated files and their sources<aclass="hash-link"href="#by-fingerprinting-locally-generated-files-and-their-sources"title="Direct link to heading"></a></h3><p>If a task generates something, you can inform Task the source and generated
also need to inform the generated files with <code>generates</code>.</p></div></div><h3class="anchor anchorWithStickyNavbar_LWe7"id="using-programmatic-checks-to-indicate-a-task-is-up-to-date">Using programmatic checks to indicate a task is up to date.<aclass="hash-link"href="#using-programmatic-checks-to-indicate-a-task-is-up-to-date"title="Direct link to heading"></a></h3><p>Alternatively, you can inform a sequence of tests as <code>status</code>. If no error
is returned (exit status 0), the task is considered up-to-date:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">generate-files</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> mkdir directory</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> touch directory/file1.txt</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> touch directory/file2.txt</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token comment"style="color:#6B6B6B;font-style:italic"># test existence of files</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">status</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> test </span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">d directory</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> test </span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">f directory/file1.txt</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> test </span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">f directory/file2.txt</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.9
<code>generates</code> - but for tasks that generate remote artifacts (Docker images,
deploys, CD releases) the checksum source and timestamps require either
access to the artifact or for an out-of-band refresh of the <code>.checksum</code>
fingerprint file.</p><p>Two special variables <code>{{.CHECKSUM}}</code> and <code>{{.TIMESTAMP}}</code> are available
for interpolation within <code>status</code> commands, depending on the method assigned
to fingerprint the sources. Only <code>source</code> globs are fingerprinted.</p><p>Note that the <code>{{.TIMESTAMP}}</code> variable is a "live" Go <code>time.Time</code> struct, and
can be formatted using any of the methods that <code>time.Time</code> responds to.</p><p>See <ahref="https://golang.org/pkg/time/"target="_blank"rel="noopener noreferrer">the Go Time documentation</a> for more information.</p><p>You can use <code>--force</code> or <code>-f</code> if you want to force a task to run even when
up-to-date.</p><p>Also, <code>task --status [tasks]...</code> will exit with a non-zero exit code if any of
the tasks are not up-to-date.</p><p><code>status</code> can be combined with the <ahref="#by-fingerprinting-locally-generated-files-and-their-sources">fingerprinting</a>
to have a task run if either the the source/generated artifacts changes, or the
when it is executed using <code>run</code>. <code>run</code> can also be set at the root
of the Taskfile to change the behavior of all the tasks unless explicitly
overridden.</p><p>Supported values for <code>run</code>:</p><ul><li><code>always</code> (default) always attempt to invoke the task regardless of the
number of previous executions</li><li><code>once</code> only invoke this task once regardless of the number of references</li><li><code>when_changed</code> only invokes the task once for each unique set of variables
They are listed below in order of importance (i.e. most important first):</p><ul><li>Variables declared in the task definition</li><li>Variables given while calling a task from another
that this command will run even when the task fails.</p><p>In the example below, <code>rm -rf tmpdir/</code> will run even if the third command fails:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">default</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> mkdir </span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">p tmpdir/</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">defer</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"> rm </span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">rf tmpdir/</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> echo 'Do work on tmpdir/'</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>If you want to move the cleanup command into another task, that is possible as
commands are executed in the reverse order if you schedule multiple of them.</p></div></div><h2class="anchor anchorWithStickyNavbar_LWe7"id="gos-template-engine">Go's template engine<aclass="hash-link"href="#gos-template-engine"title="Direct link to heading"></a></h2><p>Task parse commands as <ahref="https://golang.org/pkg/text/template/"target="_blank"rel="noopener noreferrer">Go's template engine</a> before executing
them. Variables are accessible through dot syntax (<code>.VARNAME</code>).</p><p>All functions by the Go's <ahref="https://go-task.github.io/slim-sprig/"target="_blank"rel="noopener noreferrer">slim-sprig lib</a>
"darwin" (macOS) and "freebsd".</li><li><code>ARCH</code>: return the architecture Task was compiled to: "386", "amd64", "arm"
or "s390x".</li><li><code>splitLines</code>: Splits Unix (\n) and Windows (\r\n) styled newlines.</li><li><code>catLines</code>: Replaces Unix (\n) and Windows (\r\n) styled newlines with a space.</li><li><code>toSlash</code>: Does nothing on Unix, but on Windows converts a string from <code>\</code>
path format to <code>/</code>.</li><li><code>fromSlash</code>: Opposite of <code>toSlash</code>. Does nothing on Unix, but on Windows
converts a string from <code>/</code> path format to <code>\</code>.</li><li><code>exeExt</code>: Returns the right executable extension for the current OS
(<code>".exe"</code> for Windows, <code>""</code> for others).</li><li><code>shellQuote</code>: Quotes a string to make it safe for use in shell scripts.
Task uses <ahref="https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote"target="_blank"rel="noopener noreferrer">this Go function</a>
for this. The Bash dialect is assumed.</li></ul><p>Example:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">print-os</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> echo '</span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token plain">OS</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token plain">ARCH</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token plain">'</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> echo '</span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token plain">if eq OS "windows"</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token plain">windows</span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">command</span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token plain">else</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token plain">unix</span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">command</span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token plain">end</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token plain">'</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token comment"style="color:#6B6B6B;font-style:italic"># This will be path/to/file on Unix but path\to\file on Windows</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="
The following Taskfile:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">build</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">desc</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"> Build the go binary.</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> go build </span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">v </span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">i main.go</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">test</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">desc</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"> Run all the go tests.</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> go test </span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">race ./</span><spanclass="token punctuation"style="color:#393A34">...</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">js</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain">
The following Taskfile:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">release</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">deps</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">[</span><spanclass="token plain">build</span><spanclass="token punctuation"style="color:#393A34">]</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">summary</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">|</span><spanclass="token scalar string"style="color:#C6105F"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token scalar string"style="color:#C6105F"> Release your project to github</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"> It will build your project before starting the release.</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"> Please make sure that you have set GITHUB_TOKEN before starting.</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> your</span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">release</span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">tool</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">build</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="toke
If the task does not have a summary or a description, a warning is printed.</p><p>Please note: <em>showing the summary will not execute the command</em>.</p><h2class="anchor anchorWithStickyNavbar_LWe7"id="task-aliases">Task aliases<aclass="hash-link"href="#task-aliases"title="Direct link to heading"></a></h2><p>Aliases are alternative names for tasks. They can be used to make it easier and
For the following Taskfile:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">echo</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> echo "Print something"</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Normally this will be printed:</p><divclass="language-sh codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-sh codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token plain">echo "Print something"</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain">Print something</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>With silent mode on, the below will be printed instead:</p><divclass="language-sh codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-sh codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token plain">Print something</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21
that would be run without executing them. This is useful for debugging your Taskfiles.</p><h2class="anchor anchorWithStickyNavbar_LWe7"id="ignore-errors">Ignore errors<aclass="hash-link"href="#ignore-errors"title="Direct link to heading"></a></h2><p>You have the option to ignore errors during command execution.
Given the following Taskfile:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">echo</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> exit 1</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> echo "Hello World"</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Task will abort the execution after running <code>exit 1</code> because the status code <code>1</code> stands for <code>EXIT_FAILURE</code>.
However, it is possible to continue with execution using <code>ignore_error</code>:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">echo</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmd</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"> exit 1</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">ignore_error</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token boolean important"style="color:#005CC5">true</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> echo "Hello World"</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><code>ignore_error</code> can also be set for a task, which means errors will be suppressed
called either by <code>deps</code> or <code>cmds</code>!</p><h2class="anchor anchorWithStickyNavbar_LWe7"id="output-syntax">Output syntax<aclass="hash-link"href="#output-syntax"title="Direct link to heading"></a></h2><p>By default, Task just redirects the STDOUT and STDERR of the running commands
options you can choose:</p><ul><li><code>interleaved</code> (default)</li><li><code>group</code></li><li><code>prefixed</code></li></ul><p>To choose another one, just set it to root in the Taskfile:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">output</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'group'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token comment"style="color:#6B6B6B;font-style:italic"># ...</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The <code>group</code> output will print the entire output of a command once after it
will try to optimize for it:</p><divclass="language-yaml codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token key atrule"style="color:#22863A">version</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token string"style="color:#C6105F">'3'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">tasks</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">default</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">cmds</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain"> vim my</span><spanclass="token punctuation"style="color:#393A34">-</span><spanclass="token plain">file.txt</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">interactive</span><spanclass="token punctuation"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token boolean important"style="color:#005CC5">true</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>If you still have problems running an interactive app through Task, please open
an issue about it.</p><h2class="anchor anchorWithStickyNavbar_LWe7"id="short-task-syntax">Short task syntax<aclass="hash-link"href="#short-task-syntax"title="Direct link to heading"></a></h2><p>Starting on Task v3, you can now write tasks with a shorter syntax if they
as an argument like <code>--interval=500ms</code>.</p></div></article><navclass="pagination-nav docusaurus-mt-lg"aria-label="Docs pages navigation"><aclass="pagination-nav__link pagination-nav__link--prev"href="/installation/"><divclass="pagination-nav__sublabel">Previous</div><divclass="pagination-nav__label">Installation</div></a><aclass="pagination-nav__link pagination-nav__link--next"href="/api/"><divclass="pagination-nav__sublabel">Next</div><divclass="pagination-nav__label">API Reference</div></a></nav></div></div><divclass="col col--3"><divclass="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ulclass="table-of-contents table-of-contents__left-border"><li><ahref="#getting-started"class="table-of-contents__link toc-highlight">Getting started</a></li><li><ahref="#supported-file-names"class="table-of-contents__link toc-highlight">Supported file names</a><ul><li><ahref="#running-a-taskfile-from-a-subdirectory"class="table-of-contents__link toc-highlight">Running a Taskfile from a subdirectory</a></li></ul></li><li><ahref="#environment-variables"class="table-of-contents__link toc-highlight">Environment variables</a><ul><li><ahref="#task"class="table-of-contents__link toc-highlight">Task</a></li><li><ahref="#env-files"class="table-of-contents__link toc-highlight">.env files</a></li></ul></li><li><ahref="#including-other-taskfiles"class="table-of-contents__link toc-highlight">Including other Taskfiles</a><ul><li><ahref="#os-specific-taskfiles"class="table-of-contents__link toc-highlight">OS-specific Taskfiles</a></li><li><ahref="#directory-of-included-taskfile"class="table-of-contents__link toc-highlight">Directory of included Taskfile</a></li><li><ahref="#optional-includes"class="table-of-contents__link toc-highlight">Optional includes</a></li><li><ahref="#internal-includes"class="table-of-contents__link toc-highlight">Internal includes</a></li><li><ahref="#vars-of-included-taskfiles"class="table-of-contents__link toc-highlight">Vars of included Taskfiles</a></li><li><ahref="#namespace-aliases"class="table-of-contents__link toc-highlight">Namespace aliases</a></li></ul></li><li><ahref="#internal-tasks"class="table-of-contents__link toc-highlight">Internal tasks</a></li><li><ahref="#task-directory"class="table-of-contents__link toc-highlight">Task directory</a></li><li><ahref="#task-dependencies"class="table-of-contents__link toc-highlight">Task dependencies</a></li><li><ahref="#calling-another-task"class="table-of-contents__link toc-highlight">Calling another task</a></li><li><ahref="#prevent-unnecessary-work"class="table-of-contents__link toc-highlight">Prevent unnecessary work</a><ul><li><ahref="#by-fingerprinting-locally-generated-files-and-their-sources"class="table-of-contents__link toc-highlight">By fingerprinting locally generated files and their sources</a></li><li><ahref="#using-programmatic-checks-to-indicate-a-task-is-up-to-date"class="table-of-contents__link toc-highlight">Using programmatic checks to indicate a task is up to date.</a></li><li><ahref="#using-programmatic-checks-to-cancel-the-execution-of-a-task-and-its-dependencies"class="table-of-contents__link toc-highlight">Using programmatic checks to cancel the execution of a task and its dependencies</a></li><li><ahref="#limiting-when-tasks-run"class="table-of-contents__link toc-highlight">Limiting when tasks run</a></li></ul></li><li><ahref="#variables"class="table-of-contents__link toc-highlight">Variables</a><ul><li><ahref="#dynamic-variables"class="table-of-contents__link toc-highlight">Dynamic variables</a></li></ul></li><li><ahref="#forwarding-cli-arguments-to-commands"class="table-of-contents__link toc-highlight">Forwarding CLI arguments to commands</a></li><li><ahref="#doing-task-cleanup-with-defer"class="table-of-contents__link toc-highlight">Doing task cleanup with <code>defer</code></a></li><li><ahref="#gos-template-engine"class="table-of-contents__link toc-highlight">Go's template engine</a></li><li><ahref="#help"class="table-of-contents__linktoc-highligh