Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save steinwaywhw/a4cd19cda655b8249d908261a62687f8 to your computer and use it in GitHub Desktop.

Select an option

Save steinwaywhw/a4cd19cda655b8249d908261a62687f8 to your computer and use it in GitHub Desktop.
One Liner to Download the Latest Release from Github Repo
  • Use curl to get the JSON response for the latest release
  • Use grep to find the line containing file URL
  • Use cut and tr to extract the URL
  • Use wget to download it
curl -s https://api.github.com/repos/jgm/pandoc/releases/latest \
| grep "browser_download_url.*deb" \
| cut -d : -f 2,3 \
| tr -d \" \
| wget -qi -
@flatsiedatsie
Copy link

flatsiedatsie commented Jan 22, 2026

/latest did not contain a browser_download_url for me, so I had to go a different route:

curl -s https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest \
| grep  -m 1 '"url":' | cut -d : -f 2,3 | tr -d \" | sed 's/,*$//g' \
| xargs -n1 curl -s | grep tarball_url | cut -d : -f 2,3 | tr -d \" | sed 's/,*$//g' \
| xargs -n1 curl -L -o "latest_z2m.tar.gz"
  1. download the latest json, and from that get the url of the actual latest release json
  2. download the release json which does have a download url, called 'tarball_url'
  3. download the tarball_url

In the first two steps the url is extracted from the json line by cleaning it up with grep, cut, and sed.
xargs strips the space and feeds the extracted clean URL to curl again.
The final curl also sets the desired filename for the latest release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment