Requirements
Thegrok 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 throughgrok 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:
--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.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.
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 viaGROK_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.