What Is grok-cli?
grok-cli is a Rust-based terminal client built by Moore-developers on GitHub, and it exposes 14 commands for Grok/xAI chat, search, image, video, audio, model, and usage workflows. grok-cli is one of the best CLI Tools tools for developers, indie hackers, and AI agent runtimes that need xAI in the terminal without an API key, with OAuth-only login, streaming output, and --json automation support.
The design is intentionally flat: one binary, one auth flow, and one command surface that works in interactive shells and scripted jobs. For teams that want Grok available in CI, local development, or agent loops, grok-cli removes browser friction while keeping state on disk instead of in a heavyweight desktop client.
Quick Overview
| Attribute | Details |
|---|---|
| Type | CLI Tools |
| Best For | Developers, indie hackers, and AI agent runtimes |
| Language/Stack | Rust 1.88+, xAI OAuth, terminal workflows, SQLite session state, JSON automation |
| License | N/A (not stated in README) |
| GitHub Stars | N/A as of Feb 2026 |
| Pricing | Open-Source |
| Last Release | N/A |
Who Should Use grok-cli?
- Terminal-first developers who want Grok available from
bash,zsh, or PowerShell without opening a browser tab for every prompt. - Agent runtime integrators who need stable JSON output, deterministic command names, and local auth state for scripted tool calls.
- Indie hackers building MVPs who want chat, search, media generation, and speech workflows in one binary instead of stitching together separate APIs.
- Platform engineers who prefer local session storage and shell-friendly commands when testing model behavior across environments.
Not ideal for:
- Teams that require API-key based service accounts for fully headless server-side deployments.
- Users who want a multi-provider abstraction layer rather than a single xAI/Grok client.
- People who only use a web UI and do not need shell automation, JSON output, or local session state.
Key Features of grok-cli
- OAuth-only authentication — grok-cli signs in through the system browser with SuperGrok or X Premium+ entitlements, so there is no API key management overhead. That makes local setup simple, but it also means access is tied to xAI account status rather than a standalone token.
- Flat command surface — one CLI covers
login,status,chat,search,image,video,tts,stt,usage,model, andstate. The result is less cognitive overhead than juggling separate tools for chat, media, and telemetry. - Streaming by default with structured output — the normal interaction mode is readable text in the terminal, while
--jsongives stable machine output for scripts. The README shows a consistent envelope withok,command,data, anderror, which is exactly what automation needs. - Media-aware workflows — grok-cli accepts local files and remote URLs for image, video, and audio tasks, including
image-edit,video-edit, andvideo-extend. That lets you treat Grok as a terminal-native media tool, not just a text chat interface. - Local state and usage tracking — auth tokens live in
~/.grok-cli/auth.json, and usage history is stored in~/.grok-cli/session.dbwith SQLite. The tracker records session totals, per-command events, media breakdowns, and rate-limit snapshots, while media files themselves are not stored. - Cross-platform binary path — the repo ships pre-built assets for macOS Apple Silicon and Windows x64, plus a source install path for Rust users. For agent runtimes, the bundled
npx --yes skills add ...path handles install checks and command routing automatically. - Model switching built in —
grok-cli modellets you inspect or pin a model such asgrok-4.3for chat and search. That is useful when you want reproducible behavior across sessions instead of silent model drift.
grok-cli vs Alternatives
| Tool | Best For | Key Differentiator | Pricing |
|---|---|---|---|
| grok-cli | xAI in the terminal with chat, search, media, and JSON automation | OAuth-only Grok client with one flat command surface | Open-Source |
| Claude Code Canvas | Claude-centered coding and context editing | Better fit when your workflow is built around Anthropic models and canvas-style interaction | Varies |
| OpenSwarm | Multi-agent orchestration | Better when you need swarm coordination across agents instead of a single-provider CLI | Open-Source |
| Brainstorm MCP | Structured ideation and MCP-native planning | Better for upstream planning and prompt organization before execution | Open-Source |
Pick Claude Code Canvas when your team already standardizes on Claude and wants a richer coding loop around that model family. Pick OpenSwarm when your problem is coordinating multiple agents, not just querying one model from a terminal.
Choose Brainstorm MCP when you want to shape prompts, tasks, or design decisions before handing work to an execution client. grok-cli still wins when the goal is direct xAI access with clean shell semantics, local state, and media commands in one place.
How grok-cli Works
grok-cli is a thin terminal wrapper around xAI access, with authentication handled through OAuth rather than raw API keys. The core abstraction is a command router that maps each action to a specific workflow, then emits either streaming text or a stable JSON envelope depending on flags and context.
The state model is local-first. Auth data is written to ~/.grok-cli/auth.json, while session metrics land in ~/.grok-cli/session.db as SQLite, which means the CLI can remember usage history without storing media payloads or requiring a remote control plane.
The architecture favors explicit subcommands over hidden modes, which makes it predictable in shells and agent loops. That also makes it easy to compose with tools like Claude Context Mode when you want context shaping upstream, or OpenSwarm when you need orchestration around Grok calls.
# login, verify state, run a chat, and emit machine-readable output
npx --yes skills add Moore-developers/grok-cli --skill grok-cli --global --yes
grok-cli login
grok-cli status
grok-cli chat 'Summarize the latest AI news' --json
The install line registers the bundled skill for agent runtimes, while the login step opens the browser-based OAuth flow. After that, status confirms the saved session, and chat --json gives you a parseable response that you can pipe into jq, a CI job, or another agent.
Pros and Cons of grok-cli
Pros:
- No API key handling because login is OAuth-based and tied to xAI entitlements.
- Single command surface for text, search, image, video, and audio, which reduces tool sprawl.
- Script-friendly JSON mode that works well with automation, test harnesses, and agent runtimes.
- Local session storage in SQLite makes usage tracking durable across restarts without external services.
- Cross-platform support for macOS Apple Silicon and Windows x64 with release binaries.
- Model selection control via
grok-cli model, which helps teams pin behavior during evaluation.
Cons:
- Access depends on xAI subscription status, so open-source code does not equal free model usage.
- Rust source installs require toolchain setup and the README pins a modern Rust version, which adds friction for casual users.
- Binary releases are limited in the README to macOS Apple Silicon and Windows x64, so Linux users may rely on source builds.
stt-streamis marked experimental, which is a signal to treat streaming speech workflows carefully.- Local state is disk-based, so shared team sessions and centralized audit trails are not built in.
Getting Started with grok-cli
The fastest path is the bundled agent-skill install, followed by browser login and a first chat. If you prefer source builds, the repo also supports cargo install from Git with a pinned toolchain.
# Recommended for agent runtimes
npx --yes skills add Moore-developers/grok-cli --skill grok-cli --global --yes
# Start an authenticated session
grok-cli login
# Verify the saved OAuth session
grok-cli status
# First request
grok-cli chat 'Summarize the latest AI news'
# Check local usage and rate-limit snapshots
grok-cli usage
After login, grok-cli stores auth state locally and reuses it until you refresh or log out. If you are running headless, grok-cli login --manual-paste switches to a code-based flow, which is the right fallback for remote terminals and non-GUI environments.
Verdict
grok-cli is the strongest option for terminal-based xAI workflows when you want one binary for chat, search, media, and agent automation. Its main advantage is clean streaming plus --json output; the trade-off is entitlement-based access and a Rust-centric install path for source builds. Recommend it if your workflow lives in shells, CI, or agent runtimes.



