Prerequisites
Gurl requires no runtime dependencies — it ships as a single static binary. Go is only needed if you are building from source (Go 1.25.0+, with Go 1.26.3 recommended as the development toolchain).
Homebrew (macOS / Linux)
brew tap bsreeram08/gurl https://github.com/bsreeram08/gurl
brew install gurl
Update with:
brew upgrade gurl
One-liner Install
curl -sL https://raw.githubusercontent.com/bsreeram08/gurl/master/scripts/install.sh | bash
This detects your platform, downloads the correct binary from the latest release, and installs it to /usr/local/bin.
Container Image
docker run --rm ghcr.io/bsreeram08/gurl:latest --version
docker run --rm -v "$PWD:/work" -w /work ghcr.io/bsreeram08/gurl:latest list
Use a version tag for reproducible runs:
docker run --rm ghcr.io/bsreeram08/gurl:v0.4.0 --version
Public GHCR packages can be pulled without authentication. If GitHub still shows the package as private, log in first with a token that has read:packages:
echo "$GHCR_TOKEN" | docker login ghcr.io -u "$GITHUB_USER" --password-stdin
To keep gurl’s local database, project files, and encrypted key material across container runs, mount the relevant host directories:
docker run --rm \
-v "$PWD:/work" \
-v "$HOME/.local/share/gurl:/home/gurl/.local/share/gurl" \
-v "$HOME/.config/gurl:/home/gurl/.config/gurl" \
-w /work \
ghcr.io/bsreeram08/gurl:latest list
Pre-built Binaries
Download directly from GitHub Releases:
macOS (Apple Silicon)
curl -LO https://github.com/bsreeram08/gurl/releases/latest/download/gurl-darwin-arm64.tar.gz
tar -xzf gurl-darwin-arm64.tar.gz
sudo mv gurl /usr/local/bin/gurl
Linux (x86_64)
curl -LO https://github.com/bsreeram08/gurl/releases/latest/download/gurl-linux-amd64.tar.gz
tar -xzf gurl-linux-amd64.tar.gz
sudo mv gurl /usr/local/bin/gurl
Linux (ARM64)
curl -LO https://github.com/bsreeram08/gurl/releases/latest/download/gurl-linux-arm64.tar.gz
tar -xzf gurl-linux-arm64.tar.gz
sudo mv gurl /usr/local/bin/gurl
Install via Go
For users with Go 1.25.0+ installed:
go install github.com/sreeram/gurl/cmd/gurl@latest
This installs the gurl binary to $GOPATH/bin or $HOME/go/bin.
Build from Source
git clone https://github.com/bsreeram08/gurl.git
cd gurl
go build -o gurl ./cmd/gurl
sudo mv gurl /usr/local/bin/gurl
Shell Completion
Enable tab completion for faster command entry.
Bash
Add to your ~/.bashrc:
source <(gurl completion bash)
Zsh
Add to your ~/.zshrc:
source <(gurl completion zsh)
Fish
Add to your ~/.config/fish/config.fish:
gurl completion fish | source
First-run Setup
On first launch, Gurl creates the local data directory:
~/.local/share/gurl/
This stores:
gurl.db— Request collections, environments, and history (LevelDB)plugins/— Custom middleware and formatters
Configuration is loaded from the first file found in this order:
- Path set in
$GURL_CONFIG_PATH .gurlrc(current directory)~/.gurlrc~/.config/gurl/config.toml
Example config file:
[general]
history_depth = 100
auto_template = true
timeout = "30s"
[output]
default_format = "auto"
syntax_highlight = true
json_pretty = true
Verify Installation
gurl --version
You should see the version number and build information.
Update
Gurl can self-update to the latest release:
gurl update
The updater checks the latest release metadata and picks the matching macOS or Linux asset for your CPU architecture. Release downloads include raw binaries, tarballs, and SHA256SUMS.
Next Steps
Continue to the Quick Start guide to save and run your first request.