A 62-file sidecar changes Grok Bot's model routes
opengrok assigns a model slug and OpenAI-compatible base URL to each Grok Bot agent. Provider maps then translate controls such as thinking mode or reasoning effort into the request shape expected by xAI, Zhipu, Anthropic, Google, DeepSeek, or a local server. The checkout we examined had 62 files and about 5,202 source lines, so this is a small integration layer rather than a model host.
The distinction matters. opengrok does not supply model access, compute, or a replacement Grok Bot host. Its setup script searches for an existing Grok Bot configuration directory, records locally reachable services, writes model-bindings.json, creates a baseline for doctor.py, and opens a picker on port 8766. A successful picker probe proves that the local hop answered. The cloud-host guide says it does not prove that a normal Bot conversation used the saved binding.
Six open issues and pull requests expose the cloud gap
GitHub listed 6 combined open issues and pull requests after a last push on 2026-08-29. Issue #5 reports that stock Grok Bot bundles do not contain openai-hop-session.cjs or the anchor strings expected by apply-box-patch.py. Issue #8 repeats the failure against another cloud bundle: the dry run stops because the separate hop file is absent, while all relevant anchor counts are zero.
That evidence conflicts with the cloud-host guide, which says the repository now contains everything needed. The guide describes copying bindings and provider maps to /home/box/sand-data, patching the host, bouncing it through its supervisor, and watching the hop during a normal chat turn. Those are sensible verification steps, but they do not solve a missing patch target. Stock cloud users should treat routing as blocked until a supported bundle path is demonstrated.
What happened when we ran it
Our sandbox installed commit 2b35664 in 35 seconds, pulling 35 packages and occupying 37 MB on disk. The build completed in 9 seconds. pip-audit found 0 known vulnerabilities in the installed Python environment. We used an unprivileged Debian container with 3 CPUs, 8 GB of RAM, no secrets, and a Python 3.12 uv image.
The repository offered no tests script or target that our harness could run, so the test step was skipped. That result does not mean its provider maps are untested under every workflow. It means this exact checkout did not expose a conventional suite to our fresh environment. Our scan found one CI workflow, no Dockerfile, and no tests directory. For a tool that patches routing behavior, a discoverable test entry point would make outside verification easier.
One null value can disable the drift checker
Issue #4 gives a precise first-run failure on Python 3.14.5. If doctor.py --init records a missing bindings file, its baseline stores a null SHA. After a valid bindings file appears, the next doctor run slices that null value and raises TypeError. Running --init again hits the same comparison before rewriting the baseline, so recovery requires deleting the baseline or applying the proposed code fix.
The issue also reports a smaller endpoint mismatch: the picker checks /health, while the bundled hop server answers /healthz. That can make a live hop disappear from the picker and cause it to use the bundled catalog. Both faults matter because the project's update story depends on the doctor and picker telling the truth after Grok Bot changes. A routing tool needs negative checks that fail clearly, especially when a fallback model could otherwise answer without revealing the substitution.
Three credential lanes turn voice into a separate deployment
The voice assistant requires 3 service lanes. Speech input uses Grok CLI authentication or a JWT, the realtime brain uses OpenAI access or an existing Codex login, and speech output uses an ElevenLabs key and voice ID. The browser panel and services stay on localhost by default, while microphone access depends on using a secure local browser context.
This voice folder is related code, but it should not influence a decision about basic model routing. It introduces several credentials, audio turn detection, a consult gateway, and more local processes to watch. The README's short setup command applies to repository configuration, not to obtaining each outside service or proving that a cloud conversation followed the new route. Anyone interested only in per-agent model choice can leave voice unconfigured.
A four-day history is too short for unattended routing
The repository was created on 2026-08-27, had 391 stars when fetched, and had no latest GitHub release. Activity is current: the last push was 2026-08-29, and issue reports arrived through 2026-08-30. That is healthy early feedback, yet four days cannot show how the patcher behaves across several Grok Bot updates or whether provider mappings stay correct over time.
LiteLLM and Portkey AI Gateway are better comparisons when several applications need a shared model proxy with routing controls. Open WebUI is the cleaner option when replacing the front end is acceptable. opengrok earns a local trial for a developer already inside Grok Bot, but the 35-second install should not be confused with a finished cloud integration. Until the missing stock-bundle path and doctor crash are fixed, manual verification is part of every safe use.

