A task automation library for Go, designed as a portable alternative to Make, Mage, and Task.
goyek is a task automation library written in Go that enables developers to define and execute automated workflows, such as build pipelines, deployment scripts, and operational tasks. It solves the problem of relying on external DSLs or shell-dependent tools by allowing task logic to be written entirely in Go, making it portable and easy to debug.
Go developers and teams who need a maintainable, cross-platform solution for automating build, deployment, or operational tasks within their projects.
Developers choose goyek because it provides a familiar Go API, requires no additional binary installation, and integrates seamlessly with existing Go tooling, offering a more debuggable and reusable alternative to traditional task runners like Make or Mage.
Task automation Go library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tasks are defined as Go functions, allowing full use of Go's testing tools, IDE refactoring, and standard debugging workflows, as highlighted in the rationale.
Runs cross-platform without shell dependencies, ensuring tasks behave consistently on Linux, macOS, and Windows, per the cross-platform feature.
Executed via 'go run', eliminating the need to install and version a separate task runner CLI, a key selling point in the description.
Explicit dependencies and middleware support enable clean composition of tasks, making complex workflows maintainable, as shown in best practices.
Non-Go developers cannot easily contribute to or understand the build logic, limiting team accessibility and adding a learning barrier outside Go shops.
Compared to established tools like Make, goyek has fewer community-contributed plugins, integrations, and examples, which can increase development overhead.
Defining tasks in Go code requires more boilerplate than declarative alternatives, such as YAML in Taskfile, and can be verbose for simple scripts.
Requires creating and maintaining a dedicated build directory with Go modules, which adds complexity compared to drop-in files like Makefile.
goyek is an open-source alternative to the following products:
Make (or GNU Make) is a build automation tool that automatically builds executable programs and libraries from source code by reading Makefiles.
Task is a task runner and build tool written in Go, designed to be simpler than alternatives like Make.
Mage is a build tool written in Go that uses Go syntax for defining tasks, similar to Make but with better dependency management.