Getting Started
Grok Build is a powerful and extensible coding agent. Use it via an interactive TUI, headlessly in scripts or bots, or through the Agent Client Protocol (ACP) in other apps.
The TUI provides a rich, mouse-interactive, fullscreen experience for coding with agents.
Install
curl -fsSL https://x.ai/cli/install.sh | bash
irm https://x.ai/cli/install.ps1 | iex
Start an interactive session
cd your-project
grok
On first launch, Grok opens a browser for authentication. In non-browser environments, use an API key:
export XAI_API_KEY="xai-..."
grok
Useful first prompts:
Explain this repo.
@src/main.rs Walk me through this file.
Run headlessly
grok -p "Explain this codebase"
grok -p "Explain the architecture" --output-format streaming-json
Headless usage is ideal for scripts, automations, or integration into other apps.
Custom models
Grok supports any custom model. Add it to your user-level config file, ~/.grok/config.toml (on Windows, %USERPROFILE%\.grok\config.toml):
[model.my-model]
model = "model-id"
base_url = "https://api.example.com/v1"
name = "Display Name"
env_key = "API_KEY"
[models]
default = "my-model"
After updating ~/.grok/config.toml, use grok inspect to see what Grok discovered in the current directory, including config sources, instructions, skills, plugins, hooks, and MCP servers, then pick the model in headless mode or in the TUI:
grok inspect
grok -p "Hello" -m my-model
You can also switch inside the TUI with /model <name>.
Use Grok Build 0.1 on the API
The same model that powers Grok Build, grok-build-0.1, is also available directly on the xAI API in early access. Drop it into your own agent loop, IDE integration, or coding tool.
curl https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-build-0.1",
"input": "Refactor this function to handle null inputs."
}'
import os
from xai_sdk import Client
from xai_sdk.chat import user
client = Client(api_key=os.getenv("XAI_API_KEY"))
chat = client.chat.create(model="grok-build-0.1")
chat.append(user("Refactor this function to handle null inputs."))
print(chat.sample().content)
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_XAI_API_KEY_HERE>",
base_url="https://api.x.ai/v1",
)
response = client.responses.create(
model="grok-build-0.1",
input="Refactor this function to handle null inputs.",
)
print(response.output_text)
import { xai } from '@ai-sdk/xai';
import { generateText } from 'ai';
const { text } = await generateText({
model: xai.responses('grok-build-0.1'),
prompt: 'Refactor this function to handle null inputs.',
});
console.log(text);