OAuth Bridge

progrok is built around one idea: your xAI OAuth session is already the account authority for Grok. progrok activates that session as a local tool surface so SDKs, CLI workflows, and agent tools can call Grok without each integration having to implement OAuth, token refresh, model routing, and media polling on its own.

Positioning

progrok is not a separate model host, an API-key reseller, or a bypass. It is a local OAuth bridge. It signs in with your xAI account, stores the refreshable token locally, and uses that token to enable Grok access through familiar developer surfaces.

Why OAuth first

The practical problem is not just calling one endpoint. A real developer setup needs chat, Responses, reasoning, web search, X search, coding models, image jobs, video jobs, model discovery, status checks, and scriptable metadata. API keys are convenient for servers, but many Grok workflows are tied to the same xAI account session used by Grok web and related developer tools. progrok keeps that account session local and turns it into a stable operating surface.

Account authority

Your xAI account and subscription decide what you can access.

Local credential

The refreshable OAuth session is stored at ~/.progrok/auth.json.

Tool activation

progrok exposes proxy, search, media, model, and capability commands.

Client compatibility

OpenAI-compatible clients keep using base_url and a placeholder key.

Shared token lineage

progrok uses the shared xAI OAuth client identifier documented by Hermes Agent and OpenClaw. The same OAuth lineage matters because Hermes, OpenClaw, and Grok Build-style coding workflows are all trying to solve the same operational problem: unlock Grok through an authenticated xAI account session, then make it usable from tools that expect a normal programmable endpoint.

That is why progrok is intentionally small and local. It does not ask every client to understand xAI browser login. It performs the login once, refreshes the bearer token when needed, and injects that credential at the boundary where OpenAI-compatible clients send requests.

Request path

OpenAI SDK / agent tool / curl
  -> http://127.0.0.1:18645/v1/*
  -> progrok loads or refreshes ~/.progrok/auth.json
  -> progrok replaces the placeholder Authorization header
  -> https://api.x.ai/v1/*
  -> response returns to the original client

Direct command path

Some tasks are awkward through a generic proxy because they need polling, output files, source selection, or model-specific request shapes. progrok also ships direct commands that use the same OAuth credential without requiring the proxy process to be running.

CommandWhat it activatesWhy it exists
progrok searchResponses with web and X toolsOne command for current research, citations, JSON, and reasoning effort.
progrok imageImagine image generation/editingHandles reference files, output folders, and result extraction.
progrok videoImagine video jobsSubmits async jobs, polls status, and downloads completed files.
progrok modelsLive model catalogShows aliases, model purpose, context, and cost assumptions before automation.
progrok capabilitiesMachine-readable metadataLets agents discover ports, commands, models, and supported workflows.

What it does not do

  • It does not bypass xAI access, quotas, subscriptions, pricing, or product limits.
  • It does not make remote callers safe automatically; the proxy binds to localhost by default for a reason.
  • It does not turn OAuth into a permanent API key. Tokens expire and are refreshed through the stored session.
  • It does not proxy WebSocket realtime streams directly; use HTTP client-secret minting where available.

When to use progrok

Use progrok when you want Grok available inside an existing developer workflow: an OpenAI-compatible SDK, a local agent runner, a coding CLI, a research script, or an automation pipeline that can point at a local base URL. Login once, activate the local tool surface, and then let the rest of your stack talk to Grok through standard HTTP shapes.