id = "grok"
name = "Grok Build"
homepage = "https://github.com/xai-org/grok-build"
description = "xAI's coding agent for the terminal."
icon = "theSVG:grok/light"
executables = ["grok"]
[dotfiles]
paths = ["~/.grok/config.toml"]
exclude = [
"~/.grok/sessions/",
"~/.grok/logs/",
"~/.grok/bin/",
"~/.grok/bundled/",
"~/.grok/docs/",
"~/.grok/downloads/",
"~/.grok/completions/",
"~/.grok/relocations/",
"~/.grok/memtrace/",
"~/.grok/marketplace-cache/",
"~/.grok/hooks/",
"~/.grok/trusted_folders.toml",
"~/.grok/active_sessions.json",
"~/.grok/models_cache.json",
"~/.grok/worktrees.db",
"~/.grok/agent_id",
"~/.grok/version.json",
"~/.grok/tip_cursor.json",
"~/.grok/CHANGELOG.json",
"~/.grok/CHANGELOG.md",
"~/.grok/README.md",
"~/.grok/*.lock",
"~/.grok/.metadata_version",
]
secret = ["~/.grok/auth.json"]
[commands]
format = 1
label = "Run Grok"
description = "Start the Grok Build TUI with an initial prompt, or run a single headless prompt. Sub-commands (login, mcp, plugin, sessions ...), resume/worktree options and rule lists are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
revision = "grok --help (local install) 2026-10-27"
evidence = '''
Usage: grok [OPTIONS] [PROMPT] [COMMAND]
[PROMPT]
Initial prompt for the interactive session, e.g. `grok "fix the bug"` or `grok --worktree=feat "create this feature"`
--always-approve
Auto-approve all tool executions
-c, --continue
Continue the most recent session for the current working directory
--cwd <CWD>
Working directory
-m, --model <MODEL>
Model ID to use
--max-turns <N>
Maximum number of agent turns
--no-alt-screen
Run inline instead of using the terminal alternate screen
--output-format <OUTPUT_FORMAT>
Output format for headless mode
Possible values:
- plain
- json
- streaming-json: NDJSON: one ACP session update per line, the agent's native format
- streaming-messages-json: NDJSON in the Anthropic Messages API wire format
-p, --single <PROMPT>
Single-turn prompt. Prints the response to stdout and exits
--permission-mode <MODE>
Permission mode
[possible values: default, acceptEdits, auto, dontAsk, bypassPermissions, plan]
--prompt-file <PATH>
Single-turn prompt from a file
--reasoning-effort <EFFORT>
Reasoning effort for reasoning models
[aliases: --effort]
--rules <RULES>
Extra rules to append to the system prompt
--disable-web-search
Disable web search and web fetch tools
'''
[[commands.field]]
id = "prompt"
label = "Initial prompt"
description = "Opens the interactive session with this prompt."
type = "string"
position = 0
sources = ["help"]
[[commands.field]]
id = "single"
label = "Single-turn prompt (headless)"
description = "Print the response to stdout and exit instead of opening the TUI."
type = "string"
option = ["--single", "-p"]
sources = ["help"]
[[commands.field]]
id = "prompt_file"
label = "Prompt from file (headless)"
type = "path"
option = ["--prompt-file"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["help"]
[[commands.field]]
id = "model"
label = "Model"
type = "string"
option = ["--model", "-m"]
sources = ["help"]
[[commands.field]]
id = "continue"
label = "Continue most recent session"
type = "boolean"
option = ["--continue", "-c"]
sources = ["help"]
[[commands.field]]
id = "cwd"
label = "Working directory"
type = "path"
option = ["--cwd"]
path = { kind = "directory", role = "input", must_exist = true }
sources = ["help"]
[[commands.field]]
id = "output_format"
label = "Output format (headless)"
type = "enum"
option = ["--output-format"]
choices = [{ value = "plain", label = "Plain" }, { value = "json", label = "JSON" }, { value = "streaming-json", label = "Streaming JSON (ACP)" }, { value = "streaming-messages-json", label = "Streaming JSON (Messages API)" }]
sources = ["help"]
[[commands.field]]
id = "permission_mode"
label = "Permission mode"
type = "enum"
option = ["--permission-mode"]
choices = [{ value = "default", label = "Default" }, { value = "acceptEdits", label = "Accept edits" }, { value = "auto", label = "Auto" }, { value = "dontAsk", label = "Don't ask" }, { value = "bypassPermissions", label = "Bypass permissions" }, { value = "plan", label = "Plan" }]
sources = ["help"]
[[commands.field]]
id = "always_approve"
label = "Auto-approve all tool executions"
type = "boolean"
option = ["--always-approve"]
effect = "exec"
sources = ["help"]
[[commands.field]]
id = "max_turns"
label = "Maximum agent turns"
type = "integer"
option = ["--max-turns"]
sources = ["help"]
[[commands.field]]
id = "reasoning_effort"
label = "Reasoning effort"
type = "string"
option = ["--reasoning-effort", "--effort"]
sources = ["help"]
[[commands.field]]
id = "rules"
label = "Extra rules"
description = "Appended to the system prompt."
type = "string"
option = ["--rules"]
sources = ["help"]
[[commands.field]]
id = "no_alt_screen"
label = "Run inline (no alternate screen)"
type = "boolean"
option = ["--no-alt-screen"]
sources = ["help"]
[[commands.field]]
id = "disable_web_search"
label = "Disable web search"
type = "boolean"
option = ["--disable-web-search"]
sources = ["help"]
[[commands.task]]
id = "chat"
label = "Interactive session"
fields = ["prompt", "model", "cwd", "continue", "permission_mode"]
required = []
[[commands.task]]
id = "headless"
label = "One-shot headless prompt"
fields = ["single", "model", "cwd", "output_format", "max_turns", "permission_mode"]
required = ["single"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["prompt", "single", "model", "continue", "cwd", "permission_mode"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["prompt_file", "output_format", "always_approve", "max_turns", "reasoning_effort", "rules", "no_alt_screen", "disable_web_search"]