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.
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
denylist 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/strictfor 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.
- Matcher configuration, byte offset 2186477, gives SessionStart sources as
newandload. Use them for fresh and reopened sessions respectively; imported startup/resume/clear/compact matchers do not match. - “Cursor Hook Compatibility”, byte offset 2183983: native Cursor entries do not run; Grok-supported matcher groups do. At 2184387, the guide says: “Grok doesn’t read that format yet.” Convert native replies and entries before relying on a migrated deny hook.
- Timeout and failure handling, byte offset 2189400: crashes and timeouts
let work proceed. For
PreToolUse, replies beyond read limits, inapplicable input rewrites from successful hooks and explicit denies block tool calls. The event-specific rules at byte offset 2219954 say oversized replies onStop,SubagentStop,PostToolUseandPostToolUseFailurecan fail open; a failed hook’s over-deep input rewrite is dropped and the call proceeds. Test these exceptions separately from a transport or script failure. - Package hook path handling, byte offset 2176908: package hooks run from the workspace root. A missing root script fails open, including for a deny hook. Point the hook at the package script explicitly.
- “HTTP Hooks”, byte offset 2247114: refused requests are hook errors.
The paragraph at 2249465 says, “The hook fails open.”
The fake-IP proxy paragraph at 2247890 describes names resolving into
198.18.0.0/15: requests are refused even withHTTPS_PROXY, and a managed policy hook then fails open. Exercise that route and timeouts as well as explicit deny replies.
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 = truemakes 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
- Require a complete source mapping before treating the mirror as a binary audit. The last public sync, 29 September 2026, is labeled 1.0.45 and stubs the Cursor worker. Settle this with a complete snapshot explicitly mapped to the installed binary.
- Resolve sandbox startup failure before relying on protection. The shipped guide requires refusal when direct write protection cannot apply, while generic platform text says warn-and-continue. Use implementation tied to 1.0.52 or controlled protection-failure tests on the target platform to establish whether startup stops.
- Test folder trust before granting it in CI. The guide
gates project rules, startup instructions and skills on trust.
Test trusted and untrusted repositories on 1.0.52 to establish enforcement.
Grant
--trustonly to controlled repositories. - Test the Cursor worker’s confinement before enabling it. The worker that offers your machine to Cursor Cloud Agents has
auto-start off by default.
Keep it off credential-bearing hosts pending confinement tests.
The binary documents account-gated registration, opt-in
any_repoand refusal under a selected sandbox profile. It also documents a clone-pool path for Git URLs outsideworker_dirsafter successful startup. Use worker implementation or controlled tests to establish repository limits and command confinement, including withany_repooff. - Check the GitSpawn delivery path on the installed version. The
1 September 2026 report tested 1.0.13 with a delivered repository’s malicious
.git/config: background Git ran attacker commands with user privileges. Ordinary cloning does not copy that config. Settle current status with a shipped fix covering background Git calls or a controlled 1.0.52 test of that delivery path.
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
--trustor a prior grant. - Configuration reference,
cursor_workerheading at 2573107: registration offers the machine to Cursor Cloud Agents. The table sets auto-start andany_repooff by default. The opening paragraph also describes successful startup opening a clone-pool path for Git URLs outsideworker_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
- 2026-09-21-grok-build-folder-trust-now-gates-project-permission-rules-instructions-and-skills-previously-applied / verified 2026-10-13
- 2026-09-21-grok-build-enterprise-enforcement-signed-requirements-toml-model-restriction-enforced-and-managed-onl / verified 2026-10-13
- 2026-09-21-grok-build-hooks-gained-power-and-still-fail-open / verified 2026-10-13
- 2026-10-13-grok-build-stable-is-1-0-52-enterprise-is-ahead-and-npm-supplies-package-integrity / verified 2026-10-13
- 2026-10-13-grok-build-selecting-a-version-with-install-sh-does-not-disable-automatic-updates / verified 2026-10-13
- 2026-10-13-grok-build-the-september-29-mirror-cannot-identify-the-complete-source-of-stable-1-0 / verified 2026-10-13
- 2026-10-13-grok-build-the-binary-documents-a-cursor-worker-whose-implementation-is-absent-from-the-public-mirror / verified 2026-10-13
- 2026-10-13-grok-build-stable-1-0-52-carries-corrections-for-approval-scope-and-deceptive-permission-cards / verified 2026-10-13
- 2026-10-13-grok-build-deny-rule-fixes-cover-alternate-paths-while-strict-still-reads-workspace-secrets / verified 2026-10-13
- 2026-10-13-grok-build-invalid-policy-now-has-distinct-startup-errors-skipped-entries-and-retained-rules / verified 2026-10-13
- 2026-10-13-grok-build-generation-pinned-per-version-notes-are-the-fuller-upgrade-record / verified 2026-10-13
- 2026-10-13-grok-build-the-1-0-52-guide-corrects-imported-hook-compatibility-and-documents-fail-open-traps / verified 2026-10-13
- 2026-10-13-grok-build-the-1-0-52-sandbox-guide-scopes-hook-folder-protection-and-leaves-failure-behavior-conflic / verified 2026-10-13
- 2026-10-13-grok-build-worktree-and-file-loss-fixes-are-stable-the-wrong-checkout-fork-fix-remains-non-stable / verified 2026-10-13
- 2026-10-13-grok-build-headless-goals-and-acp-gain-capability-while-sharing-and-memory-controls-shrink / verified 2026-10-13
- 2026-10-13-grok-build-late-on-october-13-build-1-0-56-appeared-and-winget-added-stable-1-0 / verified 2026-10-13
- 2026-10-13-grok-build-parallel-tools-editing-the-same-file-are-serialized-while-unrelated-calls-remain-concurren / verified 2026-10-13
- 2026-10-13-grok-build-plan-mode-refuses-mcp-resource-downloads-and-headless-runs-honor-no-subagents / verified 2026-10-13
- 2026-10-13-grok-build-web-search-hooks-lose-the-ability-to-rewrite-calls-to-restrict-domains / verified 2026-10-13
- 2026-10-13-grok-build-http-mcp-json-rpc-errors-no-longer-cause-repeated-tool-execution / verified 2026-10-13
- 2026-10-13-grok-build-export-and-copy-refuse-destinations-that-already-exist / verified 2026-10-13
- 2026-10-13-grok-build-local-http-approval-hooks-work-but-refused-requests-still-fail-open / verified 2026-10-13
- 2026-10-13-grok-build-worktree-commands-gain-jujutsu-compatibility / verified 2026-10-13
- 2026-10-13-grok-build-strict-documents-a-daemon-storage-write-allowance-in-addition-to-workspace-and-temporary / verified 2026-10-13
Featured in
- The Handoff Has an API / 2026-10-13
- Before the First Turn / 2026-09-21
Source policy: what Frontier watches and accepts as evidence
Edited and maintained by Bitter Frontier.