Point It at a Local Model and Nothing Leaves? — I Read the Published Grok Build Source

This page contains advertising (affiliate links). See our Privacy Policy for details.

Once you are running AI on your own machine, you start looking at the tools that help you write code and wondering whether those could run on a local model too. The kind of thing called an agent, living in a terminal. So when I heard that xAI had released a coding agent called Grok Build as open source, it looked like something I could try.

The configuration did indeed let you point it at a local model. But I stopped short of installing it. Does using it require an account? And if you point it at a local model, does anything actually leave the machine?

Released as open source means you can read it and find out. So I read it before installing.

This is as of July 2026. Throughout, I refer to xAI’s coding agent by its proper name, Grok Build.

Sponsored

To be clear up front: I did not run it

This article is not the result of running anything. It is what I put together from the published source code, the official documentation, and published reports. This blog normally leads with numbers I measured myself; this time there are none. I would rather say so plainly.

The reason I did not run it is that partway through reading I decided not to install it on this machine. The reason is further down.

Let me also bound what I read. The repository has over 3,400 files and I have not read all of them. What I looked at was authentication and the parts concerned with sending things outward.

Sponsored

Can you use it without an account?

This was my first question. If the point is to keep everything on your own model, you would rather not hold an account with the other party.

The official getting-started documentation is explicit. On first launch a browser opens and you are asked to sign in at grok.com. The sequence is described as “once you authenticate, the full-screen interface appears." There is nowhere any procedure for using it without authenticating.

Some alternatives exist: passing a key called XAI_API_KEY as an environment variable for environments without a browser, and using a workplace identity provider. Either way, you are still identifying yourself to the other party.

The install script, as far as I read it, does not demand authentication. It does look for credentials internally, but what it finds only changes the text it prints; the download itself comes from somewhere anyone can reach. Installing, in other words, appears not to require identifying yourself.

The answer so far
Installing needs no account. Starting to use it does. That entrance appears to be the same even when you point it at a local model.
Sponsored

How far can you point it at a local model?

This part I genuinely admired. Write the endpoint into the configuration file and it will use a model you are running locally, as it is.

You can specify the endpoint address (base_url), the model name, a key, and things like the context length. There are three conversational formats to choose from, including OpenAI-compatible. So anything with an OpenAI-compatible endpoint, such as Ollama or llama.cpp, should broadly connect.

I did find one trap that anyone running AI at home is likely to hit. Register a new model without stating the context length and it is treated as 200,000 tokens by default.

That number is used to decide when a conversation has grown long enough to summarise and compress. Connect a local model while that assumption sits at 200,000, and the tool will let the conversation accumulate well past what the model can handle before it thinks about compressing.

I have measured context length on a 12GB graphics card before. Speed fell away and flattened at around 32,768 tokens. Turning on compression of the area that holds the conversation (the KV cache) took the same 12GB card to 65,536 tokens. Four times.

That number differs from machine to machine, which is exactly why this is a setting to determine by measuring your own. It is not the sort of field to leave at its default.

Sponsored

So does pointing it at a local model mean nothing leaves?

This was the real question. And this is where my decision changed.

Reading through the source, there are mechanisms for sending things outward that are separate from the path the conversation with the AI travels. Three dedicated directories, standing on their own.

Outbound mechanisms found in the published source
1. Behavioural analytics
A standalone component for sending to an external analytics service (Mixpanel)
2. Usage recording
Telemetry: recording how the tool is used and sending it. Over 40 related files
3. Upload to cloud storage
A component that sends to Google’s cloud storage. What it sends includes changes in the working directory
All three are in the public repository. None of this is my inference.

The third one concerned me most. Reading it, the upload happens once per conversational turn. A file description even uses the phrase “signal that the send for one turn has completed." It does not appear to be built to batch things up at convenient points; it follows the exchange.

The contents named for sending were the conversation record, the compressed file that consolidates memory, and the changes in the directory being worked on. There are even tests showing that if a send fails it does not give up but retries once connectivity returns.

Sponsored

Is there a setting to stop it?

There is, and it is only fair to say so.

The configuration file has an option to turn analytics off entirely and another to turn off only the sending of records. Environment variables can do it too. That it is built to be switchable is itself a sign that nothing is being hidden.

The default, though, is to send
Stopping it means writing something yourself. Configure nothing and it runs in the sending configuration. If you installed it and started using it straight away, assume things are being sent; that is the safe reading.

One other thing caught my eye while reading. Inside the command that opens the privacy-related screen, a developer has left a comment to the effect that this screen does not change the main analytics switch.

In other words, what the screen called “privacy" controls and the setting that stops the sending are in different places. What the name suggests and what it actually governs do not line up. That struck me as easy to get wrong.

For what it is worth, the destination for cloud uploads is baked in when the software is built, with a note that without it the upload does not run. Build it yourself and you can have a non-sending state, is the reading. It is natural to assume the official prebuilt distribution has it baked in.

Sponsored

Comparing this against what was reported

While researching I learned that several reports appeared in July 2026: that whole working repositories were being uploaded, and that the privacy toggle did not stop it. One report captured the traffic and analysed it.

I have not verified any of that. I did not record traffic myself, so I cannot state whether those reports are correct.

What I can say is that mechanisms consistent with those reports genuinely exist in the published source. A component that uploads to cloud storage, a design that sends once per turn, working-directory changes among the contents, and a developer’s own comment that the privacy screen does not touch the main switch. What I read agrees with what was reported.

In fairness, xAI is reported to have disabled data retention by default on 12 July 2026, and to say that what had been retained until then has been deleted. The situation is moving.

Sponsored

Why I decided not to put it on this machine

My working machine has things on it. The private key for the server this blog is published from, keys for a few services, and drafts that have not gone out yet.

Something with a real mechanism for uploading working-directory changes, enabled by default, with past reports that turning it off did not stop it. I could not justify running that on the machine where the keys live.

This is not specific to Grok Build. An AI agent’s job is to read files on your machine and hand them to a model. Being able to read them means being able to hand them over. A key file left where it can be read will be read, misconfiguration or not. That much is the same whoever is on the other end.

If I do try it, I will set up a disposable environment or a rented cloud machine. Somewhere with no keys and no drafts, and I can run it freely.

Sponsored

The best thing about reading it

That was a run of critical observations, but what I was left with afterwards is somewhere else entirely.

Because it is published, it could be checked.

If the inside were not visible, I would have read the news and stopped at “well, perhaps." Instead I could follow, with my own eyes, where the sending components are, when they fire, and where the setting to stop them lives. The decision to publish is what makes that possible.

If your reason for running AI locally is that you do not want your own material leaving the house, then performance cannot be the only yardstick for choosing a tool. Whether you can see inside it is a perfectly good yardstick too.

Sponsored

In summary: where you point it does not settle whether things leave

  • Grok Build can be pointed at a local model. Anything with an OpenAI-compatible endpoint should connect
  • But starting to use it requires an account. Installing does not
  • There are three outbound mechanisms separate from the conversation. One of them uploads to cloud storage once per turn, and what it sends includes working-directory changes
  • Settings to stop it exist, but the default is to send. A comment in the source notes that the “privacy" screen does not change the main switch
  • Omit the context length and it is treated as 200,000 tokens. With a local model, measure your own machine and set it
  • I have not verified the reports, but the mechanisms they describe do exist
  • And it could be checked precisely because it is published

“I pointed it at a local model, so nothing leaves" does not follow. Where you point it and what the tool itself sends are two things that have to be checked separately. Next time I want to set up a machine with no keys on it and write about actually running this.

Sources

xai-org/grok-build (GitHub)
The published source itself, Apache License 2.0. Every statement here about “sending mechanisms" was confirmed by reading files in this repository
Grok Build official documentation (xAI)
First-launch sign-in, registering a local model, the default context length and the analytics settings follow the official text
Wire-level analysis of the traffic (Developers Digest)
I have not reproduced this. It is treated here as a report
Report that the privacy setting did not stop it (securityonline.info)
Likewise. The default-off retention change (12 July 2026) also rests on reporting around this
A network monitoring harness for verification (GitHub)
A third-party rig for checking the traffic, as a starting point if you want to reproduce this

Checked 30 July 2026, against the main branch of the public repository. Software gets updated. The behaviour described here may change in later versions. If you are considering installing it, check against the version in front of you.

Sponsored