<titledata-rh="true">Home | Task</title><metadata-rh="true"name="viewport"content="width=device-width,initial-scale=1"><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="preconnect"href="https://www.google-analytics.com">
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_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockTitle_Ktv7">Taskfile.yml</div><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">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__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>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_LWe7"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>
timestamp or content).</li></ul><h2class="anchor anchorWithStickyNavbar_LWe7"id="gold-sponsors">Gold Sponsors<aclass="hash-link"href="#gold-sponsors"title="Direct link to heading"></a></h2><divclass="gold-sponsors"><table><thead><tr><th><ahref="https://appwrite.io/?utm_source=taskfile.dev&utm_medium=website&utm_campaign=task_oss_fund"target="_blank"rel="noopener noreferrer">Appwrite</a></th></tr></thead><tbody><tr><td><ahref="https://appwrite.io/?utm_source=taskfile.dev&utm_medium=website&utm_campaign=task_oss_fund"target="_blank"rel="noopener noreferrer"><imgloading="lazy"alt="Appwrite"src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTczIiBoZWlnaHQ9IjMwIiB2aWV3Qm94PSIwIDAgMTczIDMwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMzUgMTQuOTk5OUMzNSAyMS42MjczIDI5LjkwMjEgMjcgMjMuNjEzMSAyN0MyMC42OTIxIDI3IDE4LjAyODEgMjUuODQwNiAxNi4wMTIzIDIzLjkzNTNDMTkuMjQxNSAyMi40MDMyIDIxLjQ4OTUgMTguOTgyNiAyMS40ODk1IDE1LjAwODZDMjEuNDg5NSAxMS4wMjk1IDE5LjIzNTkgNy42MDUzNSAxNiA2LjA3NjE0QzE4LjAxNzUgNC4xNjM4NyAyMC42ODYyIDMgMjMuNjEzMSAzQzI5LjkwMjEgMyAzNSA4LjM3MjU1IDM1IDE0Ljk5OTlaIiBmaWxsPSIjRjAyRTY1Ii8+CjxwYXRoIGQ9Ik0xOS4yMjk0IDUuNDM2OTlDMTEuODYxOSAtMC4xMjQ4NDMgMS4yMjk2IDQuMzY1OCAwLjA5MTYxMSAxMy41MjA1Qy0wLjQzNzIwOCAxNy43NzUyIDEuMzQ5NDUgMjEuOTg3OCA0Ljc3NjkgMjQuNTY4QzEyLjE0ODYgMzAuMTI0OSAyMi43Nzc3IDI1LjYyNjQgMjMuOTA5NCAxNi40NzA5QzI0LjQzNDUgMTIuMjIxNiAyMi42NTA1IDguMDE1NjkgMTkuMjI5NCA1LjQzNjg3VjUuNDM2OTlaTTE3Ljg5NTEgNy4yMDI4NUMyMy45MDU5IDExLjczMzcgMjIuNzUyNCAyMS4wNjUgMTUuODE4OSAyMy45OTk0QzEyLjYwMTQgMjUuMzYxMyA4LjkwMDYxIDI0LjkwNDkgNi4xMTExMSAyMi44MDJDMC4xMDA2NDYgMTguMjcxIDEuMjUzOTMgOC45Mzk3MSA4LjE4NzM2IDYuMDA1NDNDMTEuNDA1IDQuNjQzNzcgMTUuMTA1NyA1LjEwMDA2IDE3Ljg5NTEgNy4yMDI4NVoiIGZpbGw9IiNGMDJFNjUiLz4KPHBhdGggZD0iTTQ4LjUxMzIgNi43ODUzNEM1MC4xMzcxIDYuNzg1MzQgNTEuNTIxMyA3LjE5NTI5IDUyLjY2NTkgOC4wMTU2NkM1My44MTA0IDguODM2MTQgNTQuNTk3NCA5LjkyMzU0IDU1LjAyNyAxMS4yNzc5VjYuOTgzODhINTcuMDUzMlYyMi42MTQ0SDU1LjAyN1YxOC4zMjA2QzU0LjU5NzQgMTkuNjc2MiA1My44MTA0IDIwLjc2NDEgNTIuNjY1OSAyMS41ODQ1QzUxLjUyMTMgMjIuNDA1IDUwLjEzNzEgMjIuODE1MSA0OC41MTMyIDIyLjgxNTFDNDcuMDY1NCAyMi44MTUxIDQ1Ljc2OTIgMjIuNDkwNiA0NC42MjQ2IDIxLjg0MTlDNDMuNDgwMSAyMS4xOTMzIDQyLjU5IDIwLjI2MjggNDEuOTU0IDE5LjA1MDVDNDEuMzE4MiAxNy44MzgyIDQxIDE2LjQyMTEgNDEgMTQuNzk5MUM0MSAxMy4xNTg0IDQxLjMxODIgMTEuNzMyIDQxLjk1NCAxMC41MTk2QzQyLjU5IDkuMzA4NTYgNDMuNDc1MiA4LjM4MzUzIDQ0LjYxMDEgNy43NDM5OEM0NS43NDQ4IDcuMTA0NjUgNDcuMDQ1OCA2Ljc4NTM0IDQ4LjUxMzIgNi43ODUzNFpNNDkuMDQxMiA4LjU1OTEzQzQ3LjI0MTMgOC41NTkxMyA0NS43OTgzIDkuMTE3MiA0NC43MTE5IDEwLjIzMzhDNDMuNjI2OSAxMS4zNTAzIDQzLjA4NDQgMTIuODcyMSA0My4wODQ0IDE0Ljc5OTFDNDMuMDg0NCAxNi43MjY1IDQzLjYyNjkgMTguMjQ4NCA0NC43MTE5IDE5LjM2NDlDNDUuNzk4MyAyMC40ODEyIDQ3LjI0MTMgMjEuMDM5MyA0OS4wNDEyIDIxLjAzOTNDNTAuMTc1OSAyMS4wMzkzIDUxLjE5ODEgMjAuNzgyIDUyLjEwNzEgMjAuMjY2OEM1My4wMTcxIDE5Ljc1MiA1My43MzE0IDE5LjAyMiA1NC4yNDk4IDE4LjA3NzJDNTQuNzY4IDE3LjEzMjUgNTUuMDI3IDE2LjA0IDU1LjAyNyAxNC43OTkxQzU1LjAyNyAxMy41NTg1IDU0Ljc2OCAxMi40NjY2IDU0LjI0OTggMTEuNTIyOEM1My43MzE0IDEwLjU3ODQgNTMuMDE3MSA5Ljg0NzYyIDUyLjEwNzEgOS4zMzE4NUM1MS4xOTgxIDguODE2NjYgNTAuMTc1OSA4LjU1OTEzIDQ5LjA0MTIgOC41NTkxM1pNNzAuMDgyMiA2Ljc4NTM0QzcxLjU0OTYgNi43ODUzNCA3Mi44NDU4IDcuMTA0NjUgNzMuOTcwNyA3Ljc0Mzk4Qzc1LjA5NTggOC4zODM1MyA3NS45NzY0IDkuMzA4NTYgNzYuNjEyNCAxMC41MTk2Qzc3LjI0ODIgMTEuNzMyIDc3LjU2NjIgMTMuMTU4NCA3Ny41NjYyIDE0Ljc5OTFDNzcuNTY2MiAxNi40MjExIDc3LjI0ODIgMTcuODM4MiA3Ni42MTI0IDE5LjA1MDVDNzUuOTc2NCAyMC4yNjI4IDc1LjA5MDYgMjEuMTkzMyA3My45NTYzIDIxLjg0MTlDNzIuODIxNiAyMi40OTA2IDcxLjUzMDEgMjIuODE1MSA3MC4wODIyIDIyLjgxNTFDNjguNDM4NyAyMi44MTUxIDY3LjA0OTggMjIuNDA1IDY1LjkxNSAyMS41ODQ1QzY0Ljc4MDIgMjAuNzY0MSA2My45OTc5IDE5LjY3NjIgNjMuNTY4MSAxOC4zMjA2VjMwSDYxLjUxMjlWNi45ODM4OEg2My41NjgxVjExLjI3NzlDNjMuOTk3OSA5LjkyMzU0IDY0Ljc4MDIgOC44MzYxNCA2NS45MTUgOC4wMTU2NkM2Ny4wNDk4IDcuMTk1MjkgNjguNDM4NyA2Ljc4NTM0IDcwLjA4MjIgNi43ODUzNFpNNjkuNTI1IDguNTU5MTNDNjguMzkwMiA4LjU1OTEzIDY3LjM2NzcgOC44MTY2NiA2Ni40NTc0IDkuMzMxODVDNjUuNTQ4NCA5Ljg0NzYyIDY0LjgzOTUgMTAuNTc4NCA2NC4zMzExIDExLjUyMjhDNjMuODIyNyAxMi40NjY2IDYzLjU2ODEgMTMuNTU4NSA2My41NjgxIDE0Ljc5OTFDNjMuNTY4MSAxNi4wNCA2My44