Updated · SI-API

DEVELOPER GUIDES

OpenCode setup

Configure one provider for all seven models in CLI or Desktop, then switch in the model picker.

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/opencode?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 OpenCode from its official page. Create or copy your SI-API key from /keys.

Official installation guide ↗

Create ~/.config/opencode/siapi.key and paste only your key, without quotes. Run chmod 600 on the key file.

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: ~/.config/opencode

opencode.json

Save to: ~/.config/opencode/opencode.json

Merge these fields into an existing file, preserving other providers, permissions and preferences. Do not replace an existing configuration wholesale. Preserve every model’s options.reasoningEffort and variants: the first supplies its default effort, and variants let you change it.

View or copy configuration
opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "siapi/deepseek-flash",
  "small_model": "siapi/deepseek-flash",
  "provider": {
    "siapi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "SI-API",
      "options": {
        "baseURL": "https://siapi.ai/v1",
        "apiKey": "{file:~/.config/opencode/siapi.key}"
      },
      "models": {
        "glm-5.3-flash": {
          "name": "GLM 5.3 Flash",
          "modalities": {
            "input": [
              "text"
            ],
            "output": [
              "text"
            ]
          },
          "attachment": false,
          "reasoning": true,
          "options": {
            "reasoningEffort": "max"
          },
          "variants": {
            "low": {
              "reasoningEffort": "low"
            },
            "high": {
              "reasoningEffort": "high"
            },
            "max": {
              "reasoningEffort": "max"
            }
          }
        },
        "deepseek-flash": {
          "name": "DeepSeek V4.1 Flash",
          "modalities": {
            "input": [
              "text"
            ],
            "output": [
              "text"
            ]
          },
          "attachment": false,
          "reasoning": true,
          "options": {
            "reasoningEffort": "high"
          },
          "variants": {
            "off": {
              "reasoningEffort": "none"
            },
            "low": {
              "reasoningEffort": "low"
            },
            "high": {
              "reasoningEffort": "high"
            },
            "max": {
              "reasoningEffort": "max"
            }
          }
        },
        "kimi-k3.1-pro": {
          "name": "Kimi K3.1 Pro",
          "modalities": {
            "input": [
              "text"
            ],
            "output": [
              "text"
            ]
          },
          "attachment": false,
          "reasoning": true,
          "options": {
            "reasoningEffort": "max"
          },
          "variants": {
            "low": {
              "reasoningEffort": "low"
            },
            "high": {
              "reasoningEffort": "high"
            },
            "max": {
              "reasoningEffort": "max"
            }
          }
        },
        "kimi-k3.1-pro-highspeed": {
          "name": "Kimi K3.1 Pro HighSpeed",
          "modalities": {
            "input": [
              "text"
            ],
            "output": [
              "text"
            ]
          },
          "attachment": false,
          "reasoning": true,
          "options": {
            "reasoningEffort": "max"
          },
          "variants": {
            "low": {
              "reasoningEffort": "low"
            },
            "high": {
              "reasoningEffort": "high"
            },
            "max": {
              "reasoningEffort": "max"
            }
          }
        },
        "glm-5.3": {
          "name": "GLM 5.3",
          "modalities": {
            "input": [
              "text"
            ],
            "output": [
              "text"
            ]
          },
          "attachment": false,
          "reasoning": true,
          "options": {
            "reasoningEffort": "max"
          },
          "variants": {
            "low": {
              "reasoningEffort": "low"
            },
            "high": {
              "reasoningEffort": "high"
            },
            "max": {
              "reasoningEffort": "max"
            }
          }
        },
        "minimax-m3.1": {
          "name": "MiniMax M3.1 Flash",
          "modalities": {
            "input": [
              "text"
            ],
            "output": [
              "text"
            ]
          },
          "attachment": false,
          "reasoning": false
        },
        "qwen3.8-max": {
          "name": "Qwen3.8 Max",
          "modalities": {
            "input": [
              "text"
            ],
            "output": [
              "text"
            ]
          },
          "attachment": false,
          "reasoning": true,
          "options": {
            "reasoningEffort": "xhigh"
          },
          "variants": {
            "off": {
              "reasoningEffort": "none"
            },
            "low": {
              "reasoningEffort": "low"
            },
            "medium": {
              "reasoningEffort": "medium"
            },
            "xhigh": {
              "reasoningEffort": "xhigh"
            }
          }
        }
      }
    }
  }
}

3. Start your Agent

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

Start your Agent
opencode --model siapi/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
/models → 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
/models → 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
/models → 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
/models → 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
/models → 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
/models → 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
/models → 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 /models to switch models, then choose low or high in the variant selector.

Inside your Agent
/models

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.

Each model's options.reasoningEffort supplies its starting effort. A selected variant overrides that option. Select DeepSeek V4.1 Flash in /models, then use the variant control or the shortcut assigned to variant_cycle in your keybind settings. Choose low, then high; check the selected variant beside the model before sending. Selecting a model alone does not select a variant.

For a one-shot CLI task, use the --variant flag shown below. Choose a variant declared for that model.

Terminal · choose a model and variant together
opencode run --model siapi/deepseek-flash --variant high "What is 6 × 7?"
  • If there are no variants, reload the app after merging the model's reasoning and variants fields. Check project configuration and Agent-specific options for overrides. Do not add a fixed reasoning_effort in an extra request body; it can override the selected variant.

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.

OpenCode variants and cycle control ↗

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
/models
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
  • CLI and Desktop use the same global configuration and key file. A project config can override the global model selection.
  • Title and other small-model tasks use DeepSeek Flash; these requests also consume your plan or credit. Choose a model variant to change its reasoning effort.

Official configuration reference ↗ · Model configuration

Connection not working? · Usage

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

Download setup instructions