<scriptsrc="/js/carbon.js"async></script><titledata-rh="true">Home | Task</title><metadata-rh="true"name="twitter:card"content="summary_large_image"><metadata-rh="true"property="og:url"content="https://taskfile.dev/"><metadata-rh="true"name="docusaurus_locale"content="en"><metadata-rh="true"name="docsearch:language"content="en"><metadata-rh="true"name="og:image"content="https://taskfile.dev/img/og-image.png"><metadata-rh="true"name="docusaurus_version"content="current"><metadata-rh="true"name="docusaurus_tag"content="docs-default-current"><metadata-rh="true"name="docsearch:version"content="current"><metadata-rh="true"name="docsearch:docusaurus_tag"content="docs-default-current"><metadata-rh="true"property="og:title"content="Home | Task"><metadata-rh="true"name="description"content="Task is a task runner / build tool that aims to be simpler and easier to use"><metadata-rh="true"property="og:description"content="Task is a task runner / build tool that aims to be simpler and easier to use"><linkdata-rh="true"rel="icon"href="/img/favicon.ico"><linkdata-rh="true"rel="canonical"href="https://taskfile.dev/"><linkdata-rh="true"rel="alternate"href="https://taskfile.dev/"hreflang="en"><linkdata-rh="true"rel="alternate"href="https://taskfile.dev/"hreflang="x-default"><linkdata-rh="true"rel="preconnect"href="https://7IZIJ13AI7-dsn.algolia.net"crossorigin="anonymous"><scriptdata-rh="true">functionmaybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}functioninsertBanner(){varn=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';vare=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><linkrel="stylesheet"href="/assets/css/styles.098dd58a.css">
than, for example, <ahref="https://www.gnu.org/software/make/"target="_blank"rel="noopener noreferrer">GNU Make</a>.</p><p>Since it's written in <ahref="https://go.dev/"target="_blank"rel="noopener noreferrer">Go</a>, Task is just a single binary and has no other
dependencies, which means you don't need to mess with any complicated install
setups just to use a build tool.</p><p>Once <ahref="/installation/">installed</a>, you just need to describe your build tasks
using a simple <ahref="http://yaml.org/"target="_blank"rel="noopener noreferrer">YAML</a> schema in a file called <code>Taskfile.yml</code>:</p><divclass="language-yaml codeBlockContainer_MPoW theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockTitle_YYkX">Taskfile.yml</div><divclass="codeBlockContent_B9tL"><pretabindex="0"class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><codeclass="codeBlockLines_gEuF"><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">hello</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 'Hello World from Task</span><spanclass="token tag"style="color:#22863A">!'</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token key atrule"style="color:#22863A">silent</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_hRr1"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_W9eQ"aria-hidden="true"><svgclass="copyButtonIcon_XEyF"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_i9w9"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>And call it by running <code>task hello</code> from your terminal.</p><p>The above example is just the start, you can take a look at the <ahref="/usage">usage</a>
guide to check the full schema documentation and Task features.</p><h2class="anchor anchorWithStickyNavbar_mojV"id="features">Features<aclass="hash-link"href="#features"title="Direct link to heading"></a></h2><ul><li><ahref="/installation/">Easy installation</a>: just download a single binary, add to
<code>$PATH</code> and you're done! Or you can also install using <ahref="https://brew.sh/"target="_blank"rel="noopener noreferrer">Homebrew</a>,
<ahref="https://snapcraft.io/"target="_blank"rel="noopener noreferrer">Snapcraft</a>, or <ahref="https://scoop.sh/"target="_blank"rel="noopener noreferrer">Scoop</a> if you want.</li><li>Available on CIs: by adding <ahref="/installation/#install-script">this simple command</a>
to install on your CI script and you're ready to use Task as part of your CI pipeline;</li><li>Truly cross-platform: while most build tools only work well on Linux or macOS,
Task also supports Windows thanks to <ahref="https://github.com/mvdan/sh"target="_blank"rel="noopener noreferrer">this shell interpreter for Go</a>.</li><li>Great for code generation: you can easily <ahref="/usage#prevent-unnecessary-work">prevent a task from running</a>