github.devotd.
NewOther

azrinaldi/gemini-stealth-bridge — exposing Gemini Web as an API with uTLS

Covers the Go project azrinaldi/gemini-stealth-bridge, which exposes Gemini Web as an OpenAI-compatible API with uTLS and HTTP/2 instead of headless Chrome, along with its latest release v0.3.0.

Repositoryazrinaldi/gemini-stealth-bridge ↗

Covers the Go project azrinaldi/gemini-stealth-bridge, which exposes Gemini Web as an OpenAI-compatible API with uTLS and HTTP/2 instead of headless Chrome, along with its latest release v0.3.0.

GitHub description: Browserless Chrome uTLS + HTTP/2 OpenAI-compatible API daemon for Google Gemini Web (/v1/chat/completions & /v1/responses)

stars
★ 98
Forks
10
Language
Go
License
MIT
Latest release
v0.4.0
Read original source ↗View on GitHub ↗

azrinaldi/gemini-stealth-bridge is a Go project that exposes Google Gemini, the model used on the web, through an OpenAI-compatible API server. It was created on October 16, 2026, and instead of headless Chrome (a browser that runs without a screen) it uses uTLS (an approach that mimics a browser's TLS fingerprint). It communicates over HTTP/2 and opens the Chat Completions (/v1/chat/completions) and Responses (/v1/responses) endpoints. The latest release tag is v0.3.0, and no changes included in that release are given. The license is MIT, and it has 97 stars.

The bridge converts OpenAI-format messages, images, and tool definitions into Gemini Web requests and sends them, authenticating with Google session cookies. Responses come back as JSON or Server-Sent Events (SSE, a format where the server pushes line by line without closing the connection). Because it uses a web subscription session as an API without a headless browser, it is a reference case for the uTLS bridge pattern.

However, the purpose of uTLS fingerprint disguise is close to circumventing service terms, which creates a structural risk to its sustainability. The README lists the internal package composition (transport, cookies, gemini, server, toolbridge, config, prompt) and the go test -race command, but no test files, benchmarks, or success-rate figures are published, so the depth of the implementation is hard to verify. The RSS 20MB versus 600~800MB comparison remains a self-measured claim from an attempt to reduce memory use. The evaluation scores are 7.0 for freshness, 6.0 for technology, 5.0 for quality, and 2.9 for momentum (out of 10). With verification material in short supply, it is worth withholding judgment before putting it into real service.