grok-termux
v1.0.41-termux.1
Published
Unofficial Termux/Android build of Grok Build, xAI's terminal coding agent. Installs on stock Termux; run under termux-chroot for network access.
Maintainers
Readme
grok-termux
Unofficial Termux/Android build of Grok Build, xAI's terminal coding agent.
This package does not fork or modify Grok Build. It ships one thing: a
statically linked aarch64 binary compiled from the upstream sources exactly as
they are published.
Install
Installs directly on stock Termux. No PRoot, no Debian, no container.
npm install -g grok-termux@latest
grok --version # grok 1.0.41Termux on aarch64 only. The package declares os: android, linux and
cpu: arm64, so npm refuses to install it anywhere else rather than leaving you
a binary that cannot run.
Networking: run it under termux-chroot
Anything that talks to the network — signing in included — needs this:
termux-chroot groktermux-chroot ships with termux-tools and is already there on a normal
Termux install. Nothing to install, nothing to configure.
Why. This is a statically linked musl binary, and musl's resolver reads
/etc/resolv.conf. On Termux that path belongs to Android, where the file does
not exist: the real one is at $PREFIX/etc/resolv.conf. With no nameserver to
read, musl falls back to 127.0.0.1, nothing answers there, and every request
fails — you see error sending request for url (https://auth.x.ai/...) and an
empty model catalogue. termux-chroot maps / onto $PREFIX, so musl finds
the file that was there all along.
It is the classic static-musl-on-Termux problem, not a fault of this build: the
same binary reaches the network normally in any environment that has
/etc/resolv.conf.
Why this exists
The upstream project publishes binaries for macOS, Linux (glibc) and Windows —
not for Termux. Building for Android natively is possible but expensive: Android
is a distinct target_os for rustc, and a long tail of dependencies has no arm
for it, so it takes a patch set that must be re-applied on every upstream sync.
This build sidesteps all of it by targeting aarch64-unknown-linux-musl
instead: a fully static binary, no glibc, no dynamic loader — which is exactly
what Termux can run. Upstream keeps that target first class, so the source
tree is untouched.
What you are running
- Built from
xai-org/grok-build, source revisionf0e3be1100ef5252488e3be8bb0e91cf68d8c305. - Upstream version
1.0.41. - Target
aarch64-unknown-linux-musl, statically linked, stripped. - No install scripts: the
grokcommand is the binary itself, so nothing is compiled, downloaded or rewritten at install time.
Verify what you got:
file "$(command -v grok)" # ELF 64-bit ... ARM aarch64 ... statically linkedLicence and trademarks
Grok Build is Copyright 2023-2026 SpaceXAI, under the Apache Licence 2.0. See
LICENSE and THIRD-PARTY-NOTICES.
Not affiliated with, endorsed by, or supported by xAI. "Grok" is a trademark of xAI; it is used here only to name the software this binary was built from, as permitted for descriptive reference — the Apache Licence grants no trademark rights (section 6). For the official CLI, see x.ai/cli.
