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.mdwithapply_patch; avoid fragile shell quoting. - Start Grok with
exec_command, normally usingyield_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.