What broke after the merge
The new desktop client still speaks the OpenAI Responses path that
Codex users know—but tool definitions no longer always sit on the
top-level tools field. They arrive as
additional_tools items inside the
input array.
Merged ChatGPT+Codex (gpt-5.6)
-> Responses request
-> tools live in input[].type = "additional_tools" ← easy to miss
-> naive proxy forwards empty tools
-> DeepSeek / MiMo / … reply with fake <tool_call> text
That is not a model quality issue. The model never received the tool schema. Users see “tools broken” after updating the client even when their API keys are fine.
What MuxLayer 1.4.12 does
| Problem | MuxLayer fix |
|---|---|
Tools only in
additional_tools
|
Hoist into tools before Chat / Anthropic /
Gemini conversion
|
| gpt-5.6 model names unknown |
Catalog + pricing for
gpt-5.6,
-sol,
-terra,
-luna; Codex mappings included
|
Fake
<commentary> /
<context_addition> tags
|
Strip tags across SSE chunk boundaries, keep the readable text |
| Merged app process renamed | Client restart helper recognizes main process “ChatGPT” and still falls back to Codex.app |
The local path
ChatGPT+Codex desktop
-> OpenAI-style provider entry (plugins / account path kept when you need it)
-> http://127.0.0.1:9090 (MuxLayer)
-> DeepSeek / Xiaomi MiMo / OpenAI / Kimi / GLM / DashScope / OpenRouter / …
MuxLayer is not a hosted reseller. Keys stay on your machine. Logs show route decisions, converted payloads, tokens, cost, and failover—so when something fails, you see where, not a black box.
Five-minute setup
- Install MuxLayer 1.4.12 (macOS / Windows / Linux).
- Add a provider (DeepSeek, MiMo, …) and paste your API key.
-
Start the gateway — default
http://127.0.0.1:9090. - On Clients, click Apply Config for Codex / ChatGPT+Codex.
- Send a message that should call a tool. In Logs, confirm the upstream and that tools were present—not only plain text.
Need plugins and official account features? Keep the desktop app signed in; MuxLayer preserves the OpenAI-authenticated provider path while moving the model base URL to localhost. Details: Codex Desktop + plugins.
Who this is for
- You upgraded to the merged ChatGPT+Codex app and third-party models “lost” tools overnight.
- You want one local endpoint for Codex / Claude Code / Gemini CLI / OpenCode, not a different proxy config per app.
- You care about failover, cost traces, and one-click switch back to official config.
FAQ
Why did tools stop working after the ChatGPT+Codex merge?
Tool definitions moved into
additional_tools inside
input. Proxies that only read top-level
tools send an empty schema upstream.
Is MuxLayer a cloud proxy?
No. It runs locally. You bring your own provider keys. Prefer server-side multi-tenant billing? Look at LiteLLM / new-api instead—see MuxLayer vs LiteLLM.
Which version do I need?
1.4.12 or later for
additional_tools hoisting and the gpt-5.6 catalog.
Older builds still work as a general gateway but will not fix this
protocol shape.