Skip to main content
Continuum integrates Grok (xAI) through the shared harness, over whichever transport the installed CLI supports.

Requirements

The grok CLI must be installed and signed in. Continuum resolves grok on your PATH; if it is missing, Settings → Providers → Grok points you to x.ai, and the sign-in action runs grok login --oauth in an embedded terminal. Auth is managed by the grok binary itself, so “installed” on the Providers screen means the binary is on PATH, not proof of a live login.

How it integrates

Grok 0.2.101 and later speak ACP through grok agent stdio. Continuum probes for that capability once per binary (cached on path, size, and mtime) and prefers it when present — ACP carries tool calls and structured messages, not just text. When the installed CLI doesn’t advertise ACP, Continuum falls back to a headless one-shot transport, spawning a process per turn:
It parses the resulting NDJSON stream into harness events, so chat, reasoning (“Thinking”) rows, turn state, and completion render like the other harness backends. Multi-turn sessions use --continue, which resumes the most recent grok session for that working directory; because each session has its own cwd, turns chain correctly. On this path the flag values are passed in --flag=value form so a value that looks like a flag can’t be parsed as one. Send, interrupt, and provider selection flow through the same daemon endpoints as Claude and Codex. Grok is a non-Anthropic agent, so Continuum strips Anthropic and Claude credentials from its environment before launch — your Claude token never reaches it. Grok sessions appear in the Code tab session list and workbench, and in the Usage tab gauge and token history.

Models

Continuum bundles three Grok models: These ids go to the CLI’s --model flag. On the ACP path, the model is passed at launch — Grok takes model and effort only when the agent starts, so changing either mid-session respawns the harness bridge.

Effort

Grok supports a reasoning-effort control, but a narrower one than Claude or Codex: the dial offers Low, Medium, and High only, passed to --reasoning-effort.
This is not a Continuum limitation. Verified against grok 0.2.102, grok-4.5 accepts exactly those three; minimal, xhigh, and max all hard-reject with “unknown effort level … use one of: high, medium, low” and the turn produces nothing at all. A value carried over from another provider is clamped at the spawn boundary — minimal folds up to low, and xhigh / max / the Claude-only Ultracode fold down to high — so the binary never sees a value it would reject.
Because the dial’s top rung for Grok is High, a session that has never had an explicit effort picked shows High rather than a misleading Medium.

Usage and limits

The Usage tab shows Grok’s live account limit and your token history. The gauge reads the same weekly credits endpoint grok.com itself uses (grok.com/grok_api_v2.GrokBuildBilling/GetGrokCreditsConfig), authenticated with the OIDC bearer the CLI stores in ~/.grok/auth.json. It returns a credit-usage percentage and a typed current period.
xAI moved paid accounts to one shared weekly pool in June 2026. The older CLI proxy route (cli-chat-proxy.grok.com/v1/billing) still answers, but with a monthly Extra Usage Credits envelope — reading its reset as the weekly reset is what used to make the Usage card show countdowns like 22 days. Continuum no longer uses it for the gauge.
Historical token analytics come from a separate locally-recorded ledger, kept independent of the live percentage.

Multiple accounts

Additional Grok accounts get an isolated config root via GROK_HOME, plus an explicit GROK_API_KEY at spawn. The live gauge reads the auth file of the signed-in CLI, so secondary accounts don’t get independent quota readings.

Broadcast

Grok can participate in the Chat surface’s multi-provider broadcast mode — one prompt to several providers, answers side by side.
The Chat tab is hidden by default across every client while the product is focused on Code, so broadcast is not reachable from the default UI. See Chat.