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 -
@antofthy
Copy link

antofthy commented Jan 16, 2026

@eabase
sed is not implemented equally across platforms (x-platform = "cross platform")...
It also depends on your bash and sh options via (set, shopt)...

First I ever heard of bash and sh options effecting any command that isn't a builtin to bash and sh (apart from command parsing that is). I'm pretty good with shell (35+ years experience)... Please enlighten!

@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