GURL is a lightweight command-line HTTP client with no external dependencies. It’s perfect for both modern and old systems, running smoothly without OpenSSL or other libraries. Whether you’re on a cutting-edge Linux server or ancient hardware, GURL just works.
You can download GURL using curl (no HTTPS required) for your platform. Replace <ARCHIVE_URL> with the appropriate link for your operating system and architecture from the table below:
sudo curl -L http://files.zabiyaka.net/gurl/latest/<PLATFORM>/<ARCH>/gurl -o /usr/local/bin/gurl; 
sudo chmod +x /usr/local/bin/gurl;Replace <PLATFORM> and <ARCH> with your system’s name and architecture.
Here’s the updated table with all links properly included for each platform and sorted by popularity. Each section references the full file paths provided.
| Operating System | Architectures and Download Links | 
|---|---|
| amd64 386 arm arm64 loong64 mips mipsle mips64 mips64le ppc64 ppc64le riscv64 s390x | |
| amd64 386 arm arm64 | |
| amd64 arm64 | |
| arm64 | |
| amd64 386 arm arm64 riscv64 | |
| OpenBSD | amd64 386 arm arm64 ppc64 riscv64 | 
| amd64 386 arm arm64 | |
| Solaris | amd64 | 
| Plan 9 | amd64 386 arm | 
| Illumos | amd64 | 
| DragonFlyBSD | amd64 | 
| AIX | ppc64 | 
| Wasm | js/wasm | 
| Wasi | wasip1 | 
Note: Replace
/usr/local/binwith an appropriate directory for your system if you lack permissions.
- 
Download and Install for Linux x86_64: sudo curl -L http://files.zabiyaka.net/gurl/latest/linux/amd64/gurl -o /usr/local/bin/gurl; sudo chmod +x /usr/local/bin/gurl; 
- 
Download and Install for Windows (PowerShell): Invoke-WebRequest -Uri http://files.zabiyaka.net/gurl/latest/windows/amd64/gurl.exe -OutFile gurl.exe 
GURL supports clear and descriptive options to make usage intuitive. Here are practical examples:
gurl example.comSends a simple GET request and outputs the response to the terminal.
gurl --output output.txt http://example.comThe --output option saves the response body to output.txt instead of displaying it in the terminal.
gurl --request POST --data "key=value&key2=value2" http://example.comSends a POST request with form data using --data and explicitly sets the HTTP method with --request.
gurl --form "key=value" --form "file=@/path/to/file" http://example.comUploads both text fields and files using the --form option. Use key=@/path/to/file to upload files.
gurl --header "Authorization: Bearer TOKEN" --header "Content-Type: application/json" http://example.comUse --header to include custom headers in the request.
gurl --cookie "session_id=abc123; user=example" http://example.comThe --cookie option sends cookies with the request.
gurl --fail http://example.com/404If an HTTP error (4xx or 5xx) is returned, GURL exits with a non-zero error code and suppresses the response body.
gurl --head http://example.comThe --head option retrieves only the response headers.
gurl --useragent "CustomUserAgent/1.0" http://example.comThe --useragent option specifies a custom User-Agent header.
gurl --timeout 10s http://example.comThe --timeout option sets the maximum time GURL will wait for a response (e.g., 10s, 1m).
gurl http://example.com/file.txt --output file.txtWhen using --output to save a file, GURL automatically displays a download progress bar.
gurl --silent http://example.com > output.htmlThe --silent option suppresses all output, including progress and headers, for clean scripting.
gurl --request POST --header "Content-Type: application/json" --data '{"key":"value"}' http://example.comCombines --header for content type and --data for JSON payload.
gurl --verbose http://example.comThe --verbose option prints detailed request and response information, useful for debugging.
gurl --timeout 5s --fail http://example.comCombines --timeout for a 5-second limit and --fail to exit silently on HTTP errors.
