Skip to main content

Installation

Task offers many installation methods. Check out the available methods below.

info

Some of the methods below are marked as Community. This means they are not maintained by the Task team and may not be up-to-date.

Package Managers​

Homebrew ​

Task is available via our official Homebrew tap [source]:

brew install go-task/tap/go-task

Alternatively it can be installed from the official Homebrew repository [package] [source] by running:

brew install go-task

Snap ​

Task is available on Snapcraft [source], but keep in mind that your Linux distribution should allow classic confinement for Snaps to Task work correctly:

sudo snap install task --classic

npm ​

Npm can be used as cross-platform way to install Task globally or as a dependency of your project [package] [source]:

npm install -g @go-task/cli

pip ​

Like npm, pip can be used as a cross-platform way to install Task [package] [source]:

pip install go-task-bin

WinGet ​

Task is available via the community repository [source]:

winget install Task.Task

Chocolatey ​

[package] [source]

choco install go-task

Scoop ​

[source]

scoop install task

Arch (pacman) ​

[package] [source]

pacman -S go-task

Fedora (dnf) ​

[package] [source]

dnf install go-task

NixOS (nix) ​

[source]

nix-env -iA nixpkgs.go-task

pacstall ​

[package] [source]

pacstall -I go-task-deb

pkgx ​

[package] [source]

pkgx task

or, if you have pkgx integration enabled:

task

Get The Binary​

Binary​

You can download the binary from the releases page on GitHub and add to your $PATH.

DEB and RPM packages are also available.

The task_checksums.txt file contains the SHA-256 checksum for each file.

Install Script​

We also have an install script which is very useful in scenarios like CI. Many thanks to GoDownloader for enabling the easy generation of this script.

By default, it installs on the ./bin directory relative to the working directory:

sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d

It is possible to override the installation directory with the -b parameter. On Linux, common choices are ~/.local/bin and ~/bin to install for the current user or /usr/local/bin to install for all users:

sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin
caution

On macOS and Windows, ~/.local/bin and ~/bin are not added to $PATH by default.

By default, it installs the latest version available. You can also specify a tag (available in releases) to install a specific version:

sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d v3.36.0

GitHub Actions​

If you want to install Task in GitHub Actions you can try using this action by the Arduino team:

- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}

This installation method is community owned.

Build From Source​

Go Modules​

Ensure that you have a supported version of Go properly installed and setup. You can find the minimum required version of Go in the go.mod file.

You can then install the latest release globally by running:

go install github.com/go-task/task/v3/cmd/task@latest

Or you can install into another directory:

env GOBIN=/bin go install github.com/go-task/task/v3/cmd/task@latest
tip

For CI environments we recommend using the install script instead, which is faster and more stable, since it'll just download the latest released binary.

Setup completions​

Some installation methods will automatically install completions too, but if this isn't working for you or your chosen method doesn't include them, you can run task --completion <shell> to output a completion script for any supported shell. There are a couple of ways these completions can be added to your shell config:

This method loads the completion script from the currently installed version of task every time you create a new shell. This ensures that your completions are always up-to-date.

~/.bashrc
eval "$(task --completion bash)"

Option 2. Copy the script to your shell's completions directory​

This method requires you to manually update the completions whenever Task is updated. However, it is useful if you want to modify the completions yourself.

task --completion bash > /etc/bash_completion.d/task