Codex CLI met EU-modellen: Kimi K3, GLM 5.3 en DeepSeek V4.1 Flash via een zelf ingestelde aanbieder

Codex-configkaart met de regels model_provider nodion en wire_api responses, verbonden met een modelkaart van Kimi K3 met een groene Connected-chip, en daaronder tegels voor GLM 5.3 en DeepSeek

In het kort

  • Codex CLI gebruikt de Nodion AI Gateway via een zelf ingestelde aanbieder in ~/.codex/config.toml: base-URL https://api.nodion.ai/v1, env_key = "NODION_AI_KEY" en wire_api = "responses", de enige wire API die Codex nog accepteert.
  • De gateway routeert alleen naar aanbieders die in de EU gevestigd zijn, allemaal met zero data retention, en Codex roept Kimi K3, GLM 5.3 en DeepSeek V4.1 Flash aan met je API-sleutel van Nodion, zonder account bij de aanbieders.
  • Codex kent deze model-ID's niet en valt terug op een contextvenster van 272.000 tokens, onder de waarde uit de catalogus; sinds Codex 0.134.0 is elk profiel een apart bestand in ~/.codex, en een .codex/config.toml in een project kan de aanbieder niet instellen.
  • De /v1/responses van Nodion is stateless: Codex stuurt bij elk request het hele gesprek mee, webzoeken werkt en er wordt geen response opgeslagen; details staan in de AI-API-referentie.

Codex CLI kan werken met elke aanbieder die de OpenAI Responses API aanbiedt. De Nodion AI Gateway op https://api.nodion.ai/v1 biedt /v1/responses, dus één configuratieblok voor Nodion in ~/.codex/config.toml is genoeg om Codex te draaien met Kimi K3, GLM 5.3 of DeepSeek V4.1 Flash. De gateway routeert alleen naar aanbieders die in de EU gevestigd zijn, allemaal met zero data retention. Je hebt geen account bij die aanbieders nodig: Codex roept alles aan met je API-sleutel van Nodion.

Deze handleiding volgt de Codex-documentatie van release 0.165.0 (oktober 2026).

Wat je nodig hebt

  • Een Nodion-account en een project met AI Inference.
  • Een API-sleutel: een inference-sleutel uit AI Inference → Keys (begint met nodion_ai_ en wordt maar één keer getoond), of een sleutel die je op je AI Coding Plan aanmaakt. Sleutels voor de API van het Nodion-platform werken hier niet.
  • Prepaid tegoed, tenzij de sleutel bij een AI Coding Plan hoort.
  • Codex CLI. De profielbestanden verderop vereisen 0.134.0 of nieuwer.

Zet de sleutel in de shell waarin Codex draait:

export NODION_AI_KEY=nodion_ai_your_key

Nodion toevoegen als eigen aanbieder

Open ~/.codex/config.toml en voeg toe:

# ~/.codex/config.toml
model = "moonshot/kimi-k3"
model_provider = "nodion"

[model_providers.nodion]
name = "Nodion"
base_url = "https://api.nodion.ai/v1"
env_key = "NODION_AI_KEY"
wire_api = "responses"
  • model is de model-id uit de Nodion-catalogus, inclusief de slash.
  • model_provider selecteert het blok hieronder. De id's openai, ollama en lmstudio zijn gereserveerd, dus de aanbieder heeft een eigen id nodig.
  • env_key noemt de omgevingsvariabele met de sleutel. Eigen aanbieders slaan de OpenAI-login over, tenzij je requires_openai_auth instelt.
  • wire_api = "responses" is de enige waarde die Codex accepteert, en ook de standaardwaarde. Codex weigert oudere configs met wire_api = "chat" zodra het ze inleest: `wire_api = "chat"` is no longer supported.

Bronnen, gecontroleerd in oktober 2026: Codex-configuratiereferentie, discussie #7782, model-provider-info.

Een model kiezen

Drie chatmodellen uit de lijst van AI Coding Plans, allemaal met tools en reasoning:

ModelIdInvoerContext (catalogus)Max. uitvoer
Kimi K3moonshot/kimi-k3Tekst, afbeelding, video1.048.57632.768
GLM 5.3z-ai/glm-5.3Tekst1.048.576131.072
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flashTekst, afbeelding1.048.576393.216

Wissel voor één sessie van model met -m (--model); de aanbieder blijft die uit je configuratie:

codex -m z-ai/glm-5.3
codex -m deepseek/deepseek-v4.1-flash

Profielen zijn nu aparte bestanden

Sinds Codex 0.134.0 leest --profile geen tabellen [profiles.name] meer uit config.toml. Elk profiel is een eigen bestand, ~/.codex/<name>.config.toml, met keys op het hoogste niveau die Codex over je basisconfig heen legt. Houd het providerblok in config.toml en maak één profiel per model:

# ~/.codex/nodion-glm.config.toml
model = "z-ai/glm-5.3"
model_provider = "nodion"
codex --profile nodion-glm
codex exec --profile nodion-glm "Summarize the open TODOs in this repo"

Projectconfiguraties kunnen de aanbieder niet instellen

Codex leest voor vertrouwde projecten een .codex/config.toml in een repository, maar negeert daarin model_provider en model_providers en toont bij het opstarten een waarschuwing. Het configuratieblok voor de aanbieder hoort dus in ~/.codex/config.toml of in een profielbestand. Lijken je instellingen geen effect te hebben, dan laat /debug-config zien welke configuratielagen Codex heeft geladen.

Bronnen: geavanceerde Codex-configuratie, basisconfiguratie van Codex, slash-commando's.

Let op het contextvenster

Codex heeft geen ingebouwde metadata voor deze model-id's. Het meldt Unknown model moonshot/kimi-k3 is used. This will use fallback model metadata. en werkt met een contextvenster van 272.000 tokens. model_context_window kan die waarde verlagen, maar niet verhogen. In Codex blijft de bruikbare context dus onder de 1.048.576 tokens die de catalogus voor alle drie de modellen noemt. De waarschuwing zelf is normaal.

Bron: model_info.rs in de Codex-repository.

De configuratie controleren

Start codex in een repository en voer /status uit. Je ziet dan de sessieconfiguratie: het actieve model, het goedkeuringsbeleid (approval policy), de schrijfbare mappen en de resterende context. Dat bewijst nog niet dat een call is doorgekomen, dus stuur een eerste prompt, bijvoorbeeld “Leg in twee zinnen uit wat deze repository doet.” Komt er een antwoord, dan werken de sleutel, de base URL en de model-id. De tabbladen Usage en Requests in AI Inference tonen het verkeer.

Wat een stateless /v1/responses in de praktijk betekent

  • Er wordt niets opgeslagen. Nodion slaat geen responses op: store wordt genegeerd en het antwoord meldt store: false. Er is geen previous_response_id, conversation of GET /v1/responses/{id}. Codex stuurt bij elk request het hele gesprek mee in input, dus het heeft die niet nodig.
  • Lange sessies kosten meer per beurt. Elk request bevat het gesprek tot dan toe, dus het aantal input-tokens groeit met de sessie. Gecachete input wordt tegen de cacheprijs gefactureerd als de route dat rapporteert.
  • Webzoeken werkt. De gateway voert web_search zelf uit via de webzoekfunctie van Nodion en geeft de zoekopdracht en de bron-URL's terug in een item web_search_call. De zoekfunctie geeft indexresultaten terug (titel, URL, fragment) en opent geen pagina's. Standaard maximaal 10 zoekopdrachten per response (max_tool_calls, tot 20).
  • Tools: function, custom, namespace en web_search. Andere hosted tools worden geweigerd.
  • Tool-output is tekst. Afbeeldingen en bestanden in tool-output bereiken het model niet; een notitie in de tekst vervangt ze.

Facturering: tegoed of coding plan

Gebruik met een sleutel zonder plan wordt betaald uit het prepaid tegoed: input- en outputtokens tegen de prijs van het model. Elke webzoekopdracht wordt gefactureerd als een aanroep van de webzoektool, en elke modelronde als een chat completion. Een sleutel op een AI Coding Plan (Go, Pro of Max) gebruikt in plaats daarvan het inbegrepen gebruik van het plan voor chat en tools. Dat gebruik telt mee voor een venster van 5 uur, een weekvenster en een maandvenster. Is één van die limieten bereikt, dan lopen requests alleen door op het tegoed als het plan gebruik van het tegoed toestaat. Prijzen per model staan op de modelpagina's onder AI Inference, de plannen op AI Coding Plans.

Problemen oplossen

  • 401: de sleutel ontbreekt of is van het verkeerde type. Platformsleutels (nodion_…) werken niet op deze API. Gebruik een inference-sleutel (nodion_ai_…) of een sleutel van je coding plan, en controleer of NODION_AI_KEY is geëxporteerd in de shell die Codex start.
  • 400 voor een tool: andere hosted tools dan web_search, zoals file_search of code_interpreter, worden met 400 geweigerd. Dat geldt ook voor background, prompt, truncation: "auto", file_id en file_url.
  • 404 model not found: de model-id klopt niet. curl https://api.nodion.ai/v1/models toont de exacte id's en heeft geen sleutel nodig.
  • 402: het tegoed dekt het request niet, of er is een uitgavelimiet bereikt. Vul je tegoed aan op het tabblad Billing of controleer de daglimiet van de sleutel.
  • 503: geen gezonde route voor het model past bij de AI-instellingen van het project, bijvoorbeeld omdat de aanbieders ervan daar zijn uitgesloten.

Bronnen: AI-API-referentie: Responses API, fouten en limieten, documentatie van AI Inference, AI Coding Plans.

Volgende stappen

Veelgestelde vragen

Kan Codex CLI andere modellen gebruiken dan die van OpenAI?

Ja. Codex ondersteunt zelf ingestelde aanbieders die de OpenAI Responses API aanbieden. Met een model_providers-blok voor https://api.nodion.ai/v1 draait het met Kimi K3, GLM 5.3 of DeepSeek V4.1 Flash via de Nodion AI Gateway, die alleen naar aanbieders routeert die in de EU gevestigd zijn.

Ondersteunt Codex CLI nog wire_api = "chat"?

Nee. Codex weigert wire_api = "chat" bij het inlezen van de config. "responses" is de enige ondersteunde waarde en de standaardwaarde, dus een zelf ingestelde aanbieder moet de Responses API aanbieden.

Waarom is het contextvenster in Codex kleiner dan dat van het model?

Codex heeft geen metadata voor model-ID's die het niet kent en valt terug op een venster van 272.000 tokens. De instelling model_context_window kan die waarde verlagen, maar niet verhogen.

Kan ik Codex-gebruik betalen met een AI Coding Plan?

Ja. Een sleutel die je op een AI Coding Plan van Nodion aanmaakt, gebruikt het inbegrepen gebruik van het plan voor chat en tools, geteld in vensters van 5 uur, een week en een maand. Sleutels zonder plan betalen uit het prepaid tegoed.

Geef je agent een cloud.

Ontvang tot € 15 welkomsttegoed bij je registratie.

Doorgaan met GitHub

of met e-mail

Blijf op de hoogte.

Productnieuws, geen spam. Je kunt je altijd weer afmelden.