Grok Bot Can Now Call Codex and Claude Code—Don't Rush to Add a Bot
HarnessRouter connects Codex, Claude Code, Hermes, and others as switchable backends, while Grok Bot only coordinates. Whether it's worth adopting depends on how many harnesses you have and how context is passed.
Grok Bot Can Now Call Codex and Claude Code—Don't Rush to Add a Bot
Grok Bot can now use HarnessRouter to hand tasks to external agent harnesses and run them in the other party's native runtime. HarnessRouter is open source under Apache-2.0, and its GitHub page lists 26 harness bases, including Codex, Claude Code, Hermes, Pi, DeepSeek Harness, OpenCode, Gemini CLI, and others. Grok Bot does not switch harnesses itself, nor does it rely on creating multiple Bots for parallelism. It stays in the coordination role and drops subtasks into independent HarnessRouter sessions.
First, let's be clear about what a harness is. You can think of it as an agent's execution framework: it manages how models are called, how tools are connected, how sessions are stored, and how files are transferred. Previously, every time you integrated a harness, the product side had to handle the dirty work of sessions, streaming, files, cancellation, and failures. HarnessRouter's approach is to unify the interface with the Unified Harness Protocol, expose an OpenAI Responses-compatible API externally, and select a harness with metadata.harness_id. For Grok Bot, it only needs to learn how to talk to HarnessRouter.
Avi Chawla gave a test: turn a support-ticket CSV into an interactive dashboard. Grok Bot assigns the analysis to DeepSeek Harness plus Claude Sonnet 5.5, then hands the output to Codex plus GPT-5.5, and finally checks the finished product in the browser. Each worker uses its own harness, model, tools, skills, and agent loop. Handoffs happen in separate HarnessRouter sessions, not by switching back and forth inside Grok Bot.

This layer of abstraction solves integration cost, not automatically solving the context problem. In a reply, commenter John Rood pointed out that tasks can be routed because the task itself is text, but context does not follow the route. Codex and Claude Code each maintain their own session store, and when a second runtime takes over the same task, it may not know what the first just learned. Avi Chawla responded that each harness's native capabilities are preserved, just standardized, and Grok Bot only communicates with the HarnessRouter server. Another commenter asked about the permission model: the same task under Codex's sandbox and Claude Code's allowlist may be able to touch completely different things. Avi said that in this setup, control is in the user's hands. Another commenter poured cold water directly: they had long been running Codex through Grok Bot and didn't see why anything new was needed. That challenge isn't unreasonable. When you have only one harness, the router is redundant.
If you want to try it yourself, the community edition can be self-hosted. Start the service with one Docker command:
docker run -d --name harnessrouter -p 127.0.0.1:3000:3000 -v harnessrouter:/data harnessrouter/harnessrouter
Then open localhost:3000. The default username and password are both harnessrouter; change the password first after logging in. Under Bring your own key, connect a model provider. Under Start, describe the task; you can leave harness and model set to Auto for now. The repository also provides an OpenAI Responses-compatible API, trace headers, and Idempotency-Key, making it suitable for integrating into a product backend. Note that it is an Apache-2.0 community edition, not a hosted service given away for free.
The repository also provides a same-task comparison: across 8 harness and model configurations, the best and worst costs differ by up to 99.8%, and end-to-end latency differs by 3.2x. Don't read this as meaning that a particular harness is always cheaper or faster; the original text says the lowest-cost and fastest configurations vary by task. Its value is that you can switch backends per task without rewriting the integration for every backend.
So the criterion is quite unglamorous: if you are already manually moving tasks between Codex, Claude Code, and Hermes, a layer like HarnessRouter can save you from repeated wiring; if you have only one harness, first run one real task well, save it as a skill, and only then consider a routine. Don't set up routing just because you can route.
GitHub: http://github.com/HarnessRouter/harnessrouter
Avi Chawla's Grok Bot masterclass: https://x.com/i/article/2089601006472667136
The MemoryRouter context discussion: https://memoryrouter.ai/mcp
发布时间: 2026-10-25 09:42