Grok Bot is building server-synced memory for its AI coworkers

Desktop version 0.39.0 defines list and put operations for per-agent profiles and logs behind a rollout gate, but its packaged code reveals no confirmed call site or conflict semantics.

By · Published

RUNTIMEWIRE INVESTIGATION — Scoop

Original reporting by RuntimeWire, based on reverse engineering.

Why it matters

Persistent agents need memory that survives the machine running them. Grok Bot's new per-agent server records could provide that continuity, while making learned memory a data-governance issue for enterprise customers.

Reporting record

Finding

A new desktop binary adds server APIs for versioned per-Bot profiles and logs, giving the clearest look yet at how Grok Bot could carry memory across runtimes and devices.

How we verified

Methods: reverse engineering.

Version 0.39.0 introduces two previously absent methods in Grok Bot's service contract: ListGrokBotMemoryShards and PutGrokBotMemoryShard. Together, they define a way to retrieve and write versioned memory records associated with individual Bots. The underlying schema is unusually revealing. Each GrokBotMemoryShard contains a Bot identifier, the execution harness responsible for it, a memory folder and a numeric version. The folder is split into a profile string and a map of keyed logs, both stored as text. The write request sends a Bot ID and its memory folder to the server. The response returns a version number. The list request contains no filters and returns multiple shards, which suggests the server determines the user's accessible memory set from the authenticated session. The exact scope is not stated in the client. RuntimeWire compared Grok Bot 0.39.0 with version 0.30.0. None of the memory-shard messages or methods appears in the older binary. The newer build also adds a rollout gate named grok_bot_server_memories, enabled in the client's fallback feature catalog.

RuntimeWire compared Grok Bot 0.39.0 with version 0.30.0. None of the memory-shard messages or methods appears in the older binary. The newer build also adds a rollout gate named grok_bot_server_memories, enabled in the client's fallback feature catalog.

Tested versions: Grok Bot 0.39.0.

Reproduction

Reproduction does not apply to this reporting (document-driven).

Compare Grok Bot 0.39.0 with version 0.30.0

File hashes

  • app(20260904-175745).asar 33,149,055 bytes 219b494cdd69c4b3353fc07509fd6cf590dc9cc3393a92f470352451603566ca

Company response

The company responded to RuntimeWire's questions.

Abstract, glowing data shards with intricate internal patterns connect to a central digital hub, representing server-synced AI memory.

Grok Bot desktop version 0.39.0 includes a server-facing interface for reading and writing versioned memory records associated with individual AI agents, according to a RuntimeWire analysis of the application's packaged code.

The interface is the clearest implementation evidence yet for how Grok Bot could preserve learned state across sessions, devices and execution environments. It defines a memory folder containing a profile and keyed logs, embeds that folder in a record identified by agent and runtime harness, and exposes list and put operations for retrieving and writing those records.

The evidence supports a narrower conclusion than full activation. The contracts and rollout gate are present in the shipped desktop archive, but RuntimeWire did not identify a confirmed desktop call site invoking either operation. Version 0.39.0 therefore contains the client-side vocabulary for server-managed memory; it does not establish that every Bot is already reading from or writing to the service.

What the archive comparison establishes

RuntimeWire compared application archives identified by their package metadata as versions 0.30.0 and 0.39.0. Four memory-related components appear in the newer archive and not in the earlier one:

  • GrokBotMemoryFolder, containing a profile string and a keyed logs map.
  • GrokBotMemoryShard, associating the folder with an agent_id, harness metadata and a version.
  • ListGrokBotMemoryShards, a server request for retrieving memory records.
  • PutGrokBotMemoryShard, a server request for writing a memory record.

The newer client also contains a rollout gate named grok_bot_server_memories. None of those contracts, request names or the gate appears in version 0.30.0.

Artifact Version 0.30.0 Version 0.39.0
Archive size 31,765,314 bytes 33,149,055 bytes
SHA-256 b989afccbe1b6e41e9774fa544dd2cf7ce96942abda1fc438d7c8c11e4e481dc 219b494cdd69c4b3353fc07509fd6cf590dc9cc3393a92f470352451603566ca
Server memory shard contracts Absent Present
Memory rollout gate Absent grok_bot_server_memories

This comparison dates the appearance of the interface to the interval between the two packaged versions. It does not reveal when the corresponding server implementation was deployed, whether the gate is enabled for any users or whether another client path invokes the operations indirectly.

Generated RPC definitions can also ship before the feature code that consumes them. The combination of request contracts and a named rollout gate is evidence of an integration path, not evidence of universal availability.

The schema separates identity, content and runtime provenance

The data model has three analytically distinct layers.

First, GrokBotMemoryFolder contains the memory payload exposed by the schema: one profile string and a map of logs. The profile is structurally suited to a compact body of durable context, while the keyed map allows multiple log entries to be addressed separately. The code reviewed does not disclose what the map keys represent or whether each value contains an event, a summary or another derived representation.

Second, GrokBotMemoryShard binds that folder to an agent_id. That makes the agent, rather than the shared computer or the local desktop installation, the explicit identity boundary in the record. Cursor's public Grok Bot documentation says learned memory remains separate for each Bot even though Bots owned by the same user share files, browser sessions and a cloud computer. The shard model is consistent with that product boundary.

Third, the shard includes harness metadata that distinguishes Box and Temporal contexts. The field preserves information about the execution harness associated with a record, suggesting that the service needs to recognize memory produced under different runtime arrangements. The reviewed code does not establish whether harness identity affects routing, validation, migration or retrieval.

The version field makes revisions explicit. It could support stale-write detection, optimistic concurrency or migration logic, but those behaviors are not visible in the contracts alone. RuntimeWire found no code establishing whether PutGrokBotMemoryShard requires a matching prior version, overwrites the current record, creates another revision or merges concurrent changes.

That uncertainty is important for long-running agents. Two runtimes could otherwise update the same agent's memory from different starting states. A version number provides a mechanism for detecting that condition, but the shipped definitions do not show the policy applied when it occurs.

What list and put reveal, and what they do not

The operation names define a minimal synchronization surface. A list request gives a client a way to discover server-held shards, while a put request gives it a way to submit a shard. Together, they are compatible with restoring memory onto a new runtime and persisting changes after work completes.

The packaged code does not expose the higher-level memory pipeline. It does not show:

  • how model output is selected for durable storage;
  • whether logs contain raw observations or compressed summaries;
  • when a write is triggered;
  • how duplicate or contradictory entries are reconciled;
  • how stale versions are handled;
  • whether deletion of a Bot immediately deletes its server-held shards;
  • or how memory writes interact with review and approval controls.

Those missing behaviors determine whether the system functions as a simple synchronized profile store or as an evolving memory subsystem with its own extraction, consolidation and conflict policies. The current evidence establishes the storage contract, not the learning algorithm above it.

Agent memory is distinct from computer recovery

The AI coding company Cursor already documents a durable server copy of synced computer data. That recovery system concerns the shared cloud computer and its files. The contracts identified in version 0.39.0 instead name memory directly and key it to an agent.

That separation matters because a shared machine is not the same object as an AI coworker's learned state. Multiple Bots can use the same files and browser sessions while retaining different preferences, summaries and routines. A machine-level backup can restore the workspace, but it cannot by itself represent which learned information belongs to which Bot.

Cursor's documentation says a duplicated Bot carries its profile, settings, skills and routines while leaving behind conversation history and learned memory. Per-agent shards give the backend a separately addressable object with which to enforce that distinction. The reviewed code does not show the duplication transaction itself, so it cannot establish which shard fields, if any, are copied during that process.

Why durable memory matters to the agent architecture

Cursor co-founder and CEO Michael Truell (@mntruell) has described a shift from a coding editor toward persistent agents. In February, Truell outlined a model in which developers supervise fleets of agents operating as teammates, with each agent working for longer periods on its own cloud machine.

That model requires state to outlive any one model invocation or runtime. If learned context exists only in a local process, rebuilding a machine or changing devices resets the agent's accumulated role. A server-held record identified by agent can provide continuity independently of the runtime that produced it.

Harness metadata extends that design beyond simple backup. By recording whether a shard is associated with a Box or Temporal context, the schema can preserve runtime provenance alongside learned state. What the service does with that provenance remains unresolved, but its presence indicates that the designers are modeling memory as data that can move among execution environments rather than as an incidental file inside one environment.

A new control surface for enterprise deployments

The memory code arrived as SpaceXAI expanded Grok Bot from its August 11th beta launch into broader paid-plan access and, on September 3rd, enterprise availability. Cursor also became part of SpaceX on August 14th, placing the agent product inside a broader effort to deploy Grok models across long-running work.

Persistent memory has a different security profile from ordinary chat history because stored state can influence actions after the task that produced it has ended. Cursor's security documentation says Auto Review does not examine every side effect and identifies memory writes as one example.

The new RPCs do not show whether those writes are active, which events trigger them or whether an approval layer can block them. They do show that memory is being represented as a first-class, server-managed and versioned data object rather than solely as content on a Bot's computer.

For researchers and enterprise operators, the remaining questions concern policy more than schema: who can read or mutate a shard, how revisions are reconciled, how deletion propagates, and whether users can inspect the exact state that will influence later runs. None is answered by the packaged contracts.

Cursor's Grok Bot terms already state that memory may be retained in a persistent cloud environment. Version 0.39.0 supplies a concrete interface for organizing that memory by agent, recording its runtime context and tracking revisions. It is infrastructure for continuity, but the archive alone does not show that the continuity loop has been switched on.

Reader comments

Conversation for this story loads after sign-in.