
Godyl
Asset downloader for GitHub releases, GitLab release, URLs, and Go projects.
Get started now View it on GitHub

What is Godyl?
godyl aims to help with batch-downloading from:
- GitHub releases
- GitLab releases
- URLs
- Go projects
Furthermore, custom commands can be used.
godyl uses simple heuristics to select the correct binary to download, matching the current platform and architecture.
Most properties can be overridden, with hints and skip used to help the tool make the correct decision.
godyl has been tested on:
- Linux:
amd64,arm64 - Windows:
amd64 - MacOS:
arm64
for the tools listed in the default tools.yml file.
Note: You’ll have a very short journey with this tool without a GitHub API token. To avoid rate limiting when using
githubas a source type, set up an API token and use it with the--github-tokenflag or theGODYL_GITHUB_TOKENenvironment variable. See Authentication for more details. By not using a token,godylwill attempt to use the unauthenticated web API firstly, which might lead to rate limiting / blocking if you make too many requests in a short time. As such, the parallelism is set to1by default when no token is provided.
Tool is inspired by task, dra and ansible
Getting Started
Quick Installation
curl -sSL https://raw.githubusercontent.com/idelchi/godyl/refs/heads/main/install.sh | sh -s -- -d ~/.local/bin
Basic Usage
Export the GODYL_GITHUB_TOKEN environment variable with your GitHub API token:
export GODYL_GITHUB_TOKEN=<your_github_token>
Download (and extract) a single tool:
godyl download idelchi/envprof
Create a tools.yml file to define multiple tools:
- name: syncthing/syncthing
tags:
- sync
- name: helm/helm
url: https://get.helm.sh/helm-{{ .Version }}-{{ .OS }}-{{ .ARCH }}.tar.gz
checksum:
type: file
value: "{{ .URL }}.sha256sum"
tags:
- kubernetes
Then install them all at once:
godyl install tools.yml
To periodically update/sync, run above command with the --strategy flag:
godyl install tools.yml --strategy=sync
to bring down the latest version, if the current one is out of date.
For a sample, see tools.yml or run godyl dump tools -e > tools.yml to inspect the default configuration.
Note: Tool is currently in development, and the code-base is rather chaotic, until it is cleaned up.