If you searched for Grok CLI you may have landed on either of
two unrelated projects. Grok CLI is
superagent-ai/grok-cli, a community agent that is explicitly not affiliated with xAI.
Grok Build is
xai-org/grok-build,
xAI's own. Both install a binary named grok into
$HOME/.grok/bin, so they overwrite each other. Their Linux
ARM64 support is exactly inverted. Here is which one you actually want, and
what breaks when you mix them up.
Jump to what you came for:
- "Which one is xAI's?" Grok Build. The identity table ↓
- "I installed both and `grok` changed". That is the binary collision. Why they overwrite ↓
- "Does it work on Termux / ARM?" Depends entirely on which one. The inverted ARM story ↓
- "I want it from my phone". Neither has a mobile build ↓
Which Grok is which?
The confusion is structural, not careless. The community project was created on 2025-07-14. xAI created theirs on 2026-07-14, exactly one year later, and named the command the same thing. Search results from 2026 mix the two freely, and a lot of tutorial content written for one silently applies the other's install instructions.
Every number below was read first-hand on 2026-07-20 with
gh api, the npm registry, and HTTP probes against the published
release assets. Star counts and versions on both projects move within days,
so treat the date as part of the fact.
| Grok CLI | Grok Build | |
|---|---|---|
| Repository | superagent-ai/grok-cli | xai-org/grok-build |
| Affiliation | Community, not xAI | Official xAI |
| Created | 2025-07-14 | 2026-07-14 |
| Harness license | MIT | Apache-2.0 |
| Language | TypeScript on Bun | Rust |
| Stars (2026-07-20) | 3,314 | 20,734 |
| Command | grok | grok (also links agent) |
| Install directory | $HOME/.grok/bin | $HOME/.grok/bin |
| npm package | grok-dev | None |
| Linux arm64 build | Not published (404) | Ships linux-aarch64 |
| Auth | Grok API key from x.ai | grok login --device-auth or API key |
| Mobile build | None | None |
One shortcut that always works: if the install command starts with curl -fsSL https://x.ai/cli/, it is xAI's. If it starts with curl ... raw.githubusercontent.com/superagent-ai/ or bun add -g grok-dev, it is the community one.
The collision: same command, same directory
Both projects put a file called grok in
$HOME/.grok/bin. Neither installer checks whether the other is
already there. Install one after the other and the second silently replaces
the first, leaving your shell history, your aliases, and your muscle memory
pointing at a different program than you think.
$ which -a grok
/root/.grok/bin/grok
$ grok --version
grok 0.2.106 (ab5ebf69ac)
# version + commit hash = xAI's Grok Build
$ ls ~/.grok/install.json
ls: cannot access '/root/.grok/install.json': No such file
# install.json is written only by the community CLI's install.sh
Two checks disambiguate an existing install. grok --version on Grok
Build prints a version plus a short commit hash, like
0.2.106 (ab5ebf69ac). The community CLI reports its npm
version,
1.1.7. And ~/.grok/install.json is written only by the
community project's install.sh.
If you want both, install one with its directory override rather than
hoping. Grok Build honours GROK_BIN_DIR; Grok CLI's installer
takes
--binary <path> and --no-modify-path. We
would rather rename one binary outright than keep two programs racing for
the same six letters.
The ARM story is exactly backwards between them
This is the part that costs people an afternoon. The two projects have
opposite ARM64 Linux support, so every sentence you read about "running
grok on ARM" is correct for one and wrong for the other.
We probed every published release asset for both projects on 2026-07-20. The raw log, including the exact commands so you can re-run it, is committed here: the full architecture probe capture from 2026-07-20. The result:
| Release asset | Project | HTTP status |
|---|---|---|
grok-linux-arm64 | Grok CLI | 404, not published |
grok-linux-x64 | Grok CLI | 200 |
grok-darwin-arm64 | Grok CLI | 200 |
grok-0.2.106-linux-aarch64 | Grok Build | 200, first-class target |
grok-0.2.106-linux-x86_64 | Grok Build | 200 |
Grok CLI's install.sh maps aarch64 to
arm64 in its arch case, then downloads
grok-linux-arm64, a file that does not exist. On Termux, which
is
aarch64, the documented install cannot finish. Note the reason
carefully: the artifact was never published. This is
not the glibc-versus-Bionic dynamic-linking problem that blocks other
prebuilt CLIs, and borrowing that explanation would be wrong. Our
Termux comparison covers where that
distinction matters for other tools.
Could npm i -g grok-dev route around it? Maybe. That is the escape
hatch that gets Node-based agent CLIs onto Termux, and
grok-dev declares engines: node >=18 with no CPU
restriction. But it depends on @opentui/core and
agent-desktop, which ship native components, and the project
targets Bun rather than plain Node. We have not tested that path on aarch64, so we are not going to tell you
it works. Unverified is the honest answer until someone runs it.
Running either one with a phone as your only machine
Neither project has an iOS or Android build. Grok CLI's installer accepts Darwin, Linux, and Windows and exits 1 on anything else; Grok Build's does the same. Nobody is shipping a coding agent that runs natively on iOS.
Grok CLI's Telegram remote control is the closest thing to a phone story, and it is worth being precise about what it is. The README's framing is to keep the CLI running while you ping it from your phone. Something of yours stays awake, and your phone is a messaging front-end to it. That is a relay, and we have a whole guide on relay apps versus cloud containers and why the difference matters when your laptop lid is shut.
The other shape is to put the agent on a Linux machine that is already awake
and reach that from the phone. Ours is an Ubuntu 24.04 x86_64 container on
Azure AKS, which we reach from native iOS and Android apps. The relevant
detail here is boring and load-bearing: it is x86_64, so the linux-x64 asset that Grok CLI actually publishes
resolves normally, the same binary its own installer cannot find on an ARM phone. We
installed Grok CLI 1.1.7 into a clean Ubuntu 24.04 x86_64 container and
grok --version reported 1.1.7 against a 117 MB binary.
We do not pre-install either Grok agent. We ship Claude Code, Codex CLI,
OpenCode, and Gemini CLI; adding Grok is a one-line install you run
yourself. And one honest limit: we would not host Grok CLI's
grok daemon --background scheduler or its Telegram pairing as an
always-on service. Pro is 120 hours of compute a month with hibernation after
ten minutes idle, and a hibernated container is a daemon that stopped answering.
If you need something listening at 3am, that is a VPS job.
Run either Grok agent from your phone. Install Cosyra, run
the installer for whichever grok you actually meant, and go. 1
hour free. No credit card. No trial signup.
Which one should you actually install?
Install Grok Build if you want xAI's own agent with support behind
it, you are on ARM Linux and need a binary that exists, or you need browserless
sign-in. grok login --device-auth prints a code you approve on another
device, which is the flow that works over SSH or in a container. It also has far
more momentum: 20,734 stars in six days against the community project's 3,314
in a year, and its last push was today while Grok CLI's was 2026-07-06.
Install Grok CLI if you want search_x, which
queries live X posts from inside the agent loop. No other agent CLI we track
does this, and for debugging a library that changed last week it is a real
edge. It also gives you sub-agents by default, a
--batch-api mode for cheaper unattended runs, structured
--format json output, and a hackable TypeScript agent loop that is
far easier to modify than a 146 MB Rust binary. If you want to read the code your
agent runs, this is the one.
One opinion, stated plainly because we think the star counts are misleading people: the community CLI is the more interesting piece of software, and it is losing on distribution, not on merit. X search is a genuinely novel capability. The missing ARM64 artifact is a CI configuration gap, not a design decision. Picking on stars alone means picking the newer project because it has a bigger logo on it.
For where either fits among the agents that do have a phone story, see the pillar on AI coding agents on mobile, or the walkthrough for running Grok Build on a phone.
Frequently asked questions
Is Grok CLI xAI's official CLI?
No. Grok CLI is superagent-ai/grok-cli, a community project.
Its README carries an explicit disclaimer that it is not affiliated with,
endorsed by, or sponsored by xAI Corp. xAI's own terminal coding agent is
Grok Build, at xai-org/grok-build. There is no repository at
xai-org/grok-cli; that path returns 404, checked 2026-07-20.
[source: superagent-ai/grok-cli README: unaffiliated-with-xAI disclaimer]
Which npm package is the real Grok CLI?
grok-dev, currently 1.1.7, published 2026-05-15. The project
was renamed. The older @vibe-kit/grok-cli stopped at 0.0.34 on
2025-11-27 and is roughly eight months stale, though it still appears in npm
search results and in older blog posts. Grok Build has no npm package at all.
[source: npm registry metadata for grok-dev: 1.1.7, published 2026-05-15]
Do Grok CLI and Grok Build conflict if I install both?
Yes. Both install a binary named grok into
$HOME/.grok/bin, so whichever you installed most recently
wins and neither installer warns you. Grok Build also links a second
command,
agent, to the same binary. If you want both on one machine,
install one with a custom directory, then confirm with
which -a grok before assuming which agent you are talking to.
[source: xai-org/grok-build: installer writes to $HOME/.grok/bin and links `agent`]
Can Grok CLI run on Termux or any ARM Linux?
Not through its documented installer. Grok CLI publishes
grok-darwin-arm64, grok-linux-x64, and
grok-windows-x64.exe, but no grok-linux-arm64.
We probed that asset URL on 2026-07-20 and it returns 404 while the x64
asset returns 200. The install script maps aarch64 to
arm64 and then requests a file that was never published, so it
fails on Termux for a missing-artifact reason rather than a libc reason. Grok
Build is the opposite: its linux-aarch64 binary is a first-class
target and returns 200.
[source: Termux: Android terminal emulator running on aarch64 devices]
Does Grok CLI's Telegram remote control mean it runs on my phone?
No. It is a relay. The README's own framing is to keep the CLI running while you ping it from your phone, which means a machine somewhere stays awake running the agent and your phone sends it messages. That is a different shape from running the agent itself on hardware you can reach.
[source: our guide on relay apps versus cloud containers]
Is Grok CLI open source?
The harness is; the model is not. superagent-ai/grok-cli is MIT-licensed
TypeScript you can fork and audit, and the tool itself costs nothing. The Grok
model it calls is proprietary and xAI bills you for API usage through your own
key. The same split applies to Grok Build, whose harness is Apache-2.0 Rust.
Neither tool is free to run, only free to install.
tl;dr
Grok Build (xai-org/grok-build) is xAI's,
Apache-2.0 Rust, installed from x.ai/cli, and ships a
linux-aarch64 binary. Grok CLI (superagent-ai/grok-cli) is a community MIT project, installed via grok-dev on npm, and
publishes no Linux ARM64 asset, so its installer 404s on Termux. Both
write grok to $HOME/.grok/bin and overwrite each other.
Use Grok Build for ARM and official support; use Grok CLI for live X search
and a hackable TypeScript loop. Neither runs on a phone: put one in a cloud
Ubuntu container and reach it from the app.
App Store / Google Play. 1 hour free. No credit card. No trial signup.
Get a real Linux terminal on your phone. Ubuntu 24.04 with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed. Add either Grok agent in one command.