feat: add Grok Build CLI as supported agent#831
Conversation
Add xAI's official Grok Build CLI as a supported agent provider via its native ACP entry (`grok agent stdio`) — no wrapper required. Files added: - Dockerfile.grok: runtime image with pinned grok 0.1.211 binary (SHA256-verified, sourced from xAI's public artifacts bucket) - docs/grok.md: setup guide covering Docker build, Helm install, three auth options (API key / device-code / deployment key), credential persistence, and a comparison with Dockerfile.hermes - config.toml.example: agent example placed next to the hermes one - .github/workflows/build.yml: grok variant added to build-image, merge-manifests, and promote-stable matrices so the ghcr.io/openabdev/openab-grok image is published alongside other agent variants Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirrors the other agent variants so CI builds the Dockerfile.grok image and verifies that `grok agent stdio` answers the ACP initialize handshake (falling back to `grok --help` when auth is missing, same as other agents). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
All PRs must reference a prior Discord discussion to ensure community alignment before implementation. Please edit the PR description to include a link like: This PR will be automatically closed in 3 days if the link is not added. |
OpenAB PR ScreeningThis is auto-generated by the OpenAB project-screening flow for context collection and reviewer handoff.
Screening reportposted screening comment and moved the project item to `PR-Screening`.GitHub comment: #831 (comment) IntentPR #831 makes Grok a complete Helm-deployable CLI option for OpenAB. FeatFeature work: Helm values example, NOTES auth guidance, Dockerfile, CI coverage, config example, and docs. Who It ServesDeployers and agent runtime operators using OpenAB via Helm. Rewritten PromptAdd Grok as a documented, opt-in Helm agent example following existing agent conventions. Keep it disabled by default, document Merge PitchWorth advancing. Risk is moderate: mostly additive docs/config, but Dockerfile and workflow changes need focused review. Best-Practice ComparisonHermes Agent is the relevant comparison: this follows the same per-agent Helm/docs pattern. OpenClaw scheduling/delivery practices do not directly apply here. Implementation Options
Comparison TableIncluded in the GitHub comment. RecommendationUse the balanced path. Advance to PR-Screening, then have Masami or Pahud review Dockerfile, workflow changes, and Helm rendering. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Add guidance for bot/CI users to prefer GROK_CODE_XAI_API_KEY via secretEnv instead of interactive device-auth login.
….grok The symlink is not referenced by OpenAB, Helm, or CI and may cause confusion in multi-agent environments.
|
Thanks for the review!
Both changes have been committed and pushed. Thanks again for the review! |
|
LGTM ✅ — All previous findings addressed. Clean integration following established patterns. What This PR DoesAdds Grok Build CLI as a first-class agent in OpenAB: Dockerfile, Helm values/NOTES, CI pipelines, config example, and full documentation. How It Works
Findings
Baseline Check
What's Good (🟢)
Review TeamReviewed by: 超渡法師 (coordinator), 普渡法師, 擺渡法師, 口渡法師
|
9316eb6 to
6076fc4
Compare
What problem does this solve?
OpenAB is adding Grok Build as one of its supported CLIs through the official
grok agent stdiointerface. However, for a new CLI to be truly usable in production environments, the Helm chart configuration must be complete and consistent with other supported agents.Currently, agents such as hermes, cursor, claude, codex, gemini, and opencode all provide clear, ready-to-use configuration examples in
values.yaml, along with authentication instructions inNOTES.txt. This allows users to easily enable them via Helm.Grok was missing this piece. As a result, Helm users had to manually construct long and error-prone
--setcommands, making the experience inconsistent and incomplete.This PR adds the necessary Helm configuration example for Grok, completing its support as a first-class CLI option in OpenAB.
At a Glance
User experience comparison when deploying Grok as a CLI:
Before (Missing Helm configuration example):
After (This PR):
Actual connection after Helm deployment:
Prior Art & Industry Research
Hermes Agent (PR #824):
The most relevant reference. Hermes was introduced with full documentation, including a detailed commented block in
values.yamland login instructions inNOTES.txt. This has become the standard approach when adding new CLI/agent support in OpenAB.Other agents:
Cursor, Claude, Codex, Gemini, and OpenCode all follow the same pattern, providing clear Helm examples so users can adopt them easily.
OpenClaw:
Takes a different gateway-style approach and does not maintain per-CLI Helm examples in the same way, making it a less direct reference.
Proposed Solution
# grok:configuration block incharts/openab/values.yaml.charts/openab/templates/NOTES.txt.The Helm templates themselves did not require changes, as they already support arbitrary agents generically.
Why this approach?
To establish Grok as a properly supported CLI in OpenAB, it must offer the same level of Helm usability as other agents. Providing a clear configuration example is the minimal and most consistent way to achieve this.
Alternatives Considered
--setflags in the documentation — Rejected. This would result in a significantly worse experience for Helm users compared to other CLIs.Validation
Helm chart validation:
helm template test charts/openabrenders successfully.helm template test charts/openab --set agents.kiro.enabled=false --set agents.grok.enabled=trueproduces a valid Grok deployment.Manual testing:
Dockerfile.groklocally.grok agent stdio.grok login --device-authinside the container using a real SuperGrok subscription.Follow-ups
None. This PR completes the Helm configuration support for Grok as a CLI in OpenAB.