| name | grok-build-cli |
| description | Invoke the locally installed Grok Build CLI from Codex and return Grok's response. Use whenever the user asks Codex to call, consult, run, or delegate a prompt to Grok or Grok Build, including Grok web/X searches and agentic Grok tasks. This Skill covers only the invocation mechanism, process monitoring, and response capture; it does not prescribe the task itself. |
Call Grok Build
Call the local grok CLI from Codex. Do not add an unrelated research,
download, editing, or production workflow.
Check availability
Before the first call in a task, run:
command -v grok
grok models
grok models must confirm that the user is logged in and show at least one
available model. If authentication is missing, report it and run grok login
only when the user wants to authenticate interactively.
Choose the call form
For a direct single-turn answer that does not need Grok tools:
grok --single 'PROMPT' --output-format plain
For an agentic task that may use Grok's tools, including X or web search, put
the full prompt in a UTF-8 file and run:
grok --prompt-file '/absolute/path/prompt.md' \
--max-turns 8 \
--output-format plain
Use --model MODEL only when the user requests a particular available model.
Otherwise use Grok's configured default.
Run from Codex
- For a long prompt, create
prompt.md with apply_patch; avoid fragile shell
quoting.
- Start Grok with
exec_command, normally using yield_time_ms: 1000.
- If the command returns a session ID, poll it with
write_stdin, sending an
empty string and waiting at most 30 seconds per poll.
- Share a concise progress update when a call runs longer than 60 seconds.
- Capture Grok's final stdout. Treat a nonzero exit code,
Max turns reached,
or empty final output as failure.
- Return Grok's answer to the user, clearly identified as Grok's result when
attribution matters.
Isolation
When Grok should only execute the supplied prompt and must not inspect the
current repository's skills or instructions, give it an empty temporary
working directory:
GROK_CALL_DIR="$(mktemp -d)"
grok --cwd "$GROK_CALL_DIR" --no-memory --no-subagents \
--prompt-file '/absolute/path/prompt.md' \
--max-turns 8 \
--output-format plain
Use this isolation by default for web/X research and independent second
opinions. Use the actual project directory only when Grok must read or modify
that project.
Guardrails
- Do not claim Grok was called unless the CLI actually ran.
- Do not fabricate, paraphrase as successful, or silently replace an empty or
failed Grok response.
- Do not pass secrets in prompts or command-line arguments.
- Do not use
--always-approve, bypassPermissions, or broad write access
unless the user explicitly authorizes the corresponding mutations.
- Do not resume an unrelated prior Grok session. Start a new call unless the
user explicitly asks to continue a specific Grok session.
- Keep this Skill task-agnostic: the user's prompt determines what Grok does.