Updated · SI-API

DEVELOPER GUIDES

Codex setup

Add all seven models to the CLI or Desktop model picker with one SI-API connection.

One connection. All seven models.

Set up your Agent once, then switch models and reasoning effort in the same session.

Download all-model configuration ZIP ↗

Prefer to skip manual setup? Ask AI to do it for you.

AI setup prompt

Follow https://siapi.ai/docs/codex?model=deepseek-flash&surface=cli&platform=macos to connect my Agent to all SI-API models. Preserve existing settings and ask for my API key when needed.

  • GLM 5.3 Flash
  • DeepSeek V4.1 Flash
  • Kimi K3.1 Pro
  • Kimi K3.1 Pro HighSpeed
  • GLM 5.3
  • MiniMax M3.1 Flash
  • Qwen3.8 Max

All seven models are in this download. Keep the same configuration when switching models. Get your API key →

1. Prepare your tool and key

Install Codex from its official page. Create or copy your SI-API key from /keys.

Official installation guide ↗

Prepare your tool and key
export SIAPI_API_KEY="YOUR_SIAPI_API_KEY"

2. Save the configuration

Download and extract the ZIP. Replace YOUR_SIAPI_API_KEY with your key, then save each file to the path below. Merge these fields into an existing file, preserving other providers, permissions and preferences. Do not replace an existing configuration wholesale.

Configuration location: ~/.codex

siapi.config.toml

Save to: ~/.codex/config.toml

Merge these fields into an existing file, preserving other providers, permissions and preferences. Do not replace an existing configuration wholesale. Replace the catalog path with its actual absolute path. If CODEX_HOME is set, use that folder.

View or copy configuration
siapi.config.toml
model_provider = "siapi"
model = "deepseek-flash"
model_catalog_json = "/ABSOLUTE/PATH/TO/.codex/siapi-models.json"
web_search = "disabled"

[model_providers.siapi]
name = "SI-API"
base_url = "https://siapi.ai/v1"
wire_api = "responses"
supports_websockets = false
env_key = "SIAPI_API_KEY"
requires_openai_auth = false

[profiles.siapi]
model_provider = "siapi"
model = "deepseek-flash"

siapi-models.json · required models and effort settings

Save to: ~/.codex/siapi-models.json

Save this model catalog beside config.toml. In config.toml, set model_catalog_json to this file’s full absolute path. Both files are required.

View or copy configuration
siapi-models.json
{
  "models": [
    {
      "slug": "glm-5.3-flash",
      "display_name": "GLM 5.3 Flash",
      "description": "SI-API · text and local function tools",
      "default_reasoning_level": "max",
      "supported_reasoning_levels": [
        {
          "effort": "low",
          "description": "Low"
        },
        {
          "effort": "high",
          "description": "High"
        },
        {
          "effort": "max",
          "description": "Max"
        }
      ],
      "shell_type": "unified_exec",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 0,
      "base_instructions": "You are a coding assistant. Follow the user’s instructions and configured permissions. Inspect relevant files before editing and verify your work.",
      "supports_reasoning_summaries": false,
      "supports_reasoning_summary_parameter": false,
      "support_verbosity": false,
      "default_verbosity": null,
      "apply_patch_tool_type": null,
      "truncation_policy": {
        "mode": "bytes",
        "limit": 10000
      },
      "experimental_supported_tools": [],
      "input_modalities": [
        "text"
      ]
    },
    {
      "slug": "deepseek-flash",
      "display_name": "DeepSeek V4.1 Flash",
      "description": "SI-API · text and local function tools",
      "default_reasoning_level": "high",
      "supported_reasoning_levels": [
        {
          "effort": "none",
          "description": "Off"
        },
        {
          "effort": "low",
          "description": "Low"
        },
        {
          "effort": "high",
          "description": "High"
        },
        {
          "effort": "max",
          "description": "Max"
        }
      ],
      "shell_type": "unified_exec",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 1,
      "base_instructions": "You are a coding assistant. Follow the user’s instructions and configured permissions. Inspect relevant files before editing and verify your work.",
      "supports_reasoning_summaries": false,
      "supports_reasoning_summary_parameter": false,
      "support_verbosity": false,
      "default_verbosity": null,
      "apply_patch_tool_type": null,
      "truncation_policy": {
        "mode": "bytes",
        "limit": 10000
      },
      "experimental_supported_tools": [],
      "input_modalities": [
        "text"
      ]
    },
    {
      "slug": "kimi-k3.1-pro",
      "display_name": "Kimi K3.1 Pro",
      "description": "SI-API · text and local function tools",
      "default_reasoning_level": "max",
      "supported_reasoning_levels": [
        {
          "effort": "low",
          "description": "Low"
        },
        {
          "effort": "high",
          "description": "High"
        },
        {
          "effort": "max",
          "description": "Max"
        }
      ],
      "shell_type": "unified_exec",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 2,
      "base_instructions": "You are a coding assistant. Follow the user’s instructions and configured permissions. Inspect relevant files before editing and verify your work.",
      "supports_reasoning_summaries": false,
      "supports_reasoning_summary_parameter": false,
      "support_verbosity": false,
      "default_verbosity": null,
      "apply_patch_tool_type": null,
      "truncation_policy": {
        "mode": "bytes",
        "limit": 10000
      },
      "experimental_supported_tools": [],
      "input_modalities": [
        "text"
      ]
    },
    {
      "slug": "kimi-k3.1-pro-highspeed",
      "display_name": "Kimi K3.1 Pro HighSpeed",
      "description": "SI-API · text and local function tools",
      "default_reasoning_level": "max",
      "supported_reasoning_levels": [
        {
          "effort": "low",
          "description": "Low"
        },
        {
          "effort": "high",
          "description": "High"
        },
        {
          "effort": "max",
          "description": "Max"
        }
      ],
      "shell_type": "unified_exec",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 3,
      "base_instructions": "You are a coding assistant. Follow the user’s instructions and configured permissions. Inspect relevant files before editing and verify your work.",
      "supports_reasoning_summaries": false,
      "supports_reasoning_summary_parameter": false,
      "support_verbosity": false,
      "default_verbosity": null,
      "apply_patch_tool_type": null,
      "truncation_policy": {
        "mode": "bytes",
        "limit": 10000
      },
      "experimental_supported_tools": [],
      "input_modalities": [
        "text"
      ]
    },
    {
      "slug": "glm-5.3",
      "display_name": "GLM 5.3",
      "description": "SI-API · text and local function tools",
      "default_reasoning_level": "max",
      "supported_reasoning_levels": [
        {
          "effort": "low",
          "description": "Low"
        },
        {
          "effort": "high",
          "description": "High"
        },
        {
          "effort": "max",
          "description": "Max"
        }
      ],
      "shell_type": "unified_exec",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 4,
      "base_instructions": "You are a coding assistant. Follow the user’s instructions and configured permissions. Inspect relevant files before editing and verify your work.",
      "supports_reasoning_summaries": false,
      "supports_reasoning_summary_parameter": false,
      "support_verbosity": false,
      "default_verbosity": null,
      "apply_patch_tool_type": null,
      "truncation_policy": {
        "mode": "bytes",
        "limit": 10000
      },
      "experimental_supported_tools": [],
      "input_modalities": [
        "text"
      ]
    },
    {
      "slug": "minimax-m3.1",
      "display_name": "MiniMax M3.1 Flash",
      "description": "SI-API · text and local function tools",
      "default_reasoning_level": "none",
      "supported_reasoning_levels": [],
      "shell_type": "unified_exec",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 5,
      "base_instructions": "You are a coding assistant. Follow the user’s instructions and configured permissions. Inspect relevant files before editing and verify your work.",
      "supports_reasoning_summaries": false,
      "supports_reasoning_summary_parameter": false,
      "support_verbosity": false,
      "default_verbosity": null,
      "apply_patch_tool_type": null,
      "truncation_policy": {
        "mode": "bytes",
        "limit": 10000
      },
      "experimental_supported_tools": [],
      "input_modalities": [
        "text"
      ]
    },
    {
      "slug": "qwen3.8-max",
      "display_name": "Qwen3.8 Max",
      "description": "SI-API · text and local function tools",
      "default_reasoning_level": "xhigh",
      "supported_reasoning_levels": [
        {
          "effort": "none",
          "description": "Off"
        },
        {
          "effort": "low",
          "description": "Low"
        },
        {
          "effort": "medium",
          "description": "Medium"
        },
        {
          "effort": "xhigh",
          "description": "XHigh"
        }
      ],
      "shell_type": "unified_exec",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 6,
      "base_instructions": "You are a coding assistant. Follow the user’s instructions and configured permissions. Inspect relevant files before editing and verify your work.",
      "supports_reasoning_summaries": false,
      "supports_reasoning_summary_parameter": false,
      "support_verbosity": false,
      "default_verbosity": null,
      "apply_patch_tool_type": null,
      "truncation_policy": {
        "mode": "bytes",
        "limit": 10000
      },
      "experimental_supported_tools": [],
      "input_modalities": [
        "text"
      ]
    }
  ]
}

3. Start your Agent

Start a new session and send a message. The startup model is deepseek-flash.

Start your Agent
codex --profile siapi --model deepseek-flash

4. Switch between all models

After setup, choose any model below inside your Agent. The same key and configuration work for all seven models; no new download or connection is needed.

All 7 models in this Agent configuration
Model / API IDCommand / picker pathThinking settings
GLM 5.3 Flash
glm-5.3-flash
/model → SI-API → GLM 5.3 Flash (glm-5.3-flash)Low, High and Max. Thinking is always enabled; choose Low for less reasoning. The model default is Max.
DeepSeek V4.1 Flash
deepseek-flash
/model → SI-API → DeepSeek V4.1 Flash (deepseek-flash)Off, Low, High and Max. Medium / XHigh map to High; Ultra maps to Max.
Kimi K3.1 Pro
kimi-k3.1-pro
/model → SI-API → Kimi K3.1 Pro (kimi-k3.1-pro)Low, High and Max. Thinking is always enabled; choose Low for less reasoning. The model default is Max.
Kimi K3.1 Pro HighSpeed
kimi-k3.1-pro-highspeed
/model → SI-API → Kimi K3.1 Pro HighSpeed (kimi-k3.1-pro-highspeed)Low, High and Max. Thinking is always enabled; choose Low for less reasoning. The model default is Max.
GLM 5.3
glm-5.3
/model → SI-API → GLM 5.3 (glm-5.3)Low, High and Max. Thinking is always enabled; choose Low for less reasoning. The model default is Max.
MiniMax M3.1 Flash
minimax-m3.1
/model → SI-API → MiniMax M3.1 Flash (minimax-m3.1)Use the model default. This route does not expose custom thinking controls.
Qwen3.8 Max
qwen3.8-max
/model → SI-API → Qwen3.8 Max (qwen3.8-max)Off, Low, Medium and XHigh. High / Max map to XHigh, not additional levels.

5. Choose reasoning effort

Run /model, select an SI-API model, then choose its reasoning level. Repeat /model whenever you want to switch.

Inside your Agent
/model

Available effort levels depend on the model; see the table above. MiniMax M3.1 Flash uses its model default.

Effort defaults and saved settings

Start on DeepSeek V4.1 Flash. Choose Low, send a short file-reading task, then choose High and repeat. Check the current setting after each change.

Effort means how much reasoning to request. Kimi K3.1 Pro / HighSpeed, GLM 5.3 and GLM 5.3 Flash offer Low / High / Max with thinking always enabled. Choose Low for shorter reasoning; there is no Off option. Their model default is Max, but a client setting can override it. DeepSeek and Qwen have their own intensity levels listed below.

MiniMax M3.1 Flash uses its default reasoning behavior. MiniMax M3 settings apply to a different model.

Use /model, select DeepSeek V4.1 Flash, then choose the reasoning level. Open /status to inspect the current session. Repeat /model to change it without editing JSON. The catalog declares the available choices; it does not lock the session to a default.

  • The catalog supplies a separate default and supported list for every model. Remove an old model_reasoning_effort = "low" if you want these catalog defaults. A command-line -c override or saved task selection can still take precedence.

Expected: On DeepSeek V4.1 Flash, the current setting changes from Low to High and back to Low before your next message. Other models follow the controls listed below.

Codex model catalog and Desktop effort settings ↗

Check the model and run your first task

Check the model and run your first task

Open a project containing README.md. Allow the tool to read it, then send the prompt below. Confirm that it reads the file and returns a summary. To check another model, switch using the table above and repeat this task.

Inside your tool
/status
/model
Send this task in your tool

Use the file-reading tool to read README.md in this project and summarize its purpose in one sentence. Do not modify any files.

Tool-specific notes
  • The CLI uses a dedicated siapi profile. Desktop reads the main config.toml, which also sets defaults for CLI runs without a profile.
  • Desktop reads a private key file through auth.command so Dock and Start menu launches can authenticate. Do not combine command authentication with env_key or requires_openai_auth.
  • Hosted web search is disabled. This configuration uses text and client-defined function tools; it does not enable image input or cloud tasks.

Official configuration reference ↗ · Model configuration

Connection not working? · Usage

Agent compatibility — Client versions, tested reasoning fields and known limits.

Download setup instructions