Kimi K3 in the Codex Desktop App: the Custom Provider Setup Nobody Shows in the GUI

Model: Kimi K3 · ✓ Verified on Codex desktop app + CLI, shared config.toml · 2026-10-11

The Codex desktop app has no GUI for adding a custom model provider. There is no settings page, no endpoint field, no API-key box — and, as of our check on October 11, 2026, nothing in OpenAI's configuration reference suggests one is coming. Yet the desktop app can run on Kimi K3 today, because it reads the same configuration file as the CLI.

Disclosure: Wallaby Token sells API access to Kimi K3, and the endpoint below is ours. The desktop behavior described here follows Moonshot AI's official Codex guide (kimi.ai/resources/codex-api), fetched October 11, 2026.

One file configures both apps

The desktop app and the CLI share the user-level ~/.codex/config.toml (on Windows: %USERPROFILE%\.codex\config.toml). Whatever provider you define there is available to both. So the setup is exactly the CLI setup — if you already followed our Codex CLI walkthrough, you are one restart away from done.

The minimal block, with Kimi K3 on our endpoint:

model = "kimi-k3"
model_provider = "wallaby"
model_context_window = 1048576

[model_providers.wallaby]
name = "Wallaby"
base_url = "https://api.wallabytoken.com/v1"
env_key = "WALLABY_API_KEY"
wire_api = "responses"

Two details carry the load. wire_api = "responses" is mandatory — current Codex accepts no other value, and the old "chat" setting errors out at startup. And model_context_window = 1048576 tells Codex about K3's 1M-token context; without it, Codex falls back to conservative default metadata. Keep any existing provider blocks, including [model_providers.openai], untouched — multiple providers coexist fine.

Export the key in your environment (export WALLABY_API_KEY=... on macOS/Linux, or a system environment variable on Windows). Never paste the key into the TOML file — always reference it through the environment variable. Hard-coded keys leak through file shares, screenshots, and git commits.

The restart that actually matters

Codex reads config.toml only at startup, and "startup" is stricter on the desktop app than you'd expect. Closing the window is not enough: on macOS, quit with Command+Q; on Windows, close every window and confirm the app is gone from the system tray. Then reopen.

If you still get "missing environment variable" after a full quit, you have hit the daemon trap: the desktop app talks to a background app-server process whose environment was captured when the daemon started, not when you exported the variable. On macOS, fix it with:

launchctl setenv WALLABY_API_KEY "your-key"
pkill -f "codex app-server"

Note: launchctl setenv lasts until the next reboot, not forever. For a variable that survives restarts, also add it to your shell profile (~/.zshrc) or use a LaunchAgent.

Then start the app again. On Windows, sign out and back in after setting the variable system-wide.

"Custom" in the model picker is success

After the restart, open a project, switch to Codex mode, and check the model picker. It may show Custom instead of kimi-k3. This is expected behavior, not a misconfiguration: the desktop model list doesn't display names for providers defined in config.toml, but requests still go to the model you configured. Moonshot's own guide documents the same quirk with screenshots. This picker quirk was observed on the Codex desktop build tested on October 11, 2026; future releases may change the behavior.

Verify with a throwaway hi, then a real agent task — "inspect this repository and summarize its structure" — and confirm the run continues after tool results come back. That proves both model calls and tool calling are alive.

When the desktop route is worth it

The desktop app earns its place if you live in its project view and want K3's 1M context on large repositories without leaving the GUI. If you're migrating off a retiring OpenAI default anyway, this is the same config.toml door — our GPT-5.5 migration guide covers the OpenAI-side checklist.

Cost-wise, nothing changes versus the CLI: same endpoint, same metered billing. Kimi K3 lists at $3.00 / $15.00 per 1M input / output tokens; on Wallaby the rate is 10% off the official list, ongoing, with $0.50 in trial credit on a new account — enough to verify this setup end to end several times over.

Verified against the official Codex configuration reference and Moonshot's Codex guide on October 11, 2026. The desktop app's GUI surface changes quickly; if a provider settings page appears in a future release, it can only make this easier.

Note: configuration options, version numbers, and pricing in this post were verified on October 11, 2026. Tools and APIs change — cross-check the official documentation before relying on specifics.

Why Wallaby

Every request lands on your invoice as an itemized line with token counts — no content logs, no training on your data, no usage reports built from your traffic. We host open-weight models only, keep a public status page, and run our own work through the same gateway we sell.

Live pricing · Status · Why we built Wallaby

Did this help?