# Task

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

Stars: 16.3k · Language: Go · License: MIT · Categories: Dev Tools

- Repository: https://github.com/go-task/task
- Website: https://taskfile.dev
- Page: https://www.trmn.sh/tools/go-task

## Overview

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

- [kubectx](https://www.trmn.sh/tools/kubectx.md): CLI tools to quickly switch between Kubernetes contexts and namespaces with fuzzy search support (Go, 20.1k stars)
- [ipatool](https://www.trmn.sh/tools/ipatool.md): CLI for searching the App Store for iOS, iPadOS, tvOS, visionOS and macOS apps and downloading .ipa or macOS .pkg packages. (Go, 12.0k stars)
- [VHS](https://www.trmn.sh/tools/vhs.md): Generate terminal GIFs from code scripts for testing and demonstrating CLI tools (Go, 21.2k stars)
- [Terragrunt](https://www.trmn.sh/tools/terragrunt.md): Orchestration tool for OpenTofu/Terraform infrastructure code, used to scale and manage Infrastructure as Code across many modules and environments. (Go, 9.9k stars)
- [reviewdog](https://www.trmn.sh/tools/reviewdog.md): Parses linter output and posts findings in changed lines as review comments on GitHub, GitLab, and Bitbucket, or filters lint results by diff locally. (Go, 9.7k stars)

---

Canonical: https://www.trmn.sh/tools/go-task
