Profiles / xAI

Grok Build

xAI's terminal agent; stable 1.0.52 documents a fix for HTTP MCP actions that could repeat after a JSON-RPC error.

Edited by Michael Ruescher / reviewed 2026-10-13

Operator Stance / as of 2026-10-13

Use it for
Bounded trials of stable 1.0.52's headless goals and same-session edit coordination.
Avoid it for
Valuable unattended work before checking the version, sandbox, hook and worktree boundaries.
Watch next
Proof that the installed binary enforces its documented sandbox and worker limits.

Where it stands, 2026-10-13

In stable 1.0.52, xAI documents a fix for repeated HTTP MCP execution after a JSON-RPC error. A failed reply could leave you checking whether an action happened twice. Take the fix, then hold the version and choose a sandbox before delegating valuable work. Test an error after an action. Keep service-side idempotency keys and action records across other failures.

Before unattended use, complete the permission, sandbox and worktree checks.

Install with npm i -g @xai-official/grok@1.0.52; the registry publishes package integrity metadata and exact platform-package versions. Record the version and platform-package digest. On Windows, check the client index for the WinGet 1.0.52 manifest merged on 13 October 2026. Read the external per-version notes, including cumulative blocks, before upgrading.

Set permissions and sandbox limits before delegating

Verify the updater hold. An install.sh version argument leaves automatic updates enabled if already enabled. Run grok update --version 1.0.52, then verify [cli] auto_update = false and grok --version. For one run, --no-auto-update or GROK_DISABLE_AUTOUPDATER=1 opts out.

Updater source passage

The Headless Mode and Scripting guide in 1.0.52, “Update Check Suppression” at byte offset 2340884, lists the flag as a session opt-out, the environment variable as a process opt-out, and the config setting as persistent. These are documented controls; inspect the saved setting and installed version after applying them.

All byte offsets in these notes are zero-based and refer to the same pinned Linux x86_64 artifact, generation 1791762841427964. They locate text in the file, not instructions to run it. Passage summaries are paraphrases except where explicitly quoted.

Recheck earlier approvals after upgrading. Stable includes xAI’s documented fixes for fake MCP option rows, stray-key approvals and tool access to the approval terminal. 1.0.49 narrowed shell “Allow once” from the session to the next command. Review affected action records and test your approval modes.

Check a fork’s pwd before writing. Stable carries worktree ownership and deletion repairs and preserves old contents on failed writes. The fix for forked sessions running shell commands in the original checkout is documented in non-stable 1.0.54, covering grok -w -r or /fork into a worktree. Avoid that path for valuable work until the fix reaches stable, or confirm the command directory before writes. Test enterprise 1.0.53 separately.

Select a sandbox and deny the secrets it can still read. The Sandbox Mode guide embedded in 1.0.52 says sandboxing starts off and strict permits workspace reads. Use custom sandbox file denies for workspace secrets.

The guide says Grok-owned config and hook write protection covers workspace, read-only, strict and derivatives, excluding devbox; descendant package hook folders are outside that protection. Inspect those folders after runs. Include the documented daemon-backed strict write allowance at ~/.grok/daemon/run/strict when auditing writable state. The guide says child-network blocking is Linux-only.

Sandbox source passages

The Sandbox Mode section in the pinned 1.0.52 artifact starts at byte offset 2412062. Exact excerpts:

  • At byte offset 2412324: “Sandbox mode is off by default.”
  • At byte offset 2415680: “The agent can read the current working directory, essential system paths, and ~/.grok.”

Other passages in the same section:

  • “Built-in Profiles”, byte offset 2412748: the table and its footnotes limit child-network blocking to Linux and describe a custom deny list for sensitive files. Strict’s read access includes the workspace.
  • Strict profile paragraph, byte offset 2415606: daemon-backed sessions also write to ~/.grok/daemon/run/strict for sockets, logs and session storage. This allowance depends on that backend running the session.
  • “Direct global write protection”, byte offset 2416091, and the paragraph at 2417898: the protected bases are workspace, read-only and strict, including derivatives. Protection covers the workspace’s project hook folders and ancestors through the repository root. Package folders below the workspace, including worktree-subagent copies, are excluded; devbox is excluded.

These passages describe the shipped guide. Enforcement still needs the tests in What is unresolved.

Retest sensitive-file denies through the repaired routes. Stable includes fixes for Grep, delete-tool denies, including paths with .. or a symlinked working directory, and mentions, images and Auto redirects. Use deny rules in the interactive interface: --tools and --disallowed-tools remain headless-only at 1.0.52.

Interactive tool-filter source passage

The Headless Mode and Scripting guide starts at byte offset 2301134. Its note at 2304956 lists these filters among headless-only flags and says the interactive TUI warns and ignores them.

A refused connection still lets the call through. Localhost HTTP hooks work in 1.0.52, but the shipped guide says refused requests fail open. Test a refused connection on your DNS and proxy route before relying on the hook. Keep an independent boundary for consequential actions.

Hook compatibility and source passages

The Hooks guide in 1.0.52 starts at byte offset 2172942. The guide names SessionStart sources new/load and says Grok does not read native Cursor hook replies. Translate imported matchers and replies, then test successful denies and failures.

Handle breaking changes before upgrading. 1.0.51 removes domain-restricting web-search hook rewrites; its WebFetch domain grants apply to fetching. Before upgrading, replace search-domain rewrite policies, update scripts to handle export/copy refusing existing destinations, and replace CLI/SDK session-sharing steps. Plan mode also refuses MCP resource downloads; move needed downloads to authorized execution. Disable the affected search route until an applicable, tested control replaces the rewrite.

Read grok inspect after policy changes. Invalid shell_environment_policy stops startup; the guide requires the same for unreadable or unparseable requirements. For imported managed-settings JSON, the guide says a deny/ask rule that fails to parse is skipped alone; a non-list deny/ask value or non-string entry suppresses that file’s allow list. Test those cases separately. Set fail_closed = true on signed requirements to prevent an edited file downgrading enforced hooks.

Policy source passages

In the 1.0.52 embedded guides:

  • Hooks, “Enforced hooks”, byte offset 2199281: edited signed requirements or a missing or unreadable signature downgrade their hooks to user hooks. fail_closed = true makes an edited copy or missing signature stop startup. Requirements that cannot be read or parsed stop startup even without that setting.
  • Permissions and safety starts at byte offset 2467622. Its compatibility notes at 2483150 distinguish malformed individual rules from wrong list types or non-string entries in imported managed deny/ask lists. Only the latter also suppress that file’s allow list.

Automate completion waits and coordinate parallel edits

Let grok -p wait for background goals.

Stable adds background-goal waiting in grok -p and working headless --no-subagents. Test --background-wait-timeout in CI, then move review to completed results.

Try same-session parallel edits before building a conflict shim. Tools editing the same file run sequentially while unrelated calls remain concurrent. Keep ownership and isolation across independent processes.

Upgrade compatibility

If you use Jujutsu, test its worktree command compatibility on disposable state first.

What is unresolved

Source passages behind the unresolved tests

In the pinned 1.0.52 artifact:

  • Sandbox Mode, “Direct global write protection”, paragraph at byte offset 2417898, requires startup refusal when the required kernel policy cannot apply. “Platform Support”, at 2427097, instead describes warning and continuing, with an exception for explicitly requested custom profiles. The guide leaves that broader failure behavior conflicted.
  • Permissions and safety, paragraph at 2501389: project permission rules, startup instructions and skills require folder trust. Headless startup with these project sources requires --trust or a prior grant.
  • Configuration reference, cursor_worker heading at 2573107: registration offers the machine to Cursor Cloud Agents. The table sets auto-start and any_repo off by default. The opening paragraph also describes successful startup opening a clone-pool path for Git URLs outside worker_dirs.
  • Worker command messages around 1508236 describe account-link gates. The start-refusal message around 1508900, and the leader-start message at 1528937, say a selected sandbox profile cannot prove confinement of Cloud Agent shell commands and prevents worker startup. These are embedded messages, not an observed startup test.

Review date and evidence cutoff

This profile stops at 2026-10-13. METHOD.md sets out the evidence rules. The evidence record keeps the detailed release and compatibility checks, including ACP’s permission handling.

Revision, 2026-10-14: corrected the PreToolUse blocking scope and conditional headless startup trust requirement. Title, structure and receipt placement changed. The evidence cutoff remains 2026-10-13.

Verification

open source commits / evidence floor: official changelog / updated 2026-10-13

Verified claims

Featured in

Source policy: what Frontier watches and accepts as evidence

Edited and maintained by Bitter Frontier.

View source on GitHub