Task logo

Task

Task runner and build tool that reads tasks from a YAML Taskfile, a simpler cross-platform alternative to Make.

Task is a task runner and build tool written in Go. Tasks are defined in a Taskfile.yml in the project root and run with task <name>, which makes it a simpler alternative to Make for scripting builds, tests and other repeatable project commands.

Each task lists the commands to run in cmds, and can declare dependencies with deps, which run before the task and in parallel with each other. Variables and environment variables can be set globally or per task, and other Taskfiles can be included to split up large projects. Running task --list shows tasks that have descriptions.

Task can skip work that is already done. With sources and generates, it compares file checksums or timestamps and only runs a task when its inputs changed. A status block can also mark a task as up to date. Watch mode (--watch) reruns a task when its source files change.

It ships as a single binary and runs on Linux, macOS and Windows. Commands are run through a built-in shell interpreter, so the same Taskfile works without bash on Windows. Full documentation, including the Taskfile schema, is at taskfile.dev.

Alternatives & related tools

add a badge to your README

Maintain Task? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/go-task.svg)](https://www.trmn.sh/tools/go-task?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/go-task?utm_source=badge"><img src="https://www.trmn.sh/badge/go-task.svg" alt="Featured on trmn" height="20"></a>