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:

  1. Path set in $GURL_CONFIG_PATH
  2. .gurlrc (current directory)
  3. ~/.gurlrc
  4. ~/.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.