OpenAI's terminal AI coding assistant
Connect Codex to QwenCloud via Token Plan (Individual), Token Plan (Team Edition), or pay-as-you-go billing.
Quick Start
1
Open or create the configuration file
- macOS / Linux:
~/.codex/config.toml - Windows:
C:\Users\<username>\.codex\config.toml
2
Configure the model
To switch between models, see Configure model metadata.
- Token Plan
- Pay-as-you-go
Replace
OPENAI_API_KEY with your Token Plan API key:- Token Plan (Individual): Create or view API Key
- Token Plan (Team Edition): Assign a seat and get the API Key
Copy
model_provider = "Token_Plan"
model = "auto"
[model_providers.Token_Plan]
name = "Token_Plan"
base_url = "https://token-plan.maas.qwencloudapi.com/compatible-mode/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"
Replace
OPENAI_API_KEY with your QwenCloud API Key. The following example uses the Singapore region.Copy
model_provider = "QwenCloud"
model = "qwen3.7-max"
[model_providers.QwenCloud]
name = "QwenCloud"
# Singapore (ap-southeast-1). For another region, replace ap-southeast-1 in the URL.
# API keys are region-specific. See https://docs.qwencloud.com/developer-guides/getting-started/regions
base_url = "https://ap-southeast-1.maas.qwencloudapi.com/compatible-mode/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"
3
Verify
Run the following command in your project directory:
Copy
codex exec "Hello"
Configure model metadata
Model metadata is used to switch between models in Codex. Without it, the model specified inconfig.toml still works, but Codex shows the Model metadata ... not found warning at startup and uses default metadata. After configuring it, switch models with codex -m or /model in the TUI.
- Token Plan Personal Edition
- Token Plan Team Edition
- Pay-as-you-go
Create Add the following to After configuring, specify a model with
~/.codex/model-catalog.local.json with the following content:Copy
{
"models": [
{
"slug": "auto",
"display_name": "auto",
"description": "DashScope model: auto",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 1,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen4-max-preview",
"display_name": "qwen4-max-preview",
"description": "DashScope model: qwen4-max-preview",
"default_reasoning_level": "xhigh",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 2,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.8-max",
"display_name": "qwen3.8-max",
"description": "DashScope model: qwen3.8-max",
"default_reasoning_level": "xhigh",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 983616,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 3,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.8-flash",
"display_name": "qwen3.8-flash",
"description": "DashScope model: qwen3.8-flash",
"default_reasoning_level": "xhigh",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 983616,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 4,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.7-max",
"display_name": "qwen3.7-max",
"description": "DashScope model: qwen3.7-max",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 5,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.7-plus",
"display_name": "qwen3.7-plus",
"description": "DashScope model: qwen3.7-plus",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 6,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.6-flash",
"display_name": "qwen3.6-flash",
"description": "DashScope model: qwen3.6-flash",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 7,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "glm-5.3",
"display_name": "glm-5.3",
"description": "DashScope model: glm-5.3",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 8,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "glm-5.2",
"display_name": "glm-5.2",
"description": "DashScope model: glm-5.2",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 9,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4.1-flash",
"display_name": "deepseek-v4.1-flash",
"description": "DashScope model: deepseek-v4.1-flash",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 10,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4.1-flash-1017",
"display_name": "deepseek-v4.1-flash-1017",
"description": "DashScope model: deepseek-v4.1-flash-1017",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 11,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4-pro",
"display_name": "deepseek-v4-pro",
"description": "DashScope model: deepseek-v4-pro",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 12,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4-pro-0813",
"display_name": "deepseek-v4-pro-0813",
"description": "DashScope model: deepseek-v4-pro-0813",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 13,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4-flash-0731",
"display_name": "deepseek-v4-flash-0731",
"description": "DashScope model: deepseek-v4-flash-0731",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 14,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
}
]
}
~/.codex/config.toml:Copy
model_catalog_json = "~/.codex/model-catalog.local.json"
codex -m (for example, codex -m qwen3.8-flash), or enter /model in the TUI to switch between the configured models.Create Add the following to After configuring, specify a model with
~/.codex/model-catalog.local.json with the following content:Copy
{
"models": [
{
"slug": "auto",
"display_name": "auto",
"description": "DashScope model: auto",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 1,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen4-max-preview",
"display_name": "qwen4-max-preview",
"description": "DashScope model: qwen4-max-preview",
"default_reasoning_level": "xhigh",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 2,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.8-max",
"display_name": "qwen3.8-max",
"description": "DashScope model: qwen3.8-max",
"default_reasoning_level": "xhigh",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 983616,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 3,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.8-flash",
"display_name": "qwen3.8-flash",
"description": "DashScope model: qwen3.8-flash",
"default_reasoning_level": "xhigh",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 983616,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 4,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.7-max",
"display_name": "qwen3.7-max",
"description": "DashScope model: qwen3.7-max",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 5,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.7-plus",
"display_name": "qwen3.7-plus",
"description": "DashScope model: qwen3.7-plus",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 6,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.6-flash",
"display_name": "qwen3.6-flash",
"description": "DashScope model: qwen3.6-flash",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 7,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "glm-5.3",
"display_name": "glm-5.3",
"description": "DashScope model: glm-5.3",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 8,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "glm-5.2",
"display_name": "glm-5.2",
"description": "DashScope model: glm-5.2",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 9,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4.1-flash",
"display_name": "deepseek-v4.1-flash",
"description": "DashScope model: deepseek-v4.1-flash",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 10,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4.1-flash-1017",
"display_name": "deepseek-v4.1-flash-1017",
"description": "DashScope model: deepseek-v4.1-flash-1017",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 11,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4-pro",
"display_name": "deepseek-v4-pro",
"description": "DashScope model: deepseek-v4-pro",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 12,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4-pro-0813",
"display_name": "deepseek-v4-pro-0813",
"description": "DashScope model: deepseek-v4-pro-0813",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 13,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4-flash-0731",
"display_name": "deepseek-v4-flash-0731",
"description": "DashScope model: deepseek-v4-flash-0731",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 14,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.6-plus",
"display_name": "qwen3.6-plus",
"description": "DashScope model: qwen3.6-plus",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 15,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "kimi-k2.7-code",
"display_name": "kimi-k2.7-code",
"description": "DashScope model: kimi-k2.7-code",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 262144,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 16,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "kimi-k2.6",
"display_name": "kimi-k2.6",
"description": "DashScope model: kimi-k2.6",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 262144,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 17,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "kimi-k2.5",
"display_name": "kimi-k2.5",
"description": "DashScope model: kimi-k2.5",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 262144,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 18,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "glm-5.1",
"display_name": "glm-5.1",
"description": "DashScope model: glm-5.1",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 202752,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 19,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "glm-5",
"display_name": "glm-5",
"description": "DashScope model: glm-5",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 202752,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 20,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "MiniMax-M2.5",
"display_name": "MiniMax-M2.5",
"description": "DashScope model: MiniMax-M2.5",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 204800,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 21,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
}
]
}
~/.codex/config.toml:Copy
model_catalog_json = "~/.codex/model-catalog.local.json"
codex -m (for example, codex -m qwen3.6-plus), or enter /model in the TUI to switch between the configured models.Create Add the following to After configuring, specify a model with
~/.codex/model-catalog.local.json with the following content:Copy
{
"models": [
{
"slug": "qwen3.8-max",
"display_name": "qwen3.8-max",
"description": "DashScope model: qwen3.8-max",
"default_reasoning_level": "xhigh",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 983616,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": true,
"input_modalities": [
"text",
"image"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 1,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "qwen3.7-max",
"display_name": "qwen3.7-max",
"description": "DashScope model: qwen3.7-max",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 2,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "deepseek-v4-pro",
"display_name": "deepseek-v4-pro",
"description": "DashScope model: deepseek-v4-pro",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 3,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
},
{
"slug": "glm-5.2",
"display_name": "glm-5.2",
"description": "DashScope model: glm-5.2",
"default_reasoning_level": "medium",
"supported_reasoning_levels": [
{
"effort": "low",
"description": "Fast responses with lighter reasoning"
},
{
"effort": "medium",
"description": "Balances speed and reasoning depth"
},
{
"effort": "high",
"description": "Greater reasoning depth for complex problems"
},
{
"effort": "xhigh",
"description": "Extra high reasoning depth for complex problems"
}
],
"context_window": 1000000,
"effective_context_window_percent": 95,
"supports_parallel_tool_calls": false,
"supports_image_detail_original": false,
"input_modalities": [
"text"
],
"shell_type": "default",
"visibility": "list",
"supported_in_api": true,
"priority": 4,
"base_instructions": "",
"support_verbosity": false,
"supports_reasoning_summaries": false,
"experimental_supported_tools": [],
"truncation_policy": {
"mode": "bytes",
"limit": 10000
}
}
]
}
~/.codex/config.toml:Copy
model_catalog_json = "~/.codex/model-catalog.local.json"
codex -m (for example, codex -m qwen3.8-max), or enter /model in the TUI to switch between the configured models.Chat Completions configuration
Codex 0.94.0 and later support only the Responses API. If you use Codex 0.93.0 or an earlier version, or your model supports only Chat Completions, use the following configuration. For the configuration file path, see Quick Start.- Token Plan
- Pay-as-you-go
Replace
OPENAI_API_KEY with your Token Plan API key:- Token Plan (Individual): Create or view API Key
- Token Plan (Team Edition): Assign a seat and get the API Key
Copy
model_provider = "Token_Plan"
model = "auto"
[model_providers.Token_Plan]
name = "Token_Plan"
base_url = "https://token-plan.maas.qwencloudapi.com/compatible-mode/v1"
env_key = "OPENAI_API_KEY"
wire_api = "chat"
Replace
OPENAI_API_KEY with your QwenCloud API Key. The following example uses the Singapore region.Copy
model_provider = "QwenCloud"
model = "qwen3.8-max"
[model_providers.QwenCloud]
name = "QwenCloud"
# Singapore (ap-southeast-1). For another region, replace ap-southeast-1 in the URL.
# API keys are region-specific. See https://docs.qwencloud.com/developer-guides/getting-started/regions
base_url = "https://ap-southeast-1.maas.qwencloudapi.com/compatible-mode/v1"
env_key = "OPENAI_API_KEY"
wire_api = "chat"
Use CC Switch
CC Switch is a community open-source desktop GUI that switches between API Keys or billing plans.1
In the CC Switch toolbar, select the Codex icon, click + to open Add provider, select the tab for your billing plan, fill in the configuration, and click Add.
- Token Plan
- Pay-as-you-go
- Provider name: QwenCloud-Token Plan
- API Key: Get from console
- Endpoint:
https://token-plan.maas.qwencloudapi.com/compatible-mode/v1
- Provider name: QwenCloud-Pay-as-you-go
- API Key: Get from console
- Endpoint:
https://ap-southeast-1.maas.qwencloudapi.com/compatible-mode/v1
2
Expand Advanced options and enter a model from the supported models for your plan, such as
qwen3.8-max.3
Click Enable next to the provider, then reopen the terminal and run
codex for the configuration to take effect.Error Codes
If you encounter errors during configuration, refer to the FAQ documentation for your billing plan:- Token Plan: Token Plan FAQ
- Pay-as-you-go: Error codes
FAQ
What should I do if Codex shows the Model metadata ... not found warning at startup?
This warning appears when model metadata is not configured. Codex uses default metadata for the model, and calls are not affected. To switch between models, see Configure model metadata.What should I do if a third-party tool reports "domestic models not supported" or "check rejected / Bad request (400)"?
Cause: Some third-party management tools (such as CC-Switch) send a health check or connection test probe when switching providers. The probe format differs from the request format Codex actually uses, so the QwenCloud gateway may return 400 Bad request, and the tool reports "domestic models not supported". This message only indicates that the probe failed; it does not mean QwenCloud lacks support for domestic models, nor does it affect actual Codex usage. Solution: Configure Codex directly in~/.codex/config.toml as described in Quick Start, without relying on the third-party tool's health check. After configuration, run codex to start Codex; a normal response means domestic models are working.
What should I do if I get a wire_api configuration error?
Cause: Codex 0.94.0 and later no longer supportwire_api = "chat". Depending on the version, you may see one of the following errors:
wire_api = "chat" is no longer supportedunknown configuration field wire_api
- Error
wire_api = "chat" is no longer supported: Changewire_apitoresponsesand verifybase_url. - Error
unknown configuration field wire_api: Removewire_apifrom the corresponding provider section in~/.codex/config.toml. - To continue using Chat Completions, install Codex 0.93.0 or an earlier version (such as 0.80.0).
What should I do if I get the error "unexpected status 401 Unauthorized"?
Cause:- Using an API Key from a different plan (API Keys for Token Plan (Individual), Token Plan (Team Edition), and pay-as-you-go are not interchangeable)
- Subscription expired
- API Key was copied incompletely, contains spaces, or has a typo
- Verify that you are using the dedicated API Key for your selected plan.
- Go to the management page of your selected plan and check whether the subscription has expired.
- Re-copy the API Key and make sure it is complete and has no spaces.
- If the error persists after verifying the above, reset the API Key on the management page of your selected plan. After resetting, use the new API Key for configuration.
What should I do if I get the error "unexpected status 404 Not Found"?
Cause: Thebase_url or wire_api in the configuration file is incorrect.
Solution: Verify that base_url and wire_api match the configuration for your selected plan. See the configuration examples for your plan in Quick Start above.
What should I do if I get the error "stream disconnected before completion: stream closed before response.completed"?
Cause: The streaming connection between Codex and the server was interrupted before the response completed. This commonly occurs in the following scenarios:- The conversation thread is too long, causing a context compaction request to fail
- Unstable network causing the SSE or WebSocket connection to drop mid-stream
- Server overload or rate limiting that terminates the connection early
- Start a new conversation thread to avoid excessive context accumulation in a single thread.
- Check your network connection. Try disabling VPN or proxy and retry.
- Wait and retry. Codex has a built-in retry mechanism that resolves most transient failures automatically.
What should I do if I get a 429 rate limit or quota error?
Cause: A 429 error has two common causes:- Request rate limit (
429 Requests rate limit exceeded): too many requests in a short period. - Quota exhausted (
429 Allocated quota exceededorYour token-plan quota has been exhausted): the monthly Token Plan quota is used up.
- Request rate limit: wait one minute and reduce the request rate.
- Quota exhausted: wait for the next subscription month, purchase a usage package (quota automatically deducts from the package after the monthly quota is used up), or upgrade the plan. The reset time in the error message (such as
The quota will reset at HH:MM:SS UTC) is in UTC; add 8 hours to convert to Singapore time (CST).