Skip to content

browserhttp

Pure-Go http.Client presenting a Chrome TLS fingerprint via uTLS. CGO=0.

A drop-in http.Client whose TLS ClientHello matches a real Chrome build, so endpoints that gate on the TLS fingerprint let it through. It pairs the uTLS handshake with a browser User-Agent and a warmed cookie jar.

Highlights

  • CGO_ENABLED=0, no host web view and no headless browser.
  • Real Chrome TLS fingerprint (ciphers, extensions, curves) via uTLS.
  • Browser User-Agent and a warmed cookie jar out of the box.
  • Identical behaviour on macOS, Linux and Windows.
  • Extracted from go-news-reader/reader; reusable by any browser-shaped fetcher.

Example

c := browserhttp.NewClient(30 * time.Second)
resp, err := c.Get("https://www.reddit.com/r/golang/hot.json")

Install

go get github.com/go-browserhttp/browserhttp

Requires Go 1.26 or newer.